Operaciones generales de cifrado.
Véase Documentación técnica de HSM.
Operaciones generales de cifrado. Más...
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 (byte[] hKey, byte[] byInput, int flags) throws TacException |
| Cifra los datos. | |
| 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. | |
| byte[] | decrypt (byte[] key, byte[] input, 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. | |
| KemEncapsResult | kemEncaps (int dwOpt, byte bOp, String szDst, byte[] pbCtx, int dwType, int dwAttr, byte[] pbEncapsKey) throws TacException |
| Encapsula un secreto compartido utilizando una clave pública ML-KEM. | |
| byte[] | kemDecaps (int dwOpt, byte bOp, String szDst, byte[] pbCtx, int dwType, int dwAttr, String szDecapsKey, byte[] pbCiphertext) throws TacException |
| Desencierra un secreto compartido utilizando una clave privada ML-KEM almacenada en el HSM. | |
| byte[] | signPKCS7 (String keyId, String keyCertId, String certs, int attributes, byte[] content) throws TacException |
| Genera una firma o cofirma siguiendo el estándar PKCS#7 (Cryptographic Message Syntax Standard). | |
| byte[] createHash | ( | int | nAlgId, |
| byte[] | hKey, | ||
| int | nFlags ) throws TacException |
Crea un contexto para el cálculo de Hash.
| nAlgId | Identificador del algoritmo a utilizar |
| hKey | Contexto clave que debe utilizarse |
| nFlags |
| TacException |
| byte[] createHash | ( | int | nAlgId | ) | throws TacException |
Crea un contexto para calcular el hash.
| nAlgId | Indica el algoritmo asociado al contexto hash.
|
| TacException |
| 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).
| dwOP | Indica el algoritmo asociado al contexto hash.
| ||||
| szPriKey | Cadena 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). | ||||
| pbInData | Datos de entrada de la función. Debe rellenarse como se describe en las opciones dwOP. |
| TacException |
| 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.
| dwOP | Indica el algoritmo utilizado.
| ||||
| szPriKey | Identificador de la clave privada dentro del HSM. | ||||
| szTargetKeyName | Identificador 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. | ||||
| dwTargetKeyAlg | Algoritmo de la clave que se generará en el HSM. Consulte las opciones del método createKey. | ||||
| dwTargetKeyAttributes | Parámetros adicionales de la clave que se generará en el HSM. Véase createKey. | ||||
| pbPubKey | La 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. | ||||
| pbKDFData | Datos 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. | ||||
| dwFlags | Reservado para uso futuro. Debe pasar 0. |
| TacException |
| 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.
| szPriKey | Identificador de la clave privada dentro del HSM. |
| szTargetKeyName | Identificador 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. |
| dwTargetKeyAlg | Algoritmo de la clave que se generará en el HSM. Consulte las opciones del método createKey. |
| isTemporary | Informa de si la clave que se generará en el HSM es temporal. |
| isExportable | Informa de si la clave, que se generará en el HSM, es exportable. |
| pbPubKey | La 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. |
| pbKDFData | Datos 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. |
| TacException |
| byte[] getRand | ( | int | size | ) | throws TacException |
Genera un búfer pseudoaleatorio, generado en el HSM, para uso criptográfico.
| size | Tamaño del búfer que se generará. |
| TacException |
| byte[] encrypt | ( | byte[] | hKey, |
| byte[] | byInput, | ||
| int | flags ) throws TacException |
Cifra los datos.
| hKey | Handle de la clave. Se obtiene con el método getUserKey(String nKey). | ||||||
| byInput | Búfer que contiene los datos que deben encriptarse. | ||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| byte[] encrypt | ( | String | strKeyId, |
| byte[] | byInput ) throws TacException |
Cifra un búfer de datos.
| strKeyId | Identificador clave. |
| byInput | Búfer que contiene los datos que deben encriptarse. |
| TacException |
| byte[] encrypt | ( | String | strKeyId, |
| byte[] | byInput, | ||
| int | flags ) throws TacException |
Cifra un búfer de datos.
| strKeyId | Identificador clave. | ||||||
| byInput | Búfer que contiene los datos que deben encriptarse. | ||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| byte[] encrypt | ( | String | strKeyId, |
| byte[] | byInput, | ||
| byte[] | byIV, | ||
| int | dwPadding, | ||
| int | dwMode ) throws TacException |
Cifra los datos.
| strKeyId | Identificador clave. | ||||||||||
| byInput | Búfer que contiene los datos que deben encriptarse. | ||||||||||
| byIV | Buffer 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. | ||||||||||
| dwPadding | La biblioteca puede trabajar con las siguientes formas de relleno.
Sólo válido para claves simétricas. | ||||||||||
| dwMode | Indica el modo de funcionamiento de cifrado del algoritmo de bloques.
Sólo válido para claves simétricas y algoritmos de bloque. |
| TacException |
| byte[] encrypt | ( | String | strKeyId, |
| byte[] | byInput, | ||
| byte[] | byIV, | ||
| int | dwPadding, | ||
| int | dwMode, | ||
| int | flags ) throws TacException |
Cifra los datos.
| strKeyId | Identificador clave. | ||||||||||
| byInput | Búfer que contiene los datos que deben encriptarse. | ||||||||||
| byIV | Buffer 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. | ||||||||||
| dwPadding | La biblioteca puede trabajar con las siguientes formas de relleno.
Sólo válido para claves simétricas. | ||||||||||
| dwMode | Indica el modo de funcionamiento de cifrado del algoritmo de bloques.
Sólo válido para claves simétricas y algoritmos de bloque. | ||||||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| byte[] decrypt | ( | String | keyId, |
| byte[] | input ) throws TacException |
Desencripta los datos, a menudo encriptados por la función DEncrypt.
| keyId | Identificador clave. |
| input | Bú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. |
| TacException |
| byte[] decrypt | ( | String | keyId, |
| byte[] | input, | ||
| int | flags ) throws TacException |
Desencripta los datos, a menudo encriptados por la función DEncrypt.
| keyId | Identificador clave. | ||||||
| input | Bú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. | ||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| 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.
| keyId | Identificador clave. | ||||||||||
| input | Bú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. | ||||||||||
| byIV | Buffer 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. | ||||||||||
| dwPadding | La biblioteca puede trabajar con las siguientes formas de relleno.
Sólo válido para claves simétricas. | ||||||||||
| dwMode | Indica el modo de funcionamiento de cifrado del algoritmo de bloques.
Sólo válido para claves simétricas y algoritmos de bloque. |
| TacException |
| 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.
| keyId | Identificador clave. | ||||||||||
| input | Bú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. | ||||||||||
| byIV | Buffer 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. | ||||||||||
| dwPadding | La biblioteca puede trabajar con las siguientes formas de relleno.
Sólo válido para claves simétricas. | ||||||||||
| dwMode | Indica el modo de funcionamiento de cifrado del algoritmo de bloques.
Sólo válido para claves simétricas y algoritmos de bloque. | ||||||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| byte[] decrypt | ( | byte[] | key, |
| byte[] | input, | ||
| int | flags ) throws TacException |
Desencripta los datos, a menudo encriptados por la función DEncrypt.
| key | Handle de la clave. Se obtiene con el método getUserKey(String nKey). | ||||||
| input | Bú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. | ||||||
| flags | Indica opciones adicionales de funcionamiento.
|
| TacException |
| int verifySignature | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bSignature, | ||
| byte[] | bMessage ) throws TacException |
Comprueba un mensaje.
Utiliza el relleno PKCS#1.
| keyId | Identificador de la clave privada de la que se extraerá la clave pública para su verificación. |
| algHash | Algoritmo hash utilizado para verificar la firma. Ver opciones en initHash(). |
| bSignature | Firma. |
| bMessage | Mensaje para verificación de firma. |
| TacException |
| int verifySignature | ( | String | keyId, |
| int | algHash, | ||
| int | padding, | ||
| byte[] | bSignature, | ||
| byte[] | bMessage ) throws TacException |
Comprueba un mensaje.
| keyId | Identificador de la clave privada de la que se extraerá la clave pública para su verificación. |
| algHash | Algoritmo hash utilizado para verificar la firma. Ver opciones en initHash(). |
| padding | Relleno utilizado en la firma. Consulte las opciones en setPadding(). |
| bSignature | Firma. |
| bMessage | Mensaje para verificación de firma. |
| TacException |
| int verifySignature | ( | byte[] | hPublicKey, |
| byte[] | hHash, | ||
| byte[] | bSignature ) throws TacException |
Comprueba un mensaje.
| hPublicKey | Manejador de la clave pública. importKey(). |
| hHash | Handle del hash del mensaje. Véase initHash(). |
| bSignature | Firma. |
| TacException |
| int verifySignature | ( | byte[] | hPublicKey, |
| int | hashAlg, | ||
| byte[] | bSignature, | ||
| byte[] | bMessage ) throws TacException |
Comprueba un mensaje.
| hPublicKey | Manejador de la clave pública. Véase importKey(). |
| hashAlg | Algoritmo hash. Ver opciones en initHash(). |
| bSignature | Firma. |
| bMessage | Mensaje para verificación de firma. |
| TacException |
| byte[] signHash | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bMessage ) throws TacException |
Firma un dato en función de su contenido.
| keyId | Identificador de la clave privada. |
| algHash | Algoritmo hash utilizado en la firma. Ver opciones en initHash(). |
| bMessage | Mensaje. |
| TacException |
| byte[] sign | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bMessage ) throws TacException |
Firma un dato en función de su contenido.
Utiliza el relleno estándar.
| keyId | Identificador de la clave privada. |
| algHash | Algoritmo hash utilizado en la firma. Ver opciones en initHash(). |
| bMessage | Mensaje. |
| TacException |
| byte[] sign | ( | String | keyId, |
| int | algHash, | ||
| int | padding, | ||
| byte[] | bMessage ) throws TacException |
Firma un dato en función de su contenido.
| keyId | Identificador de la clave privada. |
| algHash | Algoritmo hash utilizado en la firma. Ver opciones en initHash(). |
| padding | Relleno utilizado en la firma. Consulte las opciones en setPadding(). |
| bMessage | Mensaje. |
| TacException |
| byte[] signHashedData | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bHash ) throws TacException |
Firma un dato basándose en su hash previamente calculado.
| keyId | Identificador de la clave privada. | ||||||||||||||||||||||||||
| algHash | Algoritmo hash utilizado en la firma.
| ||||||||||||||||||||||||||
| bHash | Hash previamente calculado del mensaje según el algoritmo definido en algHash. |
| TacException |
| byte[] signHashedData | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bHash, | ||
| boolean | useOID ) throws TacException |
Firma un dato basándose en su hash previamente calculado.
| keyId | Identificador de la clave privada. | ||||||||||||||||||||||||||
| algHash | Algoritmo hash utilizado en la firma.
| ||||||||||||||||||||||||||
| bHash | Hash previamente calculado del mensaje según el algoritmo definido en algHash. | ||||||||||||||||||||||||||
| useOID | Cuando 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. |
| TacException |
| byte[] signHashedData | ( | String | keyId, |
| int | algHash, | ||
| byte[] | bHash, | ||
| int | nFlags ) throws TacException |
Firma un dato basándose en su hash previamente calculado.
| keyId | Identificador de la clave privada. | ||||||||||||||||||||||||||
| algHash | Algoritmo hash utilizado en la firma.
| ||||||||||||||||||||||||||
| bHash | Hash previamente calculado del mensaje según el algoritmo definido en algHash. | ||||||||||||||||||||||||||
| nFlags | Debe pasar 0 o algún modificador definido en la lista de abajo.
|
| TacException |
| byte[] signHashedData | ( | byte[] | privateKeyHandle, |
| int | algHash, | ||
| byte[] | bHash, | ||
| int | nFlags ) throws TacException |
Firma un dato basándose en su hash previamente calculado.
| privateKeyHandle | Handle de la clave privada. Recuperado por el método getKeyHandle(). | ||||||||||||||||||||||||||
| algHash | Algoritmo hash utilizado en la firma.
| ||||||||||||||||||||||||||
| bHash | Hash previamente calculado del mensaje según el algoritmo definido en algHash. | ||||||||||||||||||||||||||
| nFlags | Debe pasar 0 o algún modificador definido en la lista de abajo.
|
| TacException |
| byte[] generateHash | ( | int | algId, |
| int | flags, | ||
| byte[] | data ) throws TacException |
Genera un hash en una sola llamada.
| algId | Indica el algoritmo HASH.
| ||||||||||||||||||||||||||
| flags | Hay que gastar cero. | ||||||||||||||||||||||||||
| data | Mensaje. |
| TacException |
| byte[] generateHash | ( | int | algId, |
| byte[] | data ) throws TacException |
Genera un hash en una sola llamada.
| algId | Indica el algoritmo HASH.
| ||||||||||||||||||||||||||
| data | Mensaje. |
| TacException |
| void initHash | ( | int | algId, |
| int | flags ) throws TacException |
Inicializa una operación hash a trozos.
Debe finalizarse con endHash.
| algId | Indica el algoritmo HASH.
| ||||||||||||||||||||||||||
| flags | Hay que gastar cero. |
| TacException |
| void initHash | ( | int | algId | ) | throws TacException |
Inicializa una operación hash a trozos.
Debe finalizarse con endHash.
| algId | Indica el algoritmo HASH.
|
| TacException |
| void updateHash | ( | byte[] | data | ) | throws TacException |
Actualiza una operación hash con más datos.
| data | Mensaje. |
| TacException |
| byte[] endHash | ( | ) | throws TacException |
Finaliza una operación hash.
| TacException |
| byte[] generateMAC | ( | int | algId, |
| String | macKey, | ||
| int | flags, | ||
| byte[] | data ) throws TacException |
Genera un MAC en una sola llamada.
| algId | Indica el algoritmo MAC.
| ||||||||||||||||
| macKey | Nombre de la clave MAC. | ||||||||||||||||
| flags | Hay que gastar cero. | ||||||||||||||||
| data | Mensaje. |
| TacException |
| byte[] generateMAC | ( | int | algId, |
| String | macKey, | ||
| byte[] | data ) throws TacException |
Genera un MAC en una sola llamada.
| algId | Indica el algoritmo MAC.
| ||||||||||||||||
| macKey | Nombre de la clave MAC. | ||||||||||||||||
| data | Mensaje. |
| TacException |
| void initMAC | ( | int | algId, |
| String | macKey, | ||
| int | flags ) throws TacException |
Inicializa una operación MAC por partes.
Debe finalizarse con endMAC.
| algId | Indica el algoritmo MAC.
| ||||||||||||||||
| macKey | Nombre de la clave MAC. | ||||||||||||||||
| flags | Hay que gastar cero. |
| TacException |
| void initMAC | ( | int | algId, |
| String | macKey ) throws TacException |
Inicializa una operación MAC por partes.
Debe finalizarse con endMAC.
| algId | Indica el algoritmo MAC.
| ||||||||||||||||
| macKey | Nombre de la clave MAC. |
| TacException |
| void updateMAC | ( | byte[] | data | ) | throws TacException |
Actualiza una operación MAC con más datos.
| data | Mensaje. |
| TacException |
| byte[] endMAC | ( | ) | throws TacException |
Finaliza una operación MAC.
| TacException |
| KemEncapsResult kemEncaps | ( | int | dwOpt, |
| byte | bOp, | ||
| String | szDst, | ||
| byte[] | pbCtx, | ||
| int | dwType, | ||
| int | dwAttr, | ||
| byte[] | pbEncapsKey ) throws TacException |
Encapsula un secreto compartido utilizando una clave pública ML-KEM.
El texto cifrado devuelto en KemEncapsResult#getCiphertext() debe enviarse a la parte que lo descapsulará con kemDecaps(int, byte, String, byte[], int, int, String, byte[]).
Dependiendo de bOp:
TacNDJavaLib#DN_KEM_OP_SHARED_SECRET — el secreto compartido se devuelve en KemEncapsResult#getSharedSecret(). Los demás parámetros (szDst, pbCtx, dwType, dwAttr) deben ser nulos/cero. TacNDJavaLib#DN_KEM_OP_DIRECT_KEY — Se crea una clave en el HSM utilizando directamente el secreto compartido. KemEncapsResult#getSharedSecret() devolverá un valor vacío. TacNDJavaLib#DN_KEM_OP_X9_63_SHA256 — Se crea una clave en el HSM utilizando KDF x9.63 SHA256 con el secreto compartido y el contexto opcional pbCtx. | dwOpt | Opción de la operación. Utiliza TacNDJavaLib#DN_KEM_ENCAPS_OPT_ML_KEM. |
| bOp | Operación que se va a realizar con el secreto compartido. Véase TacNDJavaLib#DN_KEM_OP_SHARED_SECRET, TacNDJavaLib#DN_KEM_OP_DIRECT_KEY y TacNDJavaLib#DN_KEM_OP_X9_63_SHA256. |
| szDst | Nombre de la clave de destino en el HSM para TacNDJavaLib#DN_KEM_OP_DIRECT_KEY y TacNDJavaLib#DN_KEM_OP_X9_63_SHA256. Nulo o vacío para TacNDJavaLib#DN_KEM_OP_SHARED_SECRET. |
| pbCtx | Contexto de derivación opcional para TacNDJavaLib#DN_KEM_OP_X9_63_SHA256. Tamaño máximo TacNDJavaLib#DN_KEM_D_MAX_CTX_LEN. Null para no utilizarlo. |
| dwType | Tipo de clave generada en el HSM. Véase DGenerateKey(). Cero si no se utiliza. |
| dwAttr | Atributos de la clave generada en el HSM. Véase DGenerateKey(). Cero si no se utiliza. |
| pbEncapsKey | Clave pública de cifrado en formato SPKI DER. |
KemEncapsResult con el texto cifrado y, si bOp es TacNDJavaLib#DN_KEM_OP_SHARED_SECRET, el secreto compartido. | TacException |
| byte[] kemDecaps | ( | int | dwOpt, |
| byte | bOp, | ||
| String | szDst, | ||
| byte[] | pbCtx, | ||
| int | dwType, | ||
| int | dwAttr, | ||
| String | szDecapsKey, | ||
| byte[] | pbCiphertext ) throws TacException |
Desencierra un secreto compartido utilizando una clave privada ML-KEM almacenada en el HSM.
Debe utilizarse junto con kemEncaps(int, byte, String, byte[], int, int, byte[]) para generar una clave compartida segura entre dos partes, en la que una parte encapsula utilizando la clave pública y la otra desencapsula con la clave privada correspondiente.
Dependiendo de bOp:
TacNDJavaLib#DN_KEM_OP_SHARED_SECRET — se devuelve el secreto compartido. El resto de parámetros (szDst, pbCtx, dwType, dwAttr) deben ser nulos/cero. TacNDJavaLib#DN_KEM_OP_DIRECT_KEY — Se crea una clave en el HSM utilizando directamente el secreto compartido. Devuelve null. TacNDJavaLib#DN_KEM_OP_X9_63_SHA256 — Se crea una clave en el HSM utilizando KDF x9.63 SHA256 con el secreto compartido y el contexto opcional pbCtx. Devuelve null. Atención — rechazo implícito: El ML-KEM FIPS-203 incluye un mecanismo denominado «rechazo implícito», en el que la función de desencapsulación siempre debe devolver una clave, incluso si el texto cifrado recibido es inválido o ha sido alterado. En lugar de devolver un error explícito, la función devolverá una clave aparentemente válida, pero que no guarda relación con la clave encapsulada originalmente. Este mecanismo se ha adoptado en función de las pruebas de seguridad PQC/KEM asociadas. La aplicación que realiza la llamada deberá tratar el valor devuelto como una clave potencialmente inválida y utilizar verificaciones externas (como autenticación o MAC) para confirmar su validez. Esta estrategia refuerza la seguridad del protocolo en su conjunto, impidiendo que un atacante encuentre fallos en el desencapsulado basándose en la respuesta de la API.
| dwOpt | Opción de la operación. Utiliza TacNDJavaLib#DN_KEM_DECAPS_OPT_ML_KEM. |
| bOp | Operación que se va a realizar con el secreto compartido. |
| szDst | Nombre de la clave de destino en el HSM para TacNDJavaLib#DN_KEM_OP_DIRECT_KEY y TacNDJavaLib#DN_KEM_OP_X9_63_SHA256. Nulo o vacío para TacNDJavaLib#DN_KEM_OP_SHARED_SECRET. |
| pbCtx | Contexto de derivación opcional para TacNDJavaLib#DN_KEM_OP_X9_63_SHA256. Tamaño máximo TacNDJavaLib#DN_KEM_D_MAX_CTX_LEN. Null para no utilizarlo. |
| dwType | Tipo de clave generada en el HSM. Cero si no se utiliza. |
| dwAttr | Atributos de la clave generada en el HSM. Cero si no se utiliza. |
| szDecapsKey | Nombre de la clave privada de descapsulación en el HSM. |
| pbCiphertext | Texto cifrado devuelto por kemEncaps(int, byte, String, byte[], int, int, byte[]). |
bOp es TacNDJavaLib#DN_KEM_OP_SHARED_SECRET; nulo cuando la clave se crea directamente en el HSM. | TacException |
| byte[] signPKCS7 | ( | String | keyId, |
| String | keyCertId, | ||
| String | certs, | ||
| int | attributes, | ||
| byte[] | content ) throws TacException |
Genera una firma o cofirma siguiendo el estándar PKCS#7 (Cryptographic Message Syntax Standard).
| keyId | Nombre de la clave dentro del HSM que se utilizará para realizar la firma. | ||||||||||||||||
| keyCertId | Nombre del certificado (correspondiente al keyId) dentro del HSM que se utilizará en la firma. | ||||||||||||||||
| certs | Nombre de la cadena de certificados (PKCS#7) o certificado X.509 de la autoridad de certificación (correspondiente al keyId) dentro del HSM que se utilizará en la firma. | ||||||||||||||||
| attributes | Bandera que contiene las opciones de suscripción.
| ||||||||||||||||
| content | Buffer que contiene los datos a firmar. |
| TacException |