API Java
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Criptografía

Descripción detallada

Operaciones hash criptográficas simétricas y asimétricas.

Funciones

byte[] createHash (int nAlgId, byte[] hKey, int nFlags) throws TacException
 Crea un contexto para el cálculo de Hash.
 
byte[] createHash (int nAlgId) throws TacException
 Crea un contexto para calcular el hash.
 
byte[] genEcdhKey (int dwOP, String szPriKey, byte[] pbInData) throws TacException
 Genera una clave/secreto compartido utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman).
 
byte[] genEcdhKeyX963 (int dwOP, String szPriKey, String szTargetKeyName, int dwTargetKeyAlg, int dwTargetKeyAttributes, byte[] pbPubKey, byte[] pbKDFData, int dwFlags) throws TacException
 Genera una clave secreta compartida utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman) estándar ANSI X9.63.
 
byte[] genEcdhKeyX963Sha256 (String szPriKey, String szTargetKeyName, int dwTargetKeyAlg, boolean isExportable, boolean isTemporary, byte[] pbPubKey, byte[] pbKDFData) throws TacException
 Genera una clave/secreto compartido utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman) estándar ANSI X9.63 SHA256.
 
byte[] getRand (int tamaño) throws TacException
 Genera un búfer pseudoaleatorio, generado en el HSM, para uso criptográfico.
 
byte[] encrypt (String strKeyId, byte[] byInput) throws TacException
 Cifra un búfer de datos.
 
byte[] encrypt (String strKeyId, byte[] byInput, int flags) throws TacException
 Cifra un búfer de datos.
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Cifra los datos.
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode, int flags) throws TacException
 Cifra los datos.
 
byte[] decrypt (String keyId, byte[] input) throws TacException
 Desencripta los datos, a menudo encriptados por la función DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, int flags) throws TacException
 Desencripta los datos, a menudo encriptados por la función DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Desencripta los datos, a menudo encriptados por la función DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, byte[] byIV, int dwPadding, int dwMode, int flags) throws TacException
 Desencripta los datos, a menudo encriptados por la función DEncrypt.
 
int verifySignature (String keyId, int algHash, byte[] bSignature, byte[] bMessage) throws TacException
 Comprueba un mensaje.
 
int verifySignature (String keyId, int algHash, int padding, byte[] bSignature, byte[] bMessage) throws TacException
 Comprueba un mensaje.
 
int verifySignature (byte[] hPublicKey, byte[] hHash, byte[] bSignature) throws TacException
 Comprueba un mensaje.
 
int verifySignature (byte[] hPublicKey, int hashAlg, byte[] bSignature, byte[] bMessage) throws TacException
 Comprueba un mensaje.
 
byte[] signHash (String keyId, int algHash, byte[] bMessage) throws TacException
 Firma un dato en función de su contenido.
 
byte[] sign (String keyId, int algHash, byte[] bMessage) throws TacException
 Firma un dato en función de su contenido.
 
byte[] sign (String keyId, int algHash, int padding, byte[] bMessage) throws TacException
 Firma un dato en función de su contenido.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash) throws TacException
 Firma un dato basándose en su hash previamente calculado.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, boolean useOID) throws TacException
 Firma un dato basándose en su hash previamente calculado.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, int nFlags) throws TacException
 Firma un dato basándose en su hash previamente calculado.
 
byte[] signHashedData (byte[] privateKeyHandle, int algHash, byte[] bHash, int nFlags) throws TacException
 Firma un dato basándose en su hash previamente calculado.
 
byte[] generateHash (int algId, int flags, byte[] data) throws TacException
 Genera un hash en una sola llamada.
 
byte[] generateHash (int algId, byte[] data) throws TacException
 Genera un hash en una sola llamada.
 
void initHash (int algId, int flags) throws TacException
 Inicializa una operación hash a trozos.
 
void initHash (int algId) throws TacException
 Inicializa una operación hash a trozos.
 
void updateHash (byte[] data) lanza una TacException
 Actualiza una operación hash con más datos.
 
byte[] endHash () lanza una TacException
 Finaliza una operación hash.
 
byte[] generateMAC (int algId, String macKey, int flags, byte[] data) throws TacException
 Genera un MAC en una sola llamada.
 
byte[] generateMAC (int algId, String macKey, byte[] data) throws TacException
 Genera un MAC en una sola llamada.
 
void initMAC (int algId, String macKey, int flags) throws TacException
 Inicializa una operación MAC por partes.
 
void initMAC (int algId, String macKey) throws TacException
 Inicializa una operación MAC por partes.
 
void updateMAC (byte[] data) lanza una TacException
 Actualiza una operación MAC con más datos.
 
byte[] endMAC () throws TacException
 Finaliza una operación MAC.
 

Funciones

createHash() [1/2]

byte[] createHash ( int nAlgId,
byte[] hKey,
int nFlags ) throws TacException

Crea un contexto para el cálculo de Hash.

Parámetros
nAlgIdIdentificador del algoritmo a utilizar
hKeyContexto clave que debe utilizarse
nFlags
Devolución
Contexto para el cálculo del hash
Excepciones
TacException
Obsoleto
Ver también
getUserKey(String nKey)

createHash() [2/2]

byte[] createHash ( int nAlgId) throws TacException

Crea un contexto para calcular el hash.

Parámetros
nAlgIdIndica el algoritmo asociado al contexto hash.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
Devolución
Excepciones
TacException

genEcdhKey()

byte[] genEcdhKey ( int dwOP,
String szPriKey,
byte[] pbInData ) throws TacException

Genera una clave/secreto compartido utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman).

Parámetros
dwOPIndica el algoritmo asociado al contexto hash.
Valor Significado
TacNDJavaLib.DN_GEN_KEY_KDF_RAW_SECRET El método devuelve la clave secreta ECDH sin derivación.
Recomendamos derivar una clave a partir de ésta para comunicarse con el par. El parámetro pasado en pbInData debe ser un búfer que contenga la clave pública del par en formato DER.
szPriKeyCadena que contiene el identificador de la clave privada dentro del HSM. Este identificador no debe contener espacios ni caracteres especiales. Se distingue entre mayúsculas y minúsculas (distingue entre mayúsculas y minúsculas).
pbInDataDatos de entrada de la función. Debe rellenarse como se describe en las opciones dwOP.
Devolución
Buffer que contiene la clave/secreto de salida.
Excepciones
TacException

genEcdhKeyX963()

byte[] genEcdhKeyX963 ( int dwOP,
String szPriKey,
String szTargetKeyName,
int dwTargetKeyAlg,
int dwTargetKeyAttributes,
byte[] pbPubKey,
byte[] pbKDFData,
int dwFlags ) throws TacException

Genera una clave secreta compartida utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman) estándar ANSI X9.63.

Parámetros
dwOPIndica el algoritmo utilizado.
Valor Significado
TacNDJavaLib.DN_GEN_KEY_X9_63_SHA256 Deriva una clave secreta ECDH en el estándar ANSI X9.63 utilizando SHA256.
szPriKeyIdentificador de la clave privada dentro del HSM.
szTargetKeyNameIdentificador de la clave que se generará en el HSM. Sólo caracteres alfanuméricos y subrayado '_' con una longitud máxima de TacNDJavaLib.MAX_OBJ_ID. Se diferencian los caracteres en mayúsculas y minúsculas (se distingue entre mayúsculas y minúsculas). Este parámetro puede ser nulo si se desea que el método devuelva el contenido de la clave generada.
dwTargetKeyAlgAlgoritmo de la clave que se generará en el HSM. Consulte las opciones del método createKey.
dwTargetKeyAttributesParámetros adicionales de la clave que se generará en el HSM. Véase createKey.
pbPubKeyLa clave pública de la otra parte, en formato DER. El tamaño máximo de los búferes pbPubKey y pbKDFData juntos no debe superar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
pbKDFDataDatos que se utilizarán para derivar la clave. El tamaño máximo de los búferes pbPubKey y pbKDFData juntos no debe superar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
dwFlagsReservado para uso futuro. Debe pasar 0.
Devolución
Llave/secreto de salida.
Excepciones
TacException

genEcdhKeyX963Sha256()

byte[] genEcdhKeyX963Sha256 ( String szPriKey,
String szTargetKeyName,
int dwTargetKeyAlg,
boolean isExportable,
boolean isTemporary,
byte[] pbPubKey,
byte[] pbKDFData ) throws TacException

Genera una clave/secreto compartido utilizando el protocolo de acuerdo de claves ECDH (Elliptc Curve Diffie-Hellman) estándar ANSI X9.63 SHA256.

Parámetros
szPriKeyIdentificador de la clave privada dentro del HSM.
szTargetKeyNameIdentificador de la clave que se generará en el HSM. Sólo caracteres alfanuméricos y subrayado '_' con una longitud máxima de TacNDJavaLib.MAX_OBJ_ID. Se diferencian los caracteres en mayúsculas y minúsculas (se distingue entre mayúsculas y minúsculas). Este parámetro puede ser nulo si se desea que el método devuelva el contenido de la clave generada.
dwTargetKeyAlgAlgoritmo de la clave que se generará en el HSM. Consulte las opciones del método createKey.
isTemporaryInforma de si la clave que se generará en el HSM es temporal.
isExportableInforma de si la clave, que se generará en el HSM, es exportable.
pbPubKeyLa clave pública de la otra parte, en formato DER. El tamaño máximo de los búferes pbPubKey y pbKDFData juntos no debe superar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
pbKDFDataDatos que se utilizarán para derivar la clave. El tamaño máximo de los búferes pbPubKey y pbKDFData juntos no debe superar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
Devolución
Clave/segmento de salida. Devuelve null si szTargetKeyName NO es null.
Excepciones
TacException

getRand()

byte[] getRand ( int size) throws TacException

Genera un búfer pseudoaleatorio, generado en el HSM, para uso criptográfico.

Parámetros
sizeTamaño del búfer que se generará.
Devolución
Búfer pseudoaleatorio.
Excepciones
TacException

encriptar() [1/4]

byte[] encrypt ( String strKeyId,
byte[] byInput ) throws TacException

Cifra un búfer de datos.

Parámetros
strKeyIdIdentificador clave.
byInputBúfer que contiene los datos que deben encriptarse.
Devolución
Devuelve los datos encriptados.
Excepciones
TacException

encriptar() [2/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
int flags ) throws TacException

Cifra un búfer de datos.

Parámetros
strKeyIdIdentificador clave.
byInputBúfer que contiene los datos que deben encriptarse.
flagsIndica opciones adicionales de funcionamiento.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING No rellena RSA PKCS#1.5. Puede usarse junto con la bandera TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada y descifrado con clave pública. Se puede utilizar junto con la bandera TacNDJavaLib.D_NO_RSA_PADDING.
Devolución
Devuelve los datos encriptados.
Excepciones
TacException
Notas
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual o inferior al tamaño de la clave menos 11 bytes. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en TacNDJavaLib.D_NO_RSA_PADDING.

encriptar() [3/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
byte[] byIV,
int dwPadding,
int dwMode ) throws TacException

Cifra los datos.

Parámetros
strKeyIdIdentificador clave.
byInputBúfer que contiene los datos que deben encriptarse.
byIVBuffer que contiene el IV (Vector de Inicialización). Se puede pasar null a No utilizado o utilizar el valor por defecto. Vector de inicialización utilizado con los algoritmos de blockchain según su modo de funcionamiento de cifrado simétrico. El tamaño del vector de inicialización depende del algoritmo simétrico utilizado, ya que tiene la misma longitud que la operación de bloque.
Sólo válido para claves simétricas.
dwPaddingLa biblioteca puede trabajar con las siguientes formas de relleno.
Valor Significado
TacNDJavaLib.D_NO_PADDING No se realiza ningún relleno, los datos pasados para la encriptación deben ser ya un múltiplo del tamaño del bloque de la operación.
TacNDJavaLib.D_PKCS5_PADDING El relleno se realiza siguiendo la norma definida en PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Si la longitud de los datos no es múltiplo del tamaño del bloque de operación, se completa con ceros a la izquierda hasta alcanzar un tamaño soportado por el algoritmo. Este tipo de relleno no debe utilizarse con datos en los que pueda haber bytes con valor cero, ya que puede provocar ambigüedad en la operación de descifrado. Si los datos sólo contienen texto ASCII, por ejemplo, no hay ningún problema.

Sólo válido para claves simétricas.
dwModeIndica el modo de funcionamiento de cifrado del algoritmo de bloques.
Valor Significado
TacNDJavaLib.MODE_ECB Libro de códigos electrónico (BCE)
TacNDJavaLib.MODE_CBC Cadena de bloques cifrados (CBC)
TacNDJavaLib.MODE_GCM Modo Galois/Contador. La etiqueta de autenticación se encuentra justo después de los datos cifrados/descifrados con el tamaño de (tamaño devuelto - tamaño del mensaje en texto claro).
TacNDJavaLib.MODE_KW AESWRAP según la norma RFC-3394. Se utiliza en las operaciones de cifrado y descifrado de otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con un valor de 0xA6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP con relleno según la norma RFC-5649. Se utiliza para cifrar y descifrar otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con valor 0xA65959A60000000000000000000000000000.
TacNDJavaLib.MODE_OFB Salida-Feedback. Aún no se admite.
Sólo válido para claves simétricas y algoritmos de bloque.

Sólo válido para claves simétricas y algoritmos de bloque.
Devolución
Devuelve los datos encriptados.
Excepciones
TacException

encriptar() [4/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
byte[] byIV,
int dwPadding,
int dwMode,
int flags ) throws TacException

Cifra los datos.

Parámetros
strKeyIdIdentificador clave.
byInputBúfer que contiene los datos que deben encriptarse.
byIVBuffer que contiene el IV (Vector de Inicialización). Se puede pasar null a No utilizado o utilizar el valor por defecto. Vector de inicialización utilizado con los algoritmos de blockchain según su modo de funcionamiento de cifrado simétrico. El tamaño del vector de inicialización depende del algoritmo simétrico utilizado, ya que tiene la misma longitud que la operación de bloque.
Sólo válido para claves simétricas.
dwPaddingLa biblioteca puede trabajar con las siguientes formas de relleno.
Valor Significado
TacNDJavaLib.D_NO_PADDING No se realiza ningún relleno, los datos pasados para la encriptación deben ser ya un múltiplo del tamaño del bloque de la operación.
TacNDJavaLib.D_PKCS5_PADDING El relleno se realiza siguiendo la norma definida en PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Si la longitud de los datos no es múltiplo del tamaño del bloque de operación, se completa con ceros a la izquierda hasta alcanzar un tamaño soportado por el algoritmo. Este tipo de relleno no debe utilizarse con datos en los que pueda haber bytes con valor cero, ya que puede provocar ambigüedad en la operación de descifrado. Si los datos sólo contienen texto ASCII, por ejemplo, no hay ningún problema.

Sólo válido para claves simétricas.
dwModeIndica el modo de funcionamiento de cifrado del algoritmo de bloques.
Valor Significado
TacNDJavaLib.MODE_ECB Libro de códigos electrónico (BCE)
TacNDJavaLib.MODE_CBC Cadena de bloques cifrados (CBC)
TacNDJavaLib.MODE_GCM Modo Galois/Contador. La etiqueta de autenticación se encuentra justo después de los datos cifrados/descifrados con el tamaño de (tamaño devuelto - tamaño del mensaje en texto claro).
TacNDJavaLib.MODE_KW AESWRAP según la norma RFC-3394. Se utiliza en las operaciones de cifrado y descifrado de otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con un valor de 0xA6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP con relleno según la norma RFC-5649. Se utiliza para cifrar y descifrar otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con valor 0xA65959A60000000000000000000000000000.
TacNDJavaLib.MODE_OFB Salida-Feedback. Aún no se admite.
Sólo válido para claves simétricas y algoritmos de bloque.

Sólo válido para claves simétricas y algoritmos de bloque.
flagsIndica opciones adicionales de funcionamiento.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING No acolcha RSA PKCS#1.5.Puede usarse junto con la bandera TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada Descifrado con clave pública. Puede usarse junto con la bandera TacNDJavaLib.D_NO_RSA_PADDING.
Devolución
Devuelve los datos encriptados.
Excepciones
TacException
Notas
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual o inferior al tamaño de la clave menos 11 bytes. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en TacNDJavaLib.D_NO_RSA_PADDING. Las operaciones de cifrado y descifrado RSA sólo están habilitadas en modo no restringido (NRM).

descifrar() [1/4]

byte[] decrypt ( String keyId,
byte[] input ) throws TacException

Desencripta los datos, a menudo encriptados por la función DEncrypt.

Parámetros
keyIdIdentificador clave.
inputBúfer que contiene los datos que deben descifrarse. Para las operaciones simétricas de bloque, el tamaño de los datos debe ser siempre múltiplo del bloque utilizado por el algoritmo en cuestión.
Devolución
Devuelve los datos descifrados.
Excepciones
TacException

descifrar() [2/4]

byte[] decrypt ( String keyId,
byte[] input,
int flags ) throws TacException

Desencripta los datos, a menudo encriptados por la función DEncrypt.

Parámetros
keyIdIdentificador clave.
inputBúfer que contiene los datos que deben descifrarse. Para las operaciones simétricas de bloque, el tamaño de los datos debe ser siempre múltiplo del bloque utilizado por el algoritmo en cuestión.
flagsIndica opciones adicionales de funcionamiento.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING No acolcha RSA PKCS#1.5.Puede usarse junto con la bandera TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada Descifrado con clave pública. Puede usarse junto con la bandera TacNDJavaLib.D_NO_RSA_PADDING.
Devolución
Devuelve los datos descifrados.
Excepciones
TacException
Notas
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual o inferior al tamaño de la clave menos 11 bytes. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en TacNDJavaLib.D_NO_RSA_PADDING. Las operaciones de cifrado y descifrado RSA sólo están habilitadas en modo no restringido (NRM).

descifrar() [3/4]

byte[] decrypt ( String keyId,
byte[] input,
byte[] byIV,
int dwPadding,
int dwMode ) throws TacException

Desencripta los datos, a menudo encriptados por la función DEncrypt.

Parámetros
keyIdIdentificador clave.
inputBúfer que contiene los datos que deben descifrarse. Para las operaciones simétricas de bloque, el tamaño de los datos debe ser siempre múltiplo del bloque utilizado por el algoritmo en cuestión.
byIVBuffer que contiene el IV (Vector de Inicialización). Se puede pasar null a No utilizado o utilizar el valor por defecto. Vector de inicialización utilizado con los algoritmos de blockchain según su modo de funcionamiento de cifrado simétrico. El tamaño del vector de inicialización depende del algoritmo simétrico utilizado, ya que tiene la misma longitud que la operación de bloque.

Sólo válido para claves simétricas.
dwPaddingLa biblioteca puede trabajar con las siguientes formas de relleno.
Valor Significado
TacNDJavaLib.D_NO_PADDING No se realiza ningún relleno, los datos pasados para la encriptación deben ser ya un múltiplo del tamaño del bloque de la operación.
TacNDJavaLib.D_PKCS5_PADDING El relleno se realiza siguiendo la norma definida en PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Si la longitud de los datos no es múltiplo del tamaño del bloque de operación, se completa con ceros a la izquierda hasta alcanzar un tamaño soportado por el algoritmo. Este tipo de relleno no debe utilizarse con datos en los que pueda haber bytes con valor cero, ya que puede provocar ambigüedad en la operación de descifrado. Si los datos sólo contienen texto ASCII, por ejemplo, no hay ningún problema.

Sólo válido para claves simétricas.
dwModeIndica el modo de funcionamiento de cifrado del algoritmo de bloques.
Valor Significado
TacNDJavaLib.MODE_ECB Libro de códigos electrónico (BCE)
TacNDJavaLib.MODE_CBC Cadena de bloques cifrados (CBC)
TacNDJavaLib.MODE_GCM Modo Galois/Contador. La etiqueta de autenticación se encuentra justo después de los datos cifrados/descifrados con el tamaño de (tamaño devuelto - tamaño del mensaje en texto claro).
TacNDJavaLib.MODE_KW AESWRAP según la norma RFC-3394. Se utiliza en las operaciones de cifrado y descifrado de otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con un valor de 0xA6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP con relleno según la norma RFC-5649. Se utiliza para cifrar y descifrar otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con valor 0xA65959A60000000000000000000000000000.
TacNDJavaLib.MODE_OFB Salida-Feedback. Aún no se admite.
Sólo válido para claves simétricas y algoritmos de bloque.

Sólo válido para claves simétricas y algoritmos de bloque.
Devolución
Devuelve los datos descifrados.
Excepciones
TacException

descifrar() [4/4]

byte[] decrypt ( String keyId,
byte[] input,
byte[] byIV,
int dwPadding,
int dwMode,
int flags ) throws TacException

Desencripta los datos, a menudo encriptados por la función DEncrypt.

Parámetros
keyIdIdentificador clave.
inputBúfer que contiene los datos que deben descifrarse. Para las operaciones simétricas de bloque, el tamaño de los datos debe ser siempre múltiplo del bloque utilizado por el algoritmo en cuestión.
byIVBuffer que contiene el IV (Vector de Inicialización). Se puede pasar null a No utilizado o utilizar el valor por defecto. Vector de inicialización utilizado con los algoritmos de blockchain según su modo de funcionamiento de cifrado simétrico. El tamaño del vector de inicialización depende del algoritmo simétrico utilizado, ya que tiene la misma longitud que la operación de bloque.

Sólo válido para claves simétricas.
dwPaddingLa biblioteca puede trabajar con las siguientes formas de relleno.
Valor Significado
TacNDJavaLib.D_NO_PADDING No se realiza ningún relleno, los datos pasados para la encriptación deben ser ya un múltiplo del tamaño del bloque de la operación.
TacNDJavaLib.D_PKCS5_PADDING El relleno se realiza siguiendo la norma definida en PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Si la longitud de los datos no es múltiplo del tamaño del bloque de operación, se completa con ceros a la izquierda hasta alcanzar un tamaño soportado por el algoritmo. Este tipo de relleno no debe utilizarse con datos en los que pueda haber bytes con valor cero, ya que puede provocar ambigüedad en la operación de descifrado. Si los datos sólo contienen texto ASCII, por ejemplo, no hay ningún problema.

Sólo válido para claves simétricas.
dwModeIndica el modo de funcionamiento de cifrado del algoritmo de bloques.
Valor Significado
TacNDJavaLib.MODE_ECB Libro de códigos electrónico (BCE)
TacNDJavaLib.MODE_CBC Cadena de bloques cifrados (CBC)
TacNDJavaLib.MODE_GCM Modo Galois/Contador. La etiqueta de autenticación se encuentra justo después de los datos cifrados/descifrados con el tamaño de (tamaño devuelto - tamaño del mensaje en texto claro).
TacNDJavaLib.MODE_KW AESWRAP según la norma RFC-3394. Se utiliza en las operaciones de cifrado y descifrado de otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con un valor de 0xA6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP con relleno según la norma RFC-5649. Se utiliza para cifrar y descifrar otras claves. El relleno utilizado es el definido en el estándar, cualquier otro valor será ignorado. Utiliza el IV estándar con valor 0xA65959A60000000000000000000000000000.
TacNDJavaLib.MODE_OFB Salida-Feedback. Aún no se admite.
Sólo válido para claves simétricas y algoritmos de bloque.

Sólo válido para claves simétricas y algoritmos de bloque.
flagsIndica opciones adicionales de funcionamiento.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING No acolcha RSA PKCS#1.5.Puede usarse junto con la bandera TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada Descifrado con clave pública. Puede usarse junto con la bandera TacNDJavaLib.D_NO_RSA_PADDING.
Devolución
Devuelve los datos descifrados.
Excepciones
TacException
Notas
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual o inferior al tamaño de la clave menos 11 bytes. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en TacNDJavaLib.D_NO_RSA_PADDING.

verifySignature() [1/4]

int verifySignature ( String keyId,
int algHash,
byte[] bSignature,
byte[] bMessage ) throws TacException

Comprueba un mensaje.

Utiliza el relleno PKCS#1.

Parámetros
keyIdIdentificador de la clave privada de la que se extraerá la clave pública para su verificación.
algHashAlgoritmo hash utilizado para verificar la firma. Ver opciones en initHash().
bSignatureFirma.
bMessageMensaje para verificación de firma.
Devolución
Excepciones
TacException

verifySignature() [2/4]

int verifySignature ( String keyId,
int algHash,
int padding,
byte[] bSignature,
byte[] bMessage ) throws TacException

Comprueba un mensaje.

Parámetros
keyIdIdentificador de la clave privada de la que se extraerá la clave pública para su verificación.
algHashAlgoritmo hash utilizado para verificar la firma. Ver opciones en initHash().
paddingRelleno utilizado en la firma. Consulte las opciones en setPadding().
bSignatureFirma.
bMessageMensaje para verificación de firma.
Devolución
Excepciones
TacException

verifySignature() [3/4]

int verifySignature ( byte[] hPublicKey,
byte[] hHash,
byte[] bSignature ) throws TacException

Comprueba un mensaje.

Parámetros
hPublicKeyManejador de la clave pública. importKey().
hHashHandle del hash del mensaje. Véase initHash().
bSignatureFirma.
Devolución
Excepciones
TacException

verifySignature() [4/4]

int verifySignature ( byte[] hPublicKey,
int hashAlg,
byte[] bSignature,
byte[] bMessage ) throws TacException

Comprueba un mensaje.

Parámetros
hPublicKeyManejador de la clave pública. Véase importKey().
hashAlgAlgoritmo hash. Ver opciones en initHash().
bSignatureFirma.
bMessageMensaje para verificación de firma.
Devolución
Excepciones
TacException

signHash()

byte[] signHash ( String keyId,
int algHash,
byte[] bMessage ) throws TacException

Firma un dato en función de su contenido.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma. Ver opciones en initHash().
bMessageMensaje.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.
Obsoleto
Utiliza sign().

sign() [1/2]

byte[] sign ( String keyId,
int algHash,
byte[] bMessage ) throws TacException

Firma un dato en función de su contenido.

Utiliza el relleno estándar.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma. Ver opciones en initHash().
bMessageMensaje.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.

sign() [2/2]

byte[] sign ( String keyId,
int algHash,
int padding,
byte[] bMessage ) throws TacException

Firma un dato en función de su contenido.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma. Ver opciones en initHash().
paddingRelleno utilizado en la firma. Consulte las opciones en setPadding().
bMessageMensaje.
Devolución
La firma generada.
Excepciones
TacException

signHashedData() [1/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash ) throws TacException

Firma un dato basándose en su hash previamente calculado.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
bHashHash previamente calculado del mensaje según el algoritmo definido en algHash.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.

signHashedData() [2/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash,
boolean useOID ) throws TacException

Firma un dato basándose en su hash previamente calculado.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
bHashHash previamente calculado del mensaje según el algoritmo definido en algHash.
useOIDCuando este argumento se establece en false, el identificador de objeto (OID) no se coloca delante del valor hash, como se establece en PKCS#7, atributo DigestInfo.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.

signHashedData() [3/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash,
int nFlags ) throws TacException

Firma un dato basándose en su hash previamente calculado.

Parámetros
keyIdIdentificador de la clave privada.
algHashAlgoritmo hash utilizado en la firma.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
bHashHash previamente calculado del mensaje según el algoritmo definido en algHash.
nFlagsDebe pasar 0 o algún modificador definido en la lista de abajo.
Valor Significado
NO_HASH_OID Cuando se especifica este indicador, el identificador de objeto (OID) no se coloca delante del valor hash, como se prevé en PKCS#7, atributo DigestInfo.
Por defecto, este OID se añade siempre a la firma.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.

signHashedData() [4/4]

byte[] signHashedData ( byte[] privateKeyHandle,
int algHash,
byte[] bHash,
int nFlags ) throws TacException

Firma un dato basándose en su hash previamente calculado.

Parámetros
privateKeyHandleHandle de la clave privada. Recuperado por el método getKeyHandle().
algHashAlgoritmo hash utilizado en la firma.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
bHashHash previamente calculado del mensaje según el algoritmo definido en algHash.
nFlagsDebe pasar 0 o algún modificador definido en la lista de abajo.
Valor Significado
NO_HASH_OID Cuando se especifica este indicador, el identificador de objeto (OID) no se coloca delante del valor hash, como se prevé en PKCS#7, atributo DigestInfo.
Por defecto, este OID se añade siempre a la firma.
Devolución
La firma generada.
Excepciones
TacException
Notas
El formato de la firma generada cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECC la firma será en el estándar DER.

generateHash() [1/2]

byte[] generateHash ( int algId,
int flags,
byte[] data ) throws TacException

Genera un hash en una sola llamada.

Parámetros
algIdIndica el algoritmo HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
flagsHay que gastar cero.
dataMensaje.
Devolución
Hash generado.
Excepciones
TacException

generateHash() [2/2]

byte[] generateHash ( int algId,
byte[] data ) throws TacException

Genera un hash en una sola llamada.

Parámetros
algIdIndica el algoritmo HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
dataMensaje.
Devolución
Hash generado.
Excepciones
TacException

initHash() [1/2]

void initHash ( int algId,
int flags ) throws TacException

Inicializa una operación hash a trozos.

Debe finalizarse con endHash.

Parámetros
algIdIndica el algoritmo HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
flagsHay que gastar cero.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initHash, los datos pasados con updateHash y finalizarse con endHash.
updateHash puede llamarse una o varias veces hasta que se envíe todo el contenido del mensaje y, a continuación, endHash para finalizar la operación y generar el HASH.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endHash.

initHash() [2/2]

void initHash ( int algId) throws TacException

Inicializa una operación hash a trozos.

Debe finalizarse con endHash.

Parámetros
algIdIndica el algoritmo HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticación de clientes en SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de función de identidad.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initHash, los datos pasados con updateHash y finalizarse con endHash.
updateHash puede llamarse una o varias veces hasta que se envíe todo el contenido del mensaje y, a continuación, endHash para finalizar la operación y generar el HASH.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endHash.

updateHash()

void updateHash ( byte[] data) throws TacException

Actualiza una operación hash con más datos.

Parámetros
dataMensaje.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initHash, los datos pasados con updateHash y finalizarse con endHash.
updateHash puede llamarse una o varias veces hasta que se envíe todo el contenido del mensaje y, a continuación, endHash para finalizar la operación y generar el HASH.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endHash.

endHash()

byte[] endHash ( ) throws TacException

Finaliza una operación hash.

Devolución
HASH generado.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initHash, los datos pasados con updateHash y finalizarse con endHash.
updateHash puede llamarse una o varias veces hasta que se envíe todo el contenido del mensaje y, a continuación, endHash para finalizar la operación y generar el HASH.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endHash.

generateMAC() [1/2]

byte[] generateMAC ( int algId,
String macKey,
int flags,
byte[] data ) throws TacException

Genera un MAC en una sola llamada.

Parámetros
algIdIndica el algoritmo MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey debe ser el nombre de la clave 3DES utilizada en CMAC.
TacNDJavaLib.ALG_CMAC_AES CMAC Algoritmo AES. hmacKey debe ser el nombre de la clave AES utilizada en CMAC.
macKeyNombre de la clave MAC.
flagsHay que gastar cero.
dataMensaje.
Devolución
MAC generado.
Excepciones
TacException

generateMAC() [2/2]

byte[] generateMAC ( int algId,
String macKey,
byte[] data ) throws TacException

Genera un MAC en una sola llamada.

Parámetros
algIdIndica el algoritmo MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey debe ser el nombre de la clave 3DES utilizada en CMAC.
TacNDJavaLib.ALG_CMAC_AES CMAC Algoritmo AES. hmacKey debe ser el nombre de la clave AES utilizada en CMAC.
macKeyNombre de la clave MAC.
dataMensaje.
Devolución
MAC generado.
Excepciones
TacException

initMAC() [1/2]

void initMAC ( int algId,
String macKey,
int flags ) throws TacException

Inicializa una operación MAC por partes.

Debe finalizarse con endMAC.

Parámetros
algIdIndica el algoritmo MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey debe ser el nombre de la clave 3DES utilizada en CMAC.
TacNDJavaLib.ALG_CMAC_AES CMAC Algoritmo AES. hmacKey debe ser el nombre de la clave AES utilizada en CMAC.
macKeyNombre de la clave MAC.
flagsHay que gastar cero.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initMAC, los datos pasados con updateMAC y finalizarse con endMAC.
updateMAC puede llamarse una o varias veces hasta que se haya enviado todo el contenido del mensaje, y luego endMAC para finalizar la operación y generar la MAC.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endMAC.

initMAC() [2/2]

void initMAC ( int algId,
String macKey ) throws TacException

Inicializa una operación MAC por partes.

Debe finalizarse con endMAC.

Parámetros
algIdIndica el algoritmo MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey debe ser el nombre de la clave utilizada en HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey debe ser el nombre de la clave 3DES utilizada en CMAC.
TacNDJavaLib.ALG_CMAC_AES CMAC Algoritmo AES. hmacKey debe ser el nombre de la clave AES utilizada en CMAC.
macKeyNombre de la clave MAC.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initMAC, los datos pasados con updateMAC y finalizarse con endMAC.
updateMAC puede llamarse una o varias veces hasta que se haya enviado todo el contenido del mensaje, y luego endMAC para finalizar la operación y generar la MAC.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endMAC.

updateMAC()

void updateMAC ( byte[] data) throws TacException

Actualiza una operación MAC con más datos.

Parámetros
dataMensaje.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initMAC, los datos pasados con updateMAC y finalizarse con endMAC.
updateMAC puede llamarse una o varias veces hasta que se haya enviado todo el contenido del mensaje, y luego endMAC para finalizar la operación y generar la MAC.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endMAC.

endMAC()

byte[] endMAC ( ) throws TacException

Finaliza una operación MAC.

Devolución
MAC generado.
Excepciones
TacException
Notas
La operación fragmentada DEBE inicializarse con initMAC, los datos pasados con updateMAC y finalizarse con endMAC.
updateMAC puede llamarse una o varias veces hasta que se haya enviado todo el contenido del mensaje, y luego endMAC para finalizar la operación y generar la MAC.
Una operación multiparte no puede intercalarse con otras operaciones dentro de la misma sesión hasta que finalice con endMAC.