Class Ceres
java.lang.Object
es.gob.jmulticard.card.AbstractSmartCard
es.gob.jmulticard.card.iso7816four.AbstractIso7816FourCard
es.gob.jmulticard.card.iso7816eight.AbstractIso7816EightCard
es.gob.jmulticard.card.fnmt.ceres.Ceres
- All Implemented Interfaces:
Card, CryptoCard
Tarjeta FNMT-RCM CERES.
-
Field Summary
FieldsModifier and TypeFieldDescriptionAlias de los certificados de la tarjeta indexados por el identificador interno del certificado (pasado debyte[]aString).private static final byte[]private static final byte[]private static final byte[]private static final byte[]private static final Atrprivate static final Atrprivate static final Atrprivate static final Atrprivate booleanprivate CallbackHandlerprivate static final Locationprivate Map<String, X509Certificate> Certificados de la tarjeta indexados por su alias.private static final byteprivate final CryptoHelperprivate static final byteOcteto que identifica una verificación fallida del PIN por PIN de longitud incorrecta.private static final byteOcteto que identifica una verificación fallida del PIN por PIN incorrecto.Claves privadas de la tarjeta indexadas por el alias de su certificado asociado.private static final Loggerprivate static final StringNombre del Fichero Maestro.private static final intprivate PasswordCallbackprivate static final LocationFields inherited from class AbstractSmartCard
DEBUG -
Constructor Summary
ConstructorsConstructorDescriptionCeres(ApduConnection conn, CryptoHelper ch) Construye una clase que representa una tarjeta FNMT-RCM CERES. -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidcheckAtr(byte[] atrBytes) static voidconnect(ApduConnection conn) Inicia la conexión con la tarjeta CERES.String[]Obtiene los alias de los certificados de la tarjeta.Obtiene elCallbackHandler.Obtiene el nombre de la tarjeta.getCertificate(String alias) Obtiene el certificado correspondiente al alias proporcionado.protected PasswordCallbackObtiene laPasswordCallbackpredefinida.private intgetPrivateKey(String alias) Obtiene una referencia a la clave privada correspondiente al alias proporcionado.private voidOculta los certificados que no tienen una clave privada asociada.private voidloadData(int keyBitSize, byte[] digestInfo) private voidpreload()protected voidSelecciona el fichero maestro (directorio raíz de la tarjeta).voidDefine elCallbackHandler.voidEstablece elPasswordCallbackpara el PIN de la tarjeta.byte[]sign(byte[] data, String algorithm, PrivateKeyReference keyRef) Realiza una firma electrónica.voidverifyPin(PasswordCallback pinPc) Verifica el PIN de la tarjeta.Methods inherited from class AbstractIso7816EightCard
verifyCertificateMethods inherited from class AbstractIso7816FourCard
getChallenge, readAllRecords, readBinaryComplete, selectFileById, selectFileByIdAndRead, selectFileByLocation, selectFileByLocationAndRead, selectFileByName, selectFileByName, setPublicKeyToVerificationMethods inherited from class AbstractSmartCard
getCla, getConnection, sendArbitraryApdu, setConnection
-
Field Details
-
ATR_MASK_TC
private static final byte[] ATR_MASK_TC -
ATR_TC
-
ATR_MASK_ST
private static final byte[] ATR_MASK_ST -
ATR_ST
-
ATR_MASK_SLE_FN20
private static final byte[] ATR_MASK_SLE_FN20 -
ATR_SLE_FN20
-
ATR_MASK_SLE_FN19
private static final byte[] ATR_MASK_SLE_FN19 -
ATR_SLE_FN19
-
CLA
private static final byte CLA- See Also:
-
LOGGER
-
cryptoHelper
-
CDF_LOCATION
-
PRKDF_LOCATION
-
MAX_APDU_SIZE
private static final int MAX_APDU_SIZE- See Also:
-
MASTER_FILE_NAME
-
ERROR_PIN_SW1
private static final byte ERROR_PIN_SW1Octeto que identifica una verificación fallida del PIN por PIN de longitud incorrecta.- See Also:
-
ERROR_PIN_SW2
private static final byte ERROR_PIN_SW2Octeto que identifica una verificación fallida del PIN por PIN incorrecto.- See Also:
-
certs
Certificados de la tarjeta indexados por su alias. -
aliasByCertAndKeyId
-
keys
-
passwordCallback
-
authenticated
private transient boolean authenticated -
callbackHandler
-
-
Constructor Details
-
Ceres
public Ceres(ApduConnection conn, CryptoHelper ch) throws ApduConnectionException, InvalidCardException Construye una clase que representa una tarjeta FNMT-RCM CERES.- Parameters:
conn- Conexión con la tarjeta.ch- Clase para la realización de las huellas digitales del DigestInfo.- Throws:
ApduConnectionException- Si hay problemas con la conexión proporcionada.InvalidCardException- Si la tarjeta conectada no es una FNMT-RCM CERES.
-
-
Method Details
-
setPasswordCallback
Establece elPasswordCallbackpara el PIN de la tarjeta.- Parameters:
pwc-PasswordCallbackpara el PIN de la tarjeta.
-
checkAtr
- Throws:
InvalidCardException
-
connect
public static void connect(ApduConnection conn) throws ApduConnectionException, InvalidCardException Inicia la conexión con la tarjeta CERES.- Parameters:
conn- Conexión con el lector de tarjetas.- Throws:
ApduConnectionException- Si ocurren errores de conexión.InvalidCardException- Si la tarjeta encontrada en el lector no es una tarjeta FNMT-RCM-CERES.
-
preload
private void preload() throws ApduConnectionException, Iso7816FourCardException, IOException, CertificateException, Asn1Exception, TlvException -
hideCertsWithoutKey
private void hideCertsWithoutKey()Oculta los certificados que no tienen una clave privada asociada. -
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
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.
-
getPrivateKey
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, String algorithm, PrivateKeyReference keyRef) throws CryptoCardException, PinException 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).
- Throws:
CryptoCardException- Si ocurre algún problema durante la firma.PinException- Si el PIN proporcionado es incorrecto o no es posible obtenerlo.
-
loadData
- Throws:
CryptoCardException
-
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.
-
verifyPin
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.- Throws:
ApduConnectionException- Cuando ocurre un error en la comunicación con la tarjeta.PinException- Si el PIN proporcionado en la PasswordCallback es incorrecto y no estaba habilitado el reintento automático
-
getInternalPasswordCallback
Obtiene laPasswordCallbackpredefinida.- Returns:
PasswordCallbackpredefinida.- Throws:
PinException- Si no se puede obtener el PIN delCallbackHandler.
-
getPinRetriesLeft
- Throws:
PinException
-
getCardName
Description copied from class:AbstractSmartCardObtiene el nombre de la tarjeta.- Specified by:
getCardNamein classAbstractSmartCard- Returns:
- Nombre de la tarjeta
-
getCallbackHandler
-
setCallbackHandler
Define elCallbackHandler.- Parameters:
callh-CallbackHandlera definir.
-