Class ApduEncrypterDes
java.lang.Object
es.gob.jmulticard.connection.AbstractApduEncrypter
es.gob.jmulticard.connection.ApduEncrypterDes
- Direct Known Subclasses:
ApduEncrypterDesMac8
Cifrador de APDU según CWA-14890 mediante 3DES y MAC de 4 octetos.
- Author:
- Tomás García-Merás, Carlos Gamuci Millán.
-
Field Summary
Fields inherited from class AbstractApduEncrypter
paddingLength, TAG_DATA_TLV -
Constructor Summary
ConstructorsConstructorDescriptionConstructor de la clase para operaciones de cifrado cifrado DES. -
Method Summary
Modifier and TypeMethodDescriptiondecryptResponseApdu(ResponseApdu responseApdu, byte[] keyCipher, byte[] ssc, byte[] kMac, CryptoHelper cryptoHelper) Desencripta los datos de una APDU de respuesta protegida.protected byte[]encryptData(byte[] data, byte[] key, byte[] ssc, CryptoHelper cryptoHelper) Encripta los datos para una APDU cifrada.protected byte[]generateMac(byte[] dataPadded, byte[] ssc, byte[] kMac, CryptoHelper cryptoHelper) Aplica el algoritmo para la generación de la MAC del mensaje.protected intDevuelve la longitud de la MAC de las APDU cifradas.Methods inherited from class AbstractApduEncrypter
addPadding7816, protectAPDU, removePadding7816
-
Constructor Details
-
ApduEncrypterDes
public ApduEncrypterDes()Constructor de la clase para operaciones de cifrado cifrado DES.
-
-
Method Details
-
getMacLength
protected int getMacLength()Devuelve la longitud de la MAC de las APDU cifradas.- Returns:
- Longitud de la MAC de las APDU cifradas.
-
encryptData
protected byte[] encryptData(byte[] data, byte[] key, byte[] ssc, CryptoHelper cryptoHelper) throws IOException Description copied from class:AbstractApduEncrypterEncripta los datos para una APDU cifrada.- Specified by:
encryptDatain classAbstractApduEncrypter- Parameters:
data- Datos de la APDU.key- Clave de cifrado.ssc- Contador de secuencia.cryptoHelper- Clase con las funcionalidades de criptografía.- Returns:
- Datos enconcriptados.
- Throws:
IOException- En cualquier error.
-
generateMac
protected byte[] generateMac(byte[] dataPadded, byte[] ssc, byte[] kMac, CryptoHelper cryptoHelper) throws IOException Aplica el algoritmo para la generación de la MAC del mensaje.- Specified by:
generateMacin classAbstractApduEncrypter- Parameters:
dataPadded- Datos sobre los que generar la MAC.ssc- Contador de secuencia de la operación.kMac- Clave Triple DES necesaria para la operación.cryptoHelper- Manejador para la realización de las operaciones criptográficas.- Returns:
- Clave de autenticación de los datos.
- Throws:
IOException- Si hay errores de entrada / salida.
-
decryptResponseApdu
public ResponseApdu decryptResponseApdu(ResponseApdu responseApdu, byte[] keyCipher, byte[] ssc, byte[] kMac, CryptoHelper cryptoHelper) throws IOException Desencripta los datos de una APDU de respuesta protegida.- Specified by:
decryptResponseApduin classAbstractApduEncrypter- Parameters:
responseApdu- APDU de respuesta cifrada.keyCipher- Clave para el descifrado de la respuesta.ssc- Código de secuencia correspondiente a la respuesta.kMac- Clave para la verificación de la respuesta.cryptoHelper- Manejador para el desencriptado.- Returns:
- APDU con la respuesta descifrada.
- Throws:
IOException- Cuando ocurre un error durante la desencriptación de los datos.
-