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 Atr
private static final Atr
private static final Atr
private static final Atr
private boolean
private CallbackHandler
private static final Location
private Map
<String, X509Certificate> Certificados de la tarjeta indexados por su alias.private static final byte
private final CryptoHelper
private static final byte
Octeto que identifica una verificación fallida del PIN por PIN de longitud incorrecta.private static final byte
Octeto 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 Logger
private static final String
Nombre del Fichero Maestro.private static final int
private PasswordCallback
private static final Location
Fields inherited from class es.gob.jmulticard.card.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 void
checkAtr
(byte[] atrBytes) static void
connect
(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 PasswordCallback
Obtiene laPasswordCallback
predefinida.private int
getPrivateKey
(String alias) Obtiene una referencia a la clave privada correspondiente al alias proporcionado.private void
Oculta los certificados que no tienen una clave privada asociada.private void
loadData
(int keyBitSize, byte[] digestInfo) private void
preload()
protected void
Selecciona el fichero maestro (directorio raíz de la tarjeta).void
Define elCallbackHandler
.void
Establece elPasswordCallback
para el PIN de la tarjeta.byte[]
sign
(byte[] data, String algorithm, PrivateKeyReference keyRef) Realiza una firma electrónica.void
verifyPin
(PasswordCallback pinPc) Verifica el PIN de la tarjeta.Methods inherited from class es.gob.jmulticard.card.iso7816eight.AbstractIso7816EightCard
verifyCertificate
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 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
Nombre del Fichero Maestro.- See Also:
-
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
Alias de los certificados de la tarjeta indexados por el identificador interno del certificado (pasado debyte[]
aString
). -
keys
Claves privadas de la tarjeta indexadas por el alias de su certificado asociado. -
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 elPasswordCallback
para el PIN de la tarjeta.- Parameters:
pwc
-PasswordCallback
para 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: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
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.
-
getPrivateKey
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, String algorithm, PrivateKeyReference keyRef) throws CryptoCardException, PinException 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).
- 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: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.
-
verifyPin
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.- 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 laPasswordCallback
predefinida.- Returns:
PasswordCallback
predefinida.- Throws:
PinException
- Si no se puede obtener el PIN delCallbackHandler
.
-
getPinRetriesLeft
- Throws:
PinException
-
getCardName
Description copied from class:AbstractSmartCard
Obtiene el nombre de la tarjeta.- Specified by:
getCardName
in classAbstractSmartCard
- Returns:
- Nombre de la tarjeta
-
getCallbackHandler
Obtiene elCallbackHandler
.- Returns:
CallbackHandler
.
-
setCallbackHandler
Define elCallbackHandler
.- Parameters:
callh
-CallbackHandler
a definir.
-