Package es.gob.jmulticard.card.cwa14890
Interface Cwa14890Card
-
- All Known Implementing Classes:
CeresSc
,Dnie
,Dnie3
,DnieNfc
,IcaoMrtdWithBac
,IcaoMrtdWithPace
,Tif
public interface Cwa14890Card
Tarjetas acordes a la especificación CWA-14890.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
externalAuthentication(byte[] extAuthenticationData)
Envia el mensaje de autenticación externa.byte[]
getChallenge()
Solicita un desafío de 8 bytes a la tarjeta.byte[]
getChrCCvIfd(Cwa14890PublicConstants consts)
Recupera el CHR de la clave pública del certificado de terminal.java.security.interfaces.RSAPublicKey
getIccCertPublicKey()
Recupera la clave pública del certificado de componente.int
getIfdKeyLength(Cwa14890PublicConstants consts)
Obtiene la longitud, en octetos, de las claves RSA del certificado de comnponente del terminal.java.security.interfaces.RSAPrivateKey
getIfdPrivateKey(Cwa14890PrivateConstants consts)
Recupera la clave privada del certificado de componente del terminal.byte[]
getInternalAuthenticateMessage(byte[] randomIfd, byte[] chrCCvIfd)
Obtiene el mensaje de autenticación interna de la tarjeta.byte[]
getRefIccPrivateKey(Cwa14890PublicConstants consts)
Recupera la referencia a la clave privada del certificado de componente.byte[]
getSerialNumber()
Recupera el número de serie de la tarjeta.void
setKeysToAuthentication(byte[] refPublicKey, byte[] refPrivateKey)
Establece una clave pública y otra privada para la autenticación.void
verifyIcc()
Verifica el certificado de componente de la tarjeta.void
verifyIfdCertificateChain(Cwa14890PublicConstants consts)
Verifica que los certificados declarados por el controlador (certificados de terminal) sean válidos para el uso de la tarjeta.
-
-
-
Method Detail
-
verifyIcc
void verifyIcc() throws java.security.cert.CertificateException, java.io.IOException
Verifica el certificado de componente de la tarjeta.- Throws:
java.security.cert.CertificateException
- Cuando ocurre algún problema en la validación del certificado.java.io.IOException
- Cuando ocurre algún problema en la selección y lectura del certificado.java.lang.SecurityException
- Si falla la validación del certificado.
-
getIccCertPublicKey
java.security.interfaces.RSAPublicKey getIccCertPublicKey() throws java.io.IOException
Recupera la clave pública del certificado de componente.- Returns:
- Clave pública del certificado de componente.
- Throws:
java.io.IOException
- Cuando ocurre algún problema en la selección y lectura del certificado
-
verifyIfdCertificateChain
void verifyIfdCertificateChain(Cwa14890PublicConstants consts) throws ApduConnectionException
Verifica que los certificados declarados por el controlador (certificados de terminal) sean válidos para el uso de la tarjeta.- Parameters:
consts
- Clase de claves.- Throws:
ApduConnectionException
- Cuando ocurre algín error en la comunicación con la tarjeta.es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException
- Cuando ocurre algún error en la verificación de los certificados.
-
getInternalAuthenticateMessage
byte[] getInternalAuthenticateMessage(byte[] randomIfd, byte[] chrCCvIfd) throws ApduConnectionException
Obtiene el mensaje de autenticación interna de la tarjeta.- Parameters:
randomIfd
- Bytes aleatorios generados.chrCCvIfd
- CHR de la clave pública del certificado de terminal.- Returns:
- Mensaje cifrado con la clave privada de componente de la tarjeta.
- Throws:
ApduConnectionException
- Cuando ocurre un error de comunicación con la tarjeta.
-
externalAuthentication
boolean externalAuthentication(byte[] extAuthenticationData) throws ApduConnectionException
Envia el mensaje de autenticación externa.- Parameters:
extAuthenticationData
- Mensaje de autenticación externa.- Returns:
true
si la autenticación finalizó correctamente,false
en caso contrario.- Throws:
ApduConnectionException
- Cuando ocurre un error en la comunicación con la tarjeta.
-
setKeysToAuthentication
void setKeysToAuthentication(byte[] refPublicKey, byte[] refPrivateKey) throws ApduConnectionException
Establece una clave pública y otra privada para la autenticación. interna y externa de la tarjeta.- Parameters:
refPublicKey
- Referencia a la clave pública.refPrivateKey
- Referencia a la clave privada.- Throws:
es.gob.jmulticard.apdu.connection.cwa14890.SecureChannelException
- Cuando ocurre un error durante el proceso de autenticación.ApduConnectionException
- Cuando ocurre un error de comunicación con la tarjeta.
-
getChallenge
byte[] getChallenge() throws ApduConnectionException
Solicita un desafío de 8 bytes a la tarjeta.- Returns:
- Array de 8 bytes aleatorios.
- Throws:
ApduConnectionException
- Cuando ocurre un error de comunicación con la tarjeta
-
getSerialNumber
byte[] getSerialNumber() throws ApduConnectionException
Recupera el número de serie de la tarjeta.- Returns:
- Número de serie.
- Throws:
ApduConnectionException
- Cuando ocurre un error en la comunicación con la tarjeta.
-
getRefIccPrivateKey
byte[] getRefIccPrivateKey(Cwa14890PublicConstants consts)
Recupera la referencia a la clave privada del certificado de componente.- Parameters:
consts
- Clase de claves.- Returns:
- Referencia a clave privada
-
getChrCCvIfd
byte[] getChrCCvIfd(Cwa14890PublicConstants consts)
Recupera el CHR de la clave pública del certificado de terminal.- Parameters:
consts
- Clase de claves.- Returns:
- Referencia a clave pública
-
getIfdPrivateKey
java.security.interfaces.RSAPrivateKey getIfdPrivateKey(Cwa14890PrivateConstants consts)
Recupera la clave privada del certificado de componente del terminal.- Parameters:
consts
- Clase de claves privadas.- Returns:
- Clave privada.
-
getIfdKeyLength
int getIfdKeyLength(Cwa14890PublicConstants consts)
Obtiene la longitud, en octetos, de las claves RSA del certificado de comnponente del terminal.- Parameters:
consts
- Clase de claves.- Returns:
- Longitud, en octetos, de las claves RSA del certificado de comnponente del terminal.
-
-