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 AtrATRprivate static byte[]ATR_MASKprivate static java.util.Map<java.lang.String,java.security.cert.X509Certificate>CERTIFICATES_BY_ALIASprivate static byteCLAprivate CryptoHelpercryptoHelperManejador de funciones criptográficas.private static java.util.logging.LoggerLOGGERprivate 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 voidconnect(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.StringgetCardName()Obtiene el nombre de la tarjeta.java.security.cert.X509CertificategetCertificate(java.lang.String alias)Obtiene el certificado correspondiente al alias proporcionado.PrivateKeyReferencegetPrivateKey(java.lang.String alias)Obtiene una referencia a la clave privada correspondiente al alias proporcionado.private voidpreloadCertificates()protected voidselectMasterFile()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.StringtoString()voidverifyPin(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:
FileNotFoundExceptionIso7816FourCardExceptionjava.io.IOExceptionAsn1ExceptionTlvException
-
getCardName
public java.lang.String getCardName()
Description copied from class:AbstractSmartCardObtiene el nombre de la tarjeta.- Specified by:
getCardNamein classAbstractSmartCard- Returns:
- Nombre de la tarjeta
-
getAliases
public java.lang.String[] getAliases()
Description copied from interface:CryptoCardObtiene los alias de los certificados de la tarjeta.- Specified by:
getAliasesin 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:CryptoCardObtiene el certificado correspondiente al alias proporcionado.- Specified by:
getCertificatein interfaceCryptoCard- Parameters:
alias- Alias del certificado.- Returns:
- Certificado correspondiente al alias proporcionado o
nullsi no existe ningún certificado con ese alias.
-
selectMasterFile
protected void selectMasterFile() throws ApduConnectionException, FileNotFoundException, Iso7816FourCardExceptionDescription copied from class:AbstractIso7816FourCardSelecciona el fichero maestro (directorio raíz de la tarjeta).- Specified by:
selectMasterFilein 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:
toStringin classjava.lang.Object
-
getPrivateKey
public PrivateKeyReference getPrivateKey(java.lang.String alias)
Description copied from interface:CryptoCardObtiene una referencia a la clave privada correspondiente al alias proporcionado.- Specified by:
getPrivateKeyin interfaceCryptoCard- Parameters:
alias- Alias del certificado- Returns:
- Referencia a la clave privada correspondiente al alias proporcionado o
nullsi no existe ninguna clave privada con ese alias
-
sign
public byte[] sign(byte[] data, java.lang.String algorithm, PrivateKeyReference keyRef)Description copied from interface:CryptoCardRealiza una firma electrónica.- Specified by:
signin 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:AbstractIso7816FourCardVerifica 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 deRuntimeExceptiono unaApduConnectionException.- Specified by:
verifyPinin classAbstractIso7816FourCard- Parameters:
pinPc- PIN de la tarjeta.
-
-