Package es.gob.jmulticard.card.cardos
Class CardOS
- java.lang.Object
-
- es.gob.jmulticard.card.AbstractSmartCard
-
- es.gob.jmulticard.card.iso7816four.AbstractIso7816FourCard
-
- es.gob.jmulticard.card.cardos.CardOS
-
- All Implemented Interfaces:
Card
,CryptoCard
public final class CardOS extends AbstractIso7816FourCard implements CryptoCard
Tarjeta Atos / Siemens CardOS.
-
-
Field Summary
Fields Modifier and Type Field Description private static Atr
ATR
private static byte[]
ATR_MASK
private static java.util.Map<java.lang.String,java.security.cert.X509Certificate>
CERTIFICATES_BY_ALIAS
private static byte
CLA
private CryptoHelper
cryptoHelper
Manejador de funciones criptográficas.private static java.util.logging.Logger
LOGGER
private static byte[]
PKCS15_NAME
-
Fields inherited from class es.gob.jmulticard.card.AbstractSmartCard
DEBUG
-
-
Constructor Summary
Constructors Constructor Description CardOS(ApduConnection conn, CryptoHelper cryptoHlpr)
Construye un objeto que representa una tarjeta Atos / Siemens CardOS.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
connect(ApduConnection conn)
Conecta con el lector del sistema que tenga una CardOS insertada.java.lang.String[]
getAliases()
Obtiene los alias de los certificados de la tarjeta.java.lang.String
getCardName()
Obtiene el nombre de la tarjeta.java.security.cert.X509Certificate
getCertificate(java.lang.String alias)
Obtiene el certificado correspondiente al alias proporcionado.PrivateKeyReference
getPrivateKey(java.lang.String alias)
Obtiene una referencia a la clave privada correspondiente al alias proporcionado.private void
preloadCertificates()
protected void
selectMasterFile()
Selecciona el fichero maestro (directorio raíz de la tarjeta).byte[]
sign(byte[] data, java.lang.String algorithm, PrivateKeyReference keyRef)
Realiza una firma electrónica.java.lang.String
toString()
void
verifyPin(javax.security.auth.callback.PasswordCallback pinPc)
Verifica el PIN de la tarjeta.-
Methods inherited from class es.gob.jmulticard.card.iso7816four.AbstractIso7816FourCard
getChallenge, readAllRecords, readBinaryComplete, selectFileById, selectFileByIdAndRead, selectFileByLocation, selectFileByLocationAndRead, selectFileByName, selectFileByName, setPublicKeyToVerification
-
Methods inherited from class es.gob.jmulticard.card.AbstractSmartCard
getCla, getConnection, sendArbitraryApdu, setConnection
-
-
-
-
Field Detail
-
ATR_MASK
private static final byte[] ATR_MASK
-
ATR
private static final Atr ATR
-
PKCS15_NAME
private static final byte[] PKCS15_NAME
-
CLA
private static final byte CLA
- See Also:
- Constant Field Values
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
CERTIFICATES_BY_ALIAS
private static final java.util.Map<java.lang.String,java.security.cert.X509Certificate> CERTIFICATES_BY_ALIAS
-
cryptoHelper
private final CryptoHelper cryptoHelper
Manejador de funciones criptográficas.
-
-
Constructor Detail
-
CardOS
public CardOS(ApduConnection conn, CryptoHelper cryptoHlpr) throws Iso7816FourCardException, java.io.IOException
Construye un objeto que representa una tarjeta Atos / Siemens CardOS.- Parameters:
conn
- Conexión con la tarjeta.cryptoHlpr
- Manejador de funciones criptográficas.- Throws:
Iso7816FourCardException
- Cuando hay errores relativos a la ISO-7816-4.java.io.IOException
- Si hay errores de entrada / salida.
-
-
Method Detail
-
connect
private void connect(ApduConnection conn) throws java.io.IOException
Conecta con el lector del sistema que tenga una CardOS insertada.- Parameters:
conn
- Conexión hacia la tarjeta.- Throws:
java.io.IOException
- Cuando hay errores de entrada / salida.
-
preloadCertificates
private void preloadCertificates() throws FileNotFoundException, Iso7816FourCardException, java.io.IOException, Asn1Exception, TlvException
- Throws:
FileNotFoundException
Iso7816FourCardException
java.io.IOException
Asn1Exception
TlvException
-
getCardName
public java.lang.String getCardName()
Description copied from class:AbstractSmartCard
Obtiene el nombre de la tarjeta.- Specified by:
getCardName
in classAbstractSmartCard
- Returns:
- Nombre de la tarjeta
-
getAliases
public java.lang.String[] getAliases()
Description copied from interface:CryptoCard
Obtiene los alias de los certificados de la tarjeta.- Specified by:
getAliases
in interfaceCryptoCard
- Returns:
- Array con los alias de los certificados de la tarjeta
-
getCertificate
public java.security.cert.X509Certificate getCertificate(java.lang.String alias)
Description copied from interface:CryptoCard
Obtiene el certificado correspondiente al alias proporcionado.- Specified by:
getCertificate
in interfaceCryptoCard
- Parameters:
alias
- Alias del certificado.- Returns:
- Certificado correspondiente al alias proporcionado o
null
si no existe ningún certificado con ese alias.
-
selectMasterFile
protected void selectMasterFile() throws ApduConnectionException, FileNotFoundException, Iso7816FourCardException
Description copied from class:AbstractIso7816FourCard
Selecciona el fichero maestro (directorio raíz de la tarjeta).- Specified by:
selectMasterFile
in classAbstractIso7816FourCard
- Throws:
ApduConnectionException
- Si hay problemas en el envío de la APDU.FileNotFoundException
- Si no se encuentra el MF.Iso7816FourCardException
- Si no se puede seleccionar el fichero maestro por cualquier otra causa.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getPrivateKey
public PrivateKeyReference getPrivateKey(java.lang.String alias)
Description copied from interface:CryptoCard
Obtiene una referencia a la clave privada correspondiente al alias proporcionado.- Specified by:
getPrivateKey
in interfaceCryptoCard
- Parameters:
alias
- Alias del certificado- Returns:
- Referencia a la clave privada correspondiente al alias proporcionado o
null
si no existe ninguna clave privada con ese alias
-
sign
public byte[] sign(byte[] data, java.lang.String algorithm, PrivateKeyReference keyRef)
Description copied from interface:CryptoCard
Realiza una firma electrónica.- Specified by:
sign
in interfaceCryptoCard
- Parameters:
data
- Datos a firmar.algorithm
- Algoritmo de firma.keyRef
- Referencia a la clave privada de firma.- Returns:
- Datos firmados (PKCS#1 v1.5).
-
verifyPin
public void verifyPin(javax.security.auth.callback.PasswordCallback pinPc)
Description copied from class:AbstractIso7816FourCard
Verifica el PIN de la tarjeta. El método reintenta hasta que se introduce el PIN correctamente, se bloquea la tarjeta por exceso de intentos de introducción de PIN o se recibe una excepción (derivada deRuntimeException
o unaApduConnectionException
.- Specified by:
verifyPin
in classAbstractIso7816FourCard
- Parameters:
pinPc
- PIN de la tarjeta.
-
-