Class SmartcardIoConnection
- java.lang.Object
-
- es.gob.jmulticard.connection.AbstractApduConnectionIso7816
-
- es.gob.jmulticard.jse.smartcardio.SmartcardIoConnection
-
- All Implemented Interfaces:
ApduConnection
public final class SmartcardIoConnection extends AbstractApduConnectionIso7816
Conexión con lector de tarjetas inteligentes implementado sobre JSR-268 SmartCard I/O.
-
-
Field Summary
Fields Modifier and Type Field Description private javax.smartcardio.Cardcardprivate javax.smartcardio.CardChannelcardChannelprivate static booleanDEBUGprivate booleanexclusiveprivate static java.util.logging.LoggerLOGGERprivate static intMAX_APDU_SIZETamaño máximo de las APDU.private ApduConnectionProtocolprotocolprivate static java.lang.StringSCARD_W_RESET_CARDConstante para la indicación de que se ha detectado un reinicio del canal con la tarjeta.private intterminalNumber
-
Constructor Summary
Constructors Constructor Description SmartcardIoConnection()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCardConnectionListener(CardConnectionListener ccl)JSR-268 no soporta eventos de inserción o extracción.voidclose()Cierra la conexión con la tarjeta inteligente actualmente insertada en el lector.intgetMaxApduSize()Obtiene el tamaño máximo de APDU que se puede enviar sin necesidad de hacer una envoltura.ApduConnectionProtocolgetProtocol()Devuelve el protocolo de conexión con la tarjeta usado actualmente.ApduConnectiongetSubConnection()Recupera la conexión subyacente utilizada por la conexión.java.lang.StringgetTerminalInfo(int terminal)Devuelve información sobre un terminal.long[]getTerminals(boolean onlyWithCardPresent)Devuelve todos los lectores de tarjetas presentes en el sistema.ResponseApduinternalTransmit(byte[] command)Transmite una APDU.booleanisExclusiveUse()Indica si la conexión con la tarjeta se ha establecido en modo exclusivo o no.booleanisOpen()Indica si la conexión está abierta o no.voidopen()Abre la conexión con la tarjeta inteligente actualmente insertada en el lector.voidremoveCardConnectionListener(CardConnectionListener ccl)JSR-268 no soporta eventos de inserción o extracción.byte[]reset()Reinicializa la conexión con la tarjeta inteligente.voidsetExclusiveUse(boolean ex)Establece si la conexión se debe abrir en modo exclusivo.voidsetProtocol(ApduConnectionProtocol p)Establece el protocolo de conexión con la tarjeta.voidsetTerminal(int terminalN)Establece el lector de tarjetas que se usará para la conexión.java.lang.StringtoString()-
Methods inherited from class es.gob.jmulticard.connection.AbstractApduConnectionIso7816
transmit
-
-
-
-
Field Detail
-
DEBUG
private static final boolean DEBUG
- See Also:
- Constant Field Values
-
MAX_APDU_SIZE
private static final int MAX_APDU_SIZE
Tamaño máximo de las APDU. Por encima de este tamaño, se hace automáticamente una envoltura en varias APDU.- See Also:
- Constant Field Values
-
SCARD_W_RESET_CARD
private static final java.lang.String SCARD_W_RESET_CARD
Constante para la indicación de que se ha detectado un reinicio del canal con la tarjeta.- See Also:
- Constant Field Values
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
terminalNumber
private int terminalNumber
-
cardChannel
private javax.smartcardio.CardChannel cardChannel
-
card
private javax.smartcardio.Card card
-
exclusive
private boolean exclusive
-
protocol
private ApduConnectionProtocol protocol
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
addCardConnectionListener
public void addCardConnectionListener(CardConnectionListener ccl)
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
public void close() throws ApduConnectionExceptionDescription copied from interface:ApduConnectionCierra la conexión con la tarjeta inteligente actualmente insertada en el lector.- Throws:
ApduConnectionException- Cuando ocurre cualquier problema cerrando la conexión.- See Also:
ApduConnection.open()
-
getTerminalInfo
public java.lang.String getTerminalInfo(int terminal) throws ApduConnectionExceptionDevuelve 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
public long[] getTerminals(boolean onlyWithCardPresent) throws ApduConnectionExceptionDescription copied from interface:ApduConnectionDevuelve 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:ApduConnectionIndica si la conexión está abierta o no.- Returns:
truesi la conexión esta abierta,falsesi está cerrada.
-
open
public void open() throws ApduConnectionExceptionDescription copied from interface:ApduConnectionAbre la conexión con la tarjeta inteligente actualmente insertada en el lector.- Throws:
ApduConnectionException- Cuando ocurre cualquier problema abriendo la conexión.- See Also:
ApduConnection.close()
-
removeCardConnectionListener
public void removeCardConnectionListener(CardConnectionListener ccl)
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
public byte[] reset() throws ApduConnectionExceptionDescription copied from interface:ApduConnectionReinicializa 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-truepara abrir la conexión en modo exclusivo,falsepara abrirla en modo no exclusivo.
-
setProtocol
public void setProtocol(ApduConnectionProtocol p)
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:ApduConnectionEstablece 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
public ResponseApdu internalTransmit(byte[] command) throws ApduConnectionException
Description copied from class:AbstractApduConnectionIso7816Transmite una APDU.- Specified by:
internalTransmitin classAbstractApduConnectionIso7816- Parameters:
command- Comando APDU a transmitir.- Returns:
- APDU de respuesta.
- Throws:
ApduConnectionException- Si hay cualquier problema durante el envío.
-
getProtocol
public ApduConnectionProtocol 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:
truesi la conexión está establecida en modo exclusivo.
-
getSubConnection
public ApduConnection getSubConnection()
Description copied from interface:ApduConnectionRecupera la conexión subyacente utilizada por la conexión.- Returns:
- Conexión subyacente con la tarjeta o
nullsi esta conexión es ya la de más bajo nivel.
-
getMaxApduSize
public int getMaxApduSize()
Description copied from class:AbstractApduConnectionIso7816Obtiene el tamaño máximo de APDU que se puede enviar sin necesidad de hacer una envoltura.- Specified by:
getMaxApduSizein classAbstractApduConnectionIso7816- Returns:
- Tamaño máximo (en octetos) de APDU que se puede enviar sin necesidad de hacer una envoltura.
-
-