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 AtrATR de las tarjetas FNMT CERES 4.30 y superior.private static Stringprivate 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 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, rawConnectionFields inherited from class 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 voidcheckAtr(byte[] atrBytes) String[]Obtiene los alias de los certificados de la tarjeta.getCertificate(String alias) Obtiene el certificado correspondiente al alias proporcionado.protected Cwa14890PrivateConstantsObtiene las constantes privadas CWA-14890 para el cifrado de canal.protected Cwa14890PublicConstantsObtiene las constantes públicas CWA-14890 para el cifrado de canal.protected StringgetPinMessage(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 voidOculta los certificados que no tienen una clave privada asociada.protected voidCarga el certificado de la CA intermedia y las localizaciones del resto de los certificados.protected voidCarga la información pública con la referencia a las claves de firma.protected booleanIndica si la tarjeta requiere autorización del usuario para ejecutar una operación de firma.voidEstablece y abre el canal seguro CWA-14890 si no lo estaba ya hecho.private voidpreload()protected byte[]signOperation(byte[] data, String algorithm, PrivateKeyReference privateKeyReference) Realiza la operación de firma.toString()Methods inherited from class 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, verifyPinMethods 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, setConnectionMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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
-
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:CryptoCardObtiene el certificado correspondiente al alias proporcionado.- Specified by:
getCertificatein interfaceCryptoCard- Overrides:
getCertificatein classDnie- Parameters:
alias- Alias del certificado.- Returns:
- Certificado correspondiente al alias proporcionado o
nullsi 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:DnieRealiza la operación de firma.- Overrides:
signOperationin 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:DnieObtiene las constantes públicas CWA-14890 para el cifrado de canal.- Overrides:
getCwa14890PublicConstantsin classDnie- Returns:
- Constantes públicas CWA-14890 para el cifrado de canal.
-
getCwa14890PrivateConstants
Description copied from class:DnieObtiene las constantes privadas CWA-14890 para el cifrado de canal.- Overrides:
getCwa14890PrivateConstantsin 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:
loadCertificatesPathsin 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:
loadKeyReferencesin classDnie
-
getAliases
Description copied from interface:CryptoCardObtiene los alias de los certificados de la tarjeta.- Specified by:
getAliasesin interfaceCryptoCard- Overrides:
getAliasesin classDnie- Returns:
- Array con los alias de los certificados de la tarjeta
-
getPrivateKey
Description copied from interface:CryptoCardObtiene una referencia a la clave privada correspondiente al alias proporcionado.- Specified by:
getPrivateKeyin interfaceCryptoCard- Overrides:
getPrivateKeyin classDnie- 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
-
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:
openSecureChannelIfNotAlreadyOpenedin 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:DnieIndica si la tarjeta requiere autorización del usuario para ejecutar una operación de firma.- Overrides:
needAuthorizationToSignin classDnie- Returns:
truesi la tarjeta requiere autorización del usuario para ejecutar una operación de firma,falseen caso contrario.
-
getPinMessage
Description copied from class:DnieDevuelve el texto del diálogo de inserción de PIN.- Overrides:
getPinMessagein 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
-