Class SmartcardIoConnection
java.lang.Object
es.gob.jmulticard.connection.AbstractApduConnectionIso7816
es.gob.jmulticard.jse.smartcardio.SmartcardIoConnection
- All Implemented Interfaces:
ApduConnection
Conexión con lector de tarjetas inteligentes implementado sobre
JSR-268 SmartCard I/O.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate javax.smartcardio.Card
private javax.smartcardio.CardChannel
private static final boolean
private boolean
private static final Logger
private static final int
Tamaño máximo de las APDU.private ApduConnectionProtocol
private static final String
Constante para la indicación de que se ha detectado un reinicio del canal con la tarjeta.private int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
JSR-268 no soporta eventos de inserción o extracción.void
close()
Cierra la conexión con la tarjeta inteligente actualmente insertada en el lector.int
Obtiene el tamaño máximo de APDU que se puede enviar sin necesidad de hacer una envoltura.Devuelve el protocolo de conexión con la tarjeta usado actualmente.Recupera la conexión subyacente utilizada por la conexión.getTerminalInfo
(int terminal) Devuelve información sobre un terminal.long[]
getTerminals
(boolean onlyWithCardPresent) Devuelve todos los lectores de tarjetas presentes en el sistema.internalTransmit
(byte[] command) Transmite una APDU.boolean
Indica si la conexión con la tarjeta se ha establecido en modo exclusivo o no.boolean
isOpen()
Indica si la conexión está abierta o no.void
open()
Abre la conexión con la tarjeta inteligente actualmente insertada en el lector.void
JSR-268 no soporta eventos de inserción o extracción.byte[]
reset()
Reinicializa la conexión con la tarjeta inteligente.void
setExclusiveUse
(boolean ex) Establece si la conexión se debe abrir en modo exclusivo.void
Establece el protocolo de conexión con la tarjeta.void
setTerminal
(int terminalN) Establece el lector de tarjetas que se usará para la conexión.toString()
Methods inherited from class es.gob.jmulticard.connection.AbstractApduConnectionIso7816
transmit
-
Field Details
-
DEBUG
private static final boolean DEBUG- See Also:
-
MAX_APDU_SIZE
private static final int MAX_APDU_SIZETamaño máximo de las APDU. Por encima de este tamaño, se hace automáticamente una envoltura en varias APDU.- See Also:
-
SCARD_W_RESET_CARD
Constante para la indicación de que se ha detectado un reinicio del canal con la tarjeta.- See Also:
-
LOGGER
-
terminalNumber
private int terminalNumber -
cardChannel
private javax.smartcardio.CardChannel cardChannel -
card
private javax.smartcardio.Card card -
exclusive
private boolean exclusive -
protocol
-
-
Constructor Details
-
SmartcardIoConnection
public SmartcardIoConnection()
-
-
Method Details
-
toString
-
addCardConnectionListener
JSR-268 no soporta eventos de inserción o extracción.- Parameters:
ccl
- Objeto al que se desea notificar los eventos de la conexión.
-
close
Description copied from interface:ApduConnection
Cierra la conexión con la tarjeta inteligente actualmente insertada en el lector.- Throws:
ApduConnectionException
- Cuando ocurre cualquier problema cerrando la conexión.- See Also:
-
getTerminalInfo
Devuelve información sobre un terminal.- Parameters:
terminal
- Número de terminal que se desea obtener información.- Returns:
- Una descripción del terminal especificado.
- Throws:
ApduConnectionException
- Cuando ocurren problemas en la conexión con los lectores.
-
getTerminals
Description copied from interface:ApduConnection
Devuelve todos los lectores de tarjetas presentes en el sistema.- Parameters:
onlyWithCardPresent
- Para indicar que sólo devuelva lectores que tengan una tarjeta insertada.- Returns:
- Una lista con los identificadores de lectores de tarjetas conectados.
- Throws:
ApduConnectionException
- Cuando ocurran problemas en la conexión con los lectores.
-
isOpen
public boolean isOpen()Description copied from interface:ApduConnection
Indica si la conexión está abierta o no.- Returns:
true
si la conexión esta abierta,false
si está cerrada.
-
open
Description copied from interface:ApduConnection
Abre la conexión con la tarjeta inteligente actualmente insertada en el lector.- Throws:
ApduConnectionException
- Cuando ocurre cualquier problema abriendo la conexión.- See Also:
-
removeCardConnectionListener
JSR-268 no soporta eventos de inserción o extracción.- Parameters:
ccl
- Objeto al que ya no se desea notificar los eventos de la conexión.
-
reset
Description copied from interface:ApduConnection
Reinicializa la conexión con la tarjeta inteligente.- Returns:
- Respuesta al reset (ATR) de la tarjeta.
- Throws:
ApduConnectionException
- Cuando ocurre cualquier problema reinicializando la conexión.
-
setExclusiveUse
public void setExclusiveUse(boolean ex) Establece si la conexión se debe abrir en modo exclusivo. Solo puede establecerse si la conexión aun no ha sido abierta.- Parameters:
ex
-true
para abrir la conexión en modo exclusivo,false
para abrirla en modo no exclusivo.
-
setProtocol
Establece el protocolo de conexión con la tarjeta. Por defecto, si no se establece ninguno, se indica * para que sea el API subyancente el que detecte el apropiado.- Parameters:
p
- Protocolo de conexión con la tarjeta.
-
setTerminal
public void setTerminal(int terminalN) Description copied from interface:ApduConnection
Establece el lector de tarjetas que se usará para la conexión. Si se cambia el terminal estando la conexión ya abierta, se intentará reabrirla con el nuevo terminal.- Parameters:
terminalN
- Número de terminal que se desea pase a ser el actual.
-
internalTransmit
Description copied from class:AbstractApduConnectionIso7816
Transmite una APDU.- Specified by:
internalTransmit
in classAbstractApduConnectionIso7816
- Parameters:
command
- Comando APDU a transmitir.- Returns:
- APDU de respuesta.
- Throws:
ApduConnectionException
- Si hay cualquier problema durante el envío.
-
getProtocol
Devuelve el protocolo de conexión con la tarjeta usado actualmente.- Returns:
- Un objeto de tipo enumerado
ConnectionProtocol
.
-
isExclusiveUse
public boolean isExclusiveUse()Indica si la conexión con la tarjeta se ha establecido en modo exclusivo o no.- Returns:
true
si la conexión está establecida en modo exclusivo.
-
getSubConnection
Description copied from interface:ApduConnection
Recupera la conexión subyacente utilizada por la conexión.- Returns:
- Conexión subyacente con la tarjeta o
null
si esta conexión es ya la de más bajo nivel.
-
getMaxApduSize
public int getMaxApduSize()Description copied from class:AbstractApduConnectionIso7816
Obtiene el tamaño máximo de APDU que se puede enviar sin necesidad de hacer una envoltura.- Specified by:
getMaxApduSize
in classAbstractApduConnectionIso7816
- Returns:
- Tamaño máximo (en octetos) de APDU que se puede enviar sin necesidad de hacer una envoltura.
-