Class CeresSc
- All Implemented Interfaces:
Card
,CryptoCard
,Cwa14890Card
,Dni
Tarjeta FNMT CERES con canal seguro.
-
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[]
static final Atr
ATR de las tarjetas FNMT CERES 4.30 y superior.private static String
private Map
<String, X509Certificate> Certificados de la tarjeta indexados por su alias.private Map
<String, DniePrivateKeyReference> Referencias a las claves privadas de la tarjeta indexadas por el alias de su certificado asociado.Fields inherited from class es.gob.jmulticard.card.dnie.Dnie
CDF_LOCATION, CERT_ALIAS_AUTH, CERT_ALIAS_CYPHER, CERT_ALIAS_INTERMEDIATE_CA, CERT_ALIAS_SIGN, CERT_ALIAS_SIGNALIAS, certAuth, certCyph, certIcc, certSign, certSignAlias, cryptoHelper, IDESP_LOCATION, intermediateCaCert, LOGGER, PRKDF_LOCATION, rawConnection
Fields inherited from class es.gob.jmulticard.card.AbstractSmartCard
DEBUG
-
Constructor Summary
ConstructorsConstructorDescriptionCeresSc
(ApduConnection conn, PasswordCallback pwc, CryptoHelper cryptoHlpr, CallbackHandler ch) Construye una tarjeta FNMT CERES con canal seguro.CeresSc
(ApduConnection conn, PasswordCallback pwc, CryptoHelper cryptoHlpr, CallbackHandler ch, boolean loadCertsAndKeys) Construye una tarjeta FNMT CERES con canal seguro. -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
checkAtr
(byte[] atrBytes) String[]
Obtiene los alias de los certificados de la tarjeta.getCertificate
(String alias) Obtiene el certificado correspondiente al alias proporcionado.protected Cwa14890PrivateConstants
Obtiene las constantes privadas CWA-14890 para el cifrado de canal.protected Cwa14890PublicConstants
Obtiene las constantes públicas CWA-14890 para el cifrado de canal.protected String
getPinMessage
(int retriesLeft) Devuelve el texto del diálogo de inserción de PIN.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.protected void
Carga el certificado de la CA intermedia y las localizaciones del resto de los certificados.protected void
Carga la información pública con la referencia a las claves de firma.protected boolean
Indica si la tarjeta requiere autorización del usuario para ejecutar una operación de firma.void
Establece y abre el canal seguro CWA-14890 si no lo estaba ya hecho.private void
preload()
protected byte[]
signOperation
(byte[] data, String algorithm, PrivateKeyReference privateKeyReference) Realiza la operación de firma.toString()
Methods inherited from class es.gob.jmulticard.card.dnie.Dnie
changePIN, cipherData, connect, externalAuthentication, getCardName, getCdf, getChrCCvIfd, getCryptoHelper, getIccCertPublicKey, getIdesp, getIfdKeyLength, getIfdPrivateKey, getInternalAuthenticateMessage, getInternalPasswordCallback, getInternalPasswordCallback, getPasswordCallback, getPinRetriesLeft, getRefIccPrivateKey, getSerialNumber, isSecurityChannelOpen, loadCertificates, needsPinForLoadingCerts, openSecureChannelIfNotAlreadyOpened, selectMasterFile, setCallbackHandler, setKeysToAuthentication, setPasswordCallback, sign, signInternal, verifyIcc, verifyIfdCertificateChain, verifyPin
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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface es.gob.jmulticard.card.cwa14890.Cwa14890Card
getChallenge
-
Field Details
-
ATR_MASK_TC
private static final byte[] ATR_MASK_TC -
ATR_TC
ATR de las tarjetas FNMT CERES 4.30 y superior. -
cardVersion
-
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
). -
keyReferences
Referencias a las claves privadas de la tarjeta indexadas por el alias de su certificado asociado.
-
-
Constructor Details
-
CeresSc
public CeresSc(ApduConnection conn, PasswordCallback pwc, CryptoHelper cryptoHlpr, CallbackHandler ch) throws ApduConnectionException, InvalidCardException Construye una tarjeta FNMT CERES con canal seguro.- Parameters:
conn
- Conexión con la tarjeta.pwc
- PasswordCallback para obtener el PIN de la tarjeta.cryptoHlpr
- Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.ch
- Gestor de callbacks para la solicitud de datos al usuario.- Throws:
ApduConnectionException
- Si la conexión con la tarjeta se proporciona cerrada y no es posible abrirla.InvalidCardException
- Si la tarjeta no es una CERES 4.30 o superior.
-
CeresSc
public CeresSc(ApduConnection conn, PasswordCallback pwc, CryptoHelper cryptoHlpr, CallbackHandler ch, boolean loadCertsAndKeys) throws ApduConnectionException, InvalidCardException Construye una tarjeta FNMT CERES con canal seguro.- Parameters:
conn
- Conexión con la tarjeta.pwc
- PasswordCallback para obtener el PIN de la tarjeta.cryptoHlpr
- Funcionalidades criptográficas de utilidad que pueden variar entre máquinas virtuales.ch
- Gestor de callbacks para la solicitud de datos al usuario.loadCertsAndKeys
- Si se indicatrue
, se cargan las referencias a las claves privadas y a los certificados, mientras que si se indicafalse
, no se cargan, permitiendo la instanciación de una tarjeta sin capacidades de firma o autenticación con certificados.- Throws:
ApduConnectionException
- Si la conexión con la tarjeta se proporciona cerrada y no es posible abrirla.InvalidCardException
- Si la tarjeta no es una CERES 4.30 o superior.
-
-
Method Details
-
getCertificate
Description copied from interface:CryptoCard
Obtiene el certificado correspondiente al alias proporcionado.- Specified by:
getCertificate
in interfaceCryptoCard
- Overrides:
getCertificate
in classDnie
- Parameters:
alias
- Alias del certificado.- Returns:
- Certificado correspondiente al alias proporcionado o
null
si no existe ningún certificado con ese alias.
-
signOperation
protected byte[] signOperation(byte[] data, String algorithm, PrivateKeyReference privateKeyReference) throws CryptoCardException, PinException Description copied from class:Dnie
Realiza la operación de firma.- Overrides:
signOperation
in classDnie
- Parameters:
data
- Datos que se desean firmar.algorithm
- Algoritmo de firma (por ejemplo,SHA512withRSA
,SHA1withRSA
, etc.).privateKeyReference
- Referencia a la clave privada para la firma.- Returns:
- Firma de los datos.
- Throws:
CryptoCardException
- Cuando se produce un error durante la operación de firma.PinException
- Si el PIN proporcionado en la PasswordCallback es incorrecto y no estaba habilitado el reintento automático.
-
getCwa14890PublicConstants
Description copied from class:Dnie
Obtiene las constantes públicas CWA-14890 para el cifrado de canal.- Overrides:
getCwa14890PublicConstants
in classDnie
- Returns:
- Constantes públicas CWA-14890 para el cifrado de canal.
-
getCwa14890PrivateConstants
Description copied from class:Dnie
Obtiene las constantes privadas CWA-14890 para el cifrado de canal.- Overrides:
getCwa14890PrivateConstants
in classDnie
- Returns:
- Constantes privadas CWA-14890 para el cifrado de canal.
-
loadCertificatesPaths
Carga el certificado de la CA intermedia y las localizaciones del resto de los certificados.- Overrides:
loadCertificatesPaths
in classDnie
- Throws:
ApduConnectionException
- Si hay problemas en la precarga.
-
loadKeyReferences
protected void loadKeyReferences()Carga la información pública con la referencia a las claves de firma.- Overrides:
loadKeyReferences
in classDnie
-
getAliases
Description copied from interface:CryptoCard
Obtiene los alias de los certificados de la tarjeta.- Specified by:
getAliases
in interfaceCryptoCard
- Overrides:
getAliases
in classDnie
- Returns:
- Array con los alias de los certificados de la tarjeta
-
getPrivateKey
Description copied from interface:CryptoCard
Obtiene una referencia a la clave privada correspondiente al alias proporcionado.- Specified by:
getPrivateKey
in interfaceCryptoCard
- Overrides:
getPrivateKey
in classDnie
- 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
-
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. -
openSecureChannelIfNotAlreadyOpened
Establece y abre el canal seguro CWA-14890 si no lo estaba ya hecho.- Overrides:
openSecureChannelIfNotAlreadyOpened
in classDnie
- Throws:
CryptoCardException
- Si hay problemas en el proceso.PinException
- Si el PIN usado para la apertura de canal no es válido o no se ha proporcionado un PIN para validar.
-
needAuthorizationToSign
protected boolean needAuthorizationToSign()Description copied from class:Dnie
Indica si la tarjeta requiere autorización del usuario para ejecutar una operación de firma.- Overrides:
needAuthorizationToSign
in classDnie
- Returns:
true
si la tarjeta requiere autorización del usuario para ejecutar una operación de firma,false
en caso contrario.
-
getPinMessage
Description copied from class:Dnie
Devuelve el texto del diálogo de inserción de PIN.- Overrides:
getPinMessage
in classDnie
- Parameters:
retriesLeft
- Intentos restantes antes de bloquear la tarjeta.- Returns:
- Mensaje que mostrar en el cuerpo del diálogo de inserción de PIN.
-
checkAtr
- Throws:
InvalidCardException
-
toString
-