API Java
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Claves

Descripción detallada

Gestión del ciclo de vida de las claves criptográficas en HSM.

Consulte la documentación técnica del HSM.

Funciones

byte[] getUserKey (String strKeyName, int nFlags) throws TacException
 Recupera el contexto de una clave, siempre que el usuario actual tenga acceso, almacenada en el HSM.
 
byte[] getUserKey (String strKeyName) throws TacException
 Recupera el contexto de una clave, siempre que el usuario actual tenga acceso, almacenada en el HSM.
 
byte[] getUserKeyOffline (String strKeyName, int algId, boolean isTemporary, boolean isExportable) throws TacException
 Recupera el contexto de una clave, sin verificar la información transmitida, siempre que el usuario actual tenga acceso, almacenada en el HSM.
 
void deleteKey (String keyId) throws TacException
 Borra la llave.
 
void deleteKeyIfExists (String keyId) throws TacException
 Borra la clave si existe.
 
byte[] createKeyMaterial (int keyAlg) throws TacException
 Crea una nueva clave criptográfica y devuelve su contenido sin persistir en el HSM.
 
void createKey (String keyId, int keyAlg, boolean exportable) throws TacException
 Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.
 
void createKey (String keyId, int keyAlg) throws TacException
 Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.
 
void createKey (String keyId, int keyAlg, int dwFlags) throws TacException
 Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.
 
byte[] exportKey (String szKey, int dwBlobType) throws TacException
 Exporta una clave HSM a la máquina local.
 
byte[] exportKey (String szKey, byte[] hKEKey, int dwBlobType) throws TacException
 Exporta una clave HSM a la máquina local.
 
byte[] exportKey (byte[] hKey, byte[] hKEKey, int dwBlobType) throws TacException
 Exporta una clave HSM a la máquina local.
 
void importKey (String szKey, int dwBlobType, int nAlgId, byte[] pbInData, boolean isExportable) throws TacException
 Importar una clave del equipo local al HSM.
 
void importKey (String szKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, int dwInDataLen) throws TacException
 Importar una clave del equipo local al HSM.
 
void importKey (String szKey, byte[] hKEKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, byte[] hKey) throws TacException
 Importar una clave del equipo local al HSM.
 
byte[] importKey (String szKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData) throws TacException
 Importar una clave del equipo local al HSM.
 
void importKey (String szKey, byte[] hKEKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, int dwInDataLen, byte[] hKey) throws TacException
 Importar una clave del equipo local al HSM.
 
void PKCS12Import (String szPathFile, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa una clave/certificado desde un archivo en formato PKCS#12 al HSM.
 
void importPKCS12 (String szPathFile, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa una clave/certificado desde un archivo en formato PKCS#12 al HSM.
 
void importPKCS12 (byte[] pbPkcs12, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa una clave/certificado desde un búfer en formato PKCS#12 al HSM.
 
void importPKCS12 (byte[] pbPkcs12, String szPassword, String szKey, int nKeyAttr, String szCert, String szPubKey, int nReserved) throws TacException
 Importa una clave/certificado desde un búfer en formato PKCS#12 al HSM.
 
byte[] exportPKCS12 (String password, String key, String cert, String strReserved, int dwFlags) throws TacException
 Exporta una clave y un certificado HSM en formato PKCS#12.
 
byte[] exportPKCS12 (String password, String key, String cert) throws TacException
 Exporta una clave y un certificado HSM en formato PKCS#12.
 
byte[] PKCS8ExportKey (String szKeyId, String szSecret) throws TacException
 Exporta una clave asimétrica en un archivo con formato PKCS#8 al HSM.
 
void PKCS8ImportKey (String szKeyId, String szSecret, int dwKeyAlg, byte[] bKeyEnvelope, boolean isExportable) throws TacException
 Importa una clave asimétrica desde un archivo en formato PKCS#8 al HSM.
 
int getAlgId (byte[] ctxKey) throws TacException
 Recupera el algoritmo de la clave.
 
int getAlgId (String keyId) throws TacException
 Recupera el algoritmo de la clave.
 
byte[] readObject (String szObject) throws TacException
 Exporta un objeto HSM a la máquina local.
 
void writeObject (String szObject, byte[] jbObjectData) throws TacException
 Importar un objeto del equipo local al HSM.
 
byte[] getKeyHandle (String keyId) throws TacException
 Recuperar un mango de llave.
 
void releaseKeyHandle (byte[] keyHandle) lanza una TacException
 Libera un tirador de llave.
 
booleano isKeyExportable (byte[] keyHandle) throws TacException
 Compruebe que la clave es exportable.
 
booleano isKeyExportable (String keyId) throws TacException
 Compruebe que la clave es exportable.
 
void setObjLabel (String objId, String label) throws TacException
 Define el atributo label de los metadatos del objeto.
 
void createMap (String mapId, String objId1, int objId1Alg, String objId2, int objId2Alg) throws TacException
 Crea un objeto de asignación (MAP) dentro del HSM.
 
Cadena[] listObjects () throws TacException
 Enumera los objetos HSM.
 

Funciones

getUserKey() [1/2]

byte[] getUserKey ( String strKeyName,
int nFlags ) throws TacException

Recupera el contexto de una clave, siempre que el usuario actual tenga acceso, almacenada en el HSM.

Esta función no crea una nueva clave.

Parámetros
strKeyNameIdentificador de clave en el HSM.
nFlags
Devolución
Matriz de bytes que representa un manejador de la clave y no su contenido.
Excepciones
TacExceptionExcepción por errores en la recuperación del contexto clave.
Obsoleto

getUserKey() [2/2]

byte[] getUserKey ( String strKeyName) throws TacException

Recupera el contexto de una clave, siempre que el usuario actual tenga acceso, almacenada en el HSM.

Esta función no crea una nueva clave.

Parámetros
strKeyNameIdentificador de clave en el HSM.
Devolución
Matriz de bytes que representa un manejador de la clave y no su contenido.
Excepciones
TacExceptionExcepción por errores en la recuperación del contexto clave.

getUserKeyOffline()

byte[] getUserKeyOffline ( String strKeyName,
int algId,
boolean isTemporary,
boolean isExportable ) throws TacException

Recupera el contexto de una clave, sin verificar la información transmitida, siempre que el usuario actual tenga acceso, almacenada en el HSM.

Esta función no crea una nueva clave.

Parámetros
strKeyNameIdentificador de clave en el HSM.
algIdAlgoritmo clave.
isTemporaryLe indica si la llave es temporal.
isExportableInforma si la clave es exportable.
Devolución
Matriz de bytes que representa un manejador de la clave y no su contenido.
Excepciones
TacExceptionExcepción por errores en la recuperación del contexto clave.

deleteKey()

void deleteKey ( String keyId) throws TacException

Borra la llave.

Parámetros
keyIdIdentificador clave
Excepciones
TacException

deleteKeyIfExists()

void deleteKeyIfExists ( String keyId) throws TacException

Borra la clave si existe.

No devuelve un error si no existe.

Parámetros
keyIdIdentificador clave
Excepciones
TacException

createKeyMaterial()

byte[] createKeyMaterial ( int keyAlg) throws TacException

Crea una nueva clave criptográfica y devuelve su contenido sin persistir en el HSM.

Parámetros
keyAlgAlgoritmo utilizado:
Claves simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits con paridad impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE(Cifrar-Descifrar-Encriptar) de 112 bits con paridad impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE(Cifrar-Descifrar-Encriptar) de 168 bits con paridad impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. El tamaño efectivo es de 118 bits.
TacNDJavaLib.ALG_AES_128 AES de 128 bits.
TacNDJavaLib.ALG_AES_192 AES con 192 bits.
TacNDJavaLib.ALG_AES_256 AES de 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 con 128 bits.
Excepciones
Exception

createKey() [1/3]

void createKey ( String keyId,
int keyAlg,
boolean exportable ) throws TacException

Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.

La clave generada será exportable.

Parámetros
keyIdIdentificador clave
keyAlgAlgoritmo utilizado:
Claves simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits con paridad impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE(Cifrar-Descifrar-Encriptar) de 112 bits con paridad impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE(Cifrar-Descifrar-Encriptar) de 168 bits con paridad impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. El tamaño efectivo es de 118 bits.
TacNDJavaLib.ALG_AES_128 AES de 128 bits.
TacNDJavaLib.ALG_AES_192 AES con 192 bits.
TacNDJavaLib.ALG_AES_256 AES de 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 con 128 bits.

Claves asimétricas RSA
Valor Significado
TacNDJavaLib.ALG_RSA_512 RSA con módulo de 512 bits.
TacNDJavaLib.ALG_RSA_1024 RSA con módulo de 1024 bits.
TacNDJavaLib.ALG_RSA_2048 RSA con módulo de 2048 bits.
TacNDJavaLib.ALG_RSA_4096 RSA con módulo de 4096 bits.
TacNDJavaLib.ALG_RSA_1152 RSA con módulo de 1152 bits.
TacNDJavaLib.ALG_RSA_1408 RSA con módulo de 1408 bits.
TacNDJavaLib.ALG_RSA_1984 RSA con módulo de 1984 bits.

Claves asimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 Curva SECG/WTLS sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP112R2 Curva SECG sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP128R1 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de curva elíptica aleatoria verificable 1).
TacNDJavaLib.ALG_ECC_SECP128R2 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 2).
TacNDJavaLib.ALG_ECC_SECP160K1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP160R1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP160R2 Curva SECG/WTLS sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP192K1 Curva SECG sobre un cuerpo primo finito de 192 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP192R1 Curva SECG/X9.62/NIST sobre un cuerpo primo finito de 192 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP224K1 Curva SECG sobre un cuerpo primo finito de 224 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP224R1 Curva SECG/NIST sobre un cuerpo primo finito de 224 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP256K1 Curva SECG sobre un cuerpo primo finito de 256 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP256R1 Curva SECG/X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP384R1 Curva SECG/NIST sobre un cuerpo primo finito de 384 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP521R1 Curva SECG/NIST sobre un cuerpo primo finito de 521 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 Curva X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de la versión 1).
exportableLa clave puede exportarse desde el HSM si se establece en true.
Excepciones
Exception

createKey() [2/3]

void createKey ( String keyId,
int keyAlg ) throws TacException

Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.

La clave generada será exportable.

Parámetros
keyIdIdentificador clave
keyAlgAlgoritmo utilizado:

Claves simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits con paridad impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE(Cifrar-Descifrar-Encriptar) de 112 bits con paridad impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE(Cifrar-Descifrar-Encriptar) de 168 bits con paridad impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. El tamaño efectivo es de 118 bits.
TacNDJavaLib.ALG_AES_128 AES de 128 bits.
TacNDJavaLib.ALG_AES_192 AES con 192 bits.
TacNDJavaLib.ALG_AES_256 AES de 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 con 128 bits.

Claves asimétricas RSA
Valor Significado
TacNDJavaLib.ALG_RSA_512 RSA con módulo de 512 bits.
TacNDJavaLib.ALG_RSA_1024 RSA con módulo de 1024 bits.
TacNDJavaLib.ALG_RSA_2048 RSA con módulo de 2048 bits.
TacNDJavaLib.ALG_RSA_4096 RSA con módulo de 4096 bits.
TacNDJavaLib.ALG_RSA_1152 RSA con módulo de 1152 bits.
TacNDJavaLib.ALG_RSA_1408 RSA con módulo de 1408 bits.
TacNDJavaLib.ALG_RSA_1984 RSA con módulo de 1984 bits.

Claves asimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 Curva SECG/WTLS sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP112R2 Curva SECG sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP128R1 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de curva elíptica aleatoria verificable 1).
TacNDJavaLib.ALG_ECC_SECP128R2 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 2).
TacNDJavaLib.ALG_ECC_SECP160K1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP160R1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP160R2 Curva SECG/WTLS sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP192K1 Curva SECG sobre un cuerpo primo finito de 192 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP192R1 Curva SECG/X9.62/NIST sobre un cuerpo primo finito de 192 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP224K1 Curva SECG sobre un cuerpo primo finito de 224 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP224R1 Curva SECG/NIST sobre un cuerpo primo finito de 224 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP256K1 Curva SECG sobre un cuerpo primo finito de 256 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP256R1 Curva SECG/X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP384R1 Curva SECG/NIST sobre un cuerpo primo finito de 384 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP521R1 Curva SECG/NIST sobre un cuerpo primo finito de 521 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 Curva X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de la versión 1).
Excepciones
Exception

createKey() [3/3]

void createKey ( String keyId,
int keyAlg,
int dwFlags ) throws TacException

Crea y almacena una clave criptográfica asociada a un algoritmo según los parámetros introducidos en el HSM.

Parámetros
keyIdIdentificador clave
keyAlgAlgoritmo utilizado:

Claves simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits con paridad impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE(Cifrar-Descifrar-Encriptar) de 112 bits con paridad impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE(Cifrar-Descifrar-Encriptar) de 168 bits con paridad impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. El tamaño efectivo es de 118 bits.
TacNDJavaLib.ALG_AES_128 AES de 128 bits.
TacNDJavaLib.ALG_AES_192 AES con 192 bits.
TacNDJavaLib.ALG_AES_256 AES de 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 con 128 bits.

Claves asimétricas RSA
Valor Significado
TacNDJavaLib.ALG_RSA_512 Par de claves RSA con módulo de 512 bits.
TacNDJavaLib.ALG_RSA_1024 Par de claves RSA con módulo de 1024 bits.
TacNDJavaLib.ALG_RSA_2048 Par de claves RSA con módulo de 2048 bits.
TacNDJavaLib.ALG_RSA_4096 Par de claves RSA con módulo de 4096 bits.
TacNDJavaLib.ALG_RSA_1152 Par de claves RSA con módulo de 1152 bits.
TacNDJavaLib.ALG_RSA_1408 Par de claves RSA con módulo de 1408 bits.
TacNDJavaLib.ALG_RSA_1536 Par de claves RSA con módulo de 1536 bits.
TacNDJavaLib.ALG_RSA_1976 Par de claves RSA con módulo de 1976 bits.
TacNDJavaLib.ALG_RSA_1984 Par de claves RSA con módulo de 1984 bits.
TacNDJavaLib.ALG_RSA_8192 Par de claves RSA con módulo de 8192 bits.
TacNDJavaLib.ALG_RSA_2304 Par de claves RSA con módulo de 2304 bits.
TacNDJavaLib.ALG_RSA_2560 Par de claves RSA con módulo de 2560 bits.
TacNDJavaLib.ALG_RSA_2816 Par de claves RSA con módulo de 2816 bits.
TacNDJavaLib.ALG_RSA_3072 Par de claves RSA con módulo de 3072 bits.

Claves asimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 Curva SECG/WTLS sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP112R2 Curva SECG sobre un cuerpo primo finito de 112 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP128R1 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de curva elíptica aleatoria verificable 1).
TacNDJavaLib.ALG_ECC_SECP128R2 Curva SECG sobre un cuerpo primo finito de 128 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 2).
TacNDJavaLib.ALG_ECC_SECP160K1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP160R1 Curva SECG sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP160R2 Curva SECG/WTLS sobre un cuerpo primo finito de 160 bits(parámetros de dominio de curva elíptica 2 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP192K1 Curva SECG sobre un cuerpo primo finito de 192 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP192R1 Curva SECG/X9.62/NIST sobre un cuerpo primo finito de 192 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP224K1 Curva SECG sobre un cuerpo primo finito de 224 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP224R1 Curva SECG/NIST sobre un cuerpo primo finito de 224 bits(parámetros de dominio de la curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP256K1 Curva SECG sobre un cuerpo primo finito de 256 bits(parámetros de dominio koblitz ).
TacNDJavaLib.ALG_ECC_SECP256R1 Curva SECG/X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de curva elíptica verificablemente aleatorios 1).
TacNDJavaLib.ALG_ECC_SECP384R1 Curva SECG/NIST sobre un cuerpo primo finito de 384 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_SECP521R1 Curva SECG/NIST sobre un cuerpo primo finito de 521 bits(parámetros de dominio de curva elíptica 1 verificablemente aleatorios).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 Curva X9.62 sobre un cuerpo primo finito de 192 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 2).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 Curva X9.62 sobre un cuerpo primo finito de 239 bits(parámetros de dominio de la versión 3).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 Curva X9.62 sobre un cuerpo primo finito de 256 bits(parámetros de dominio de la versión 1).
TacNDJavaLib.ALG_ECC_BRAINPOOL_P160R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 160 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P160T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 160 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P192R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 192 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P192T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 192 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P224R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 224 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P224T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 224 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P256R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 256 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P256T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 256 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P320R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 320 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P320T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 320 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P384R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 384 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P384T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 384 bits(parámetros de dominio retorcidos 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P512R1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 512 bits(parámetros de dominio verificablemente aleatorios 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P512T1 RFC 5639 Curva Brainpool sobre un cuerpo primo finito de 512 bits(parámetros de dominio retorcidos 1)

Claves asimétricas ECX
Valor Significado
TacNDJavaLib.ALG_ECX_ED25519 Curva RFC 8032(sólo firma) sobre un cuerpo primo finito de ~256 bits.
TacNDJavaLib.ALG_ECX_ED448 Curva RFC 8032(sólo firma) sobre un cuerpo primo finito de ~448 bits.
TacNDJavaLib.ALG_ECX_X25519 Curva RFC 7748 (sólo acuerdo de claves) sobre un cuerpo primo finito de ~256 bits.
TacNDJavaLib.ALG_ECX_X448 Curva RFC 7748 (sólo acuerdo de claves) sobre un cuerpo primo finito de ~448 bits.

Claves HMAC
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Clave HMAC MD5 con un tamaño de 16 bytes.
TacNDJavaLib.ALG_HMAC_SHA1 Clave HMAC SHA1 con un tamaño de 20 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_256 Clave HMAC SHA2 256 con un tamaño de 32 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_384 Clave HMAC SHA2 384 con un tamaño de 48 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_512 Clave HMAC SHA2 512 con un tamaño de 64 bytes.
dwFlagsParámetros clave adicionales.
Valor Significado
TacNDJavaLib.EXPORTABLE_KEY La clave puede exportarse desde el HSM.
TacNDJavaLib.TEMPORARY_KEY La clave sólo existirá mientras la sesión esté activa. Se destruirá cuando se cierre la sesión.
El parámetro szKeyId, el identificador de la clave, debe ser NULL.

Además de los valores de la tabla anterior, puede añadir una definición de perfil de utilización de claves.

Puede definir el perfil de utilización de las teclas (Atributo Perfil de uso), utilizando sólo uno de los valores siguientes. Si no se especifica ninguno de los valores siguientes, el perfil de claves se establece como libre para cualquier uso. Es obligatorio definir el perfil de uso cuando el HSM está en modo RM3.
Valor Significado
TacNDJavaLib.AUP_DIG_SIG generación/verificación de firmas
TacNDJavaLib.AUP_DATA_CRYPTO cifrado/descifrado de datos
TacNDJavaLib.AUP_KeK empaquetado/desempaquetado de llaves
TacNDJavaLib.AUP_MAC Generación/verificación de MAC
TacNDJavaLib.AUP_KDF función de derivación de claves
TacNDJavaLib.AUP_CRYPTOGRAM generación/verificación de criptogramas
TacNDJavaLib.AUP_KEY_TRANSLATE traducción clave
TacNDJavaLib.AUP_EFT_CVK Generación/verificación de VSC
TacNDJavaLib.AUP_EFT_VISA_PVK Generación de PVP
TacNDJavaLib.AUP_EFT_IBM_3624 Generación/validación de PIN
TacNDJavaLib.AUP_EFT_PEK Cifrado/descifrado del PIN
TacNDJavaLib.AUP_EFT_BDK DUKPT
TacNDJavaLib.AUP_EFT_IPEK DUKPT IPEK
TacNDJavaLib.AUP_EMV_IMK Derivación ICC MK, IDN
TacNDJavaLib.AUP_EMV_IMKDAC Derivación DAC ICC
TacNDJavaLib.AUP_EMV_IMKENC Cifrado de datos ICC - PinBlock
TacNDJavaLib.AUP_EMV_IMKMAC Criptograma de datos ICC - EmvMac
TacNDJavaLib.AUP_EMV_KeK Envoltorio ICC MK
TacNDJavaLib.AUP_EMV_IMKKDF Derivación de claves EMV
TacNDJavaLib.AUP_EMV_IMKACRYPTO Cálculo ARPC
TacNDJavaLib.AUP_EFT_KeK Envoltura/desenvoltura de llaves EFT
TacNDJavaLib.AUP_EMV_DIG_SIG Generación/verificación de firmas EMV
TacNDJavaLib.AUP_EFT_TR31_KBPK Llave de protección TR31
TacNDJavaLib.AUP_EFT_TR34_PK firma/sobre TR34
TacNDJavaLib.AUP_SPB_PK Generación/verificación de firmas SPB y envoltura de claves
Excepciones
Exception

exportKey() [1/3]

byte[] exportKey ( String szKey,
int dwBlobType ) throws TacException

Exporta una clave HSM a la máquina local.

Parámetros
szKeyNombre de la clave a exportar.
dwBlobTypeFormato del búfer de salida. Consulte importKey para obtener una lista de los tipos admitidos.
Devolución
Buffer que contiene el objeto exportado.
Excepciones
TacException

exportKey() [2/3]

byte[] exportKey ( String szKey,
byte[] hKEKey,
int dwBlobType ) throws TacException

Exporta una clave HSM a la máquina local.

Parámetros
szKeyNombre de la clave a exportar.
hKEKeyContexto de la clave con la que se cifrará el bloque de claves - KEK (clave de cifrado de claves).
dwBlobTypeFormato del búfer de salida. Consulte importKey para obtener una lista de los tipos admitidos.
Devolución
Buffer que contiene el objeto exportado.
Excepciones
TacException

exportKey() [3/3]

byte[] exportKey ( byte[] hKey,
byte[] hKEKey,
int dwBlobType ) throws TacException

Exporta una clave HSM a la máquina local.

Parámetros
hKeyContexto de la clave a exportar.
hKEKeyContexto de la clave con la que se cifrará el bloque de claves - KEK (clave de cifrado de claves).
dwBlobTypeFormato del búfer de salida. Consulte importKey para obtener una lista de los tipos admitidos.
Devolución
Buffer que contiene el objeto exportado.
Excepciones
TacException

importKey() [1/5]

void importKey ( String szKey,
int dwBlobType,
int nAlgId,
byte[] pbInData,
boolean isExportable ) throws TacException

Importar una clave del equipo local al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
dwBlobTypeFormato del búfer de salida.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB_STRICT Se importará un par de claves RSA o EC en formato PRIVATEKEY_BLOB.
hKEKey debe ser el contexto de una clave simétrica, una clave pública (interna del HSM, véase PUBLICKEY_BLOB_HSM) o NULL.
Se aceptan los siguientes formatos.
Para RSA: clave privada (que contiene información sobre el módulo y el exponente público), definida en PKCS#1 v1.5 sección 7.2.
Para ECC las claves deben tener el formato ECPrivateKey descrito en RFC 5915.
Para claves ECX (EdDSA y XECDH) el formato es el descrito en RFC 8410.
TacNDJavaLib.PRIVATEKEY_BLOB Mismo comportamiento que TacNDJavaLib.PRIVATEKEY_BLOB_STRICT pero en versiones antiguas de HSM puede devolver claves RSA como una concatenación de clave privada y clave pública en los formatos definidos en PKCS#1 v1.5, en las secciones 7.1 y 7.2. Esta opción se mantiene por compatibilidad. Utilice TacNDJavaLib.PRIVATEKEY_BLOB_STRICT.
TacNDJavaLib.PUBLICKEY_BLOB Se importará una clave pública de un par de claves RSA con el formato PUBLICKEY_BLOB.hKEKey debe ser igual a NULL. El contexto devuelto por la importación de clave pública sólo debe utilizarse en operaciones de sobre digital, ya que el HSM no crea de forma persistente objetos RSA sólo con la parte pública de la clave. Para las importaciones de claves públicas ECC, el formato utilizado será DER (no implementado).
TacNDJavaLib.SIMPLE_BLOB Se importará una clave simétrica en formato SIMPLE_BLOB.hKEKey debe ser el contexto de una clave privada asociada a la clave pública utilizada para cifrar el blob que se va a importar.El tipo de relleno utilizado para cifrar la clave debe ser 2, tal y como se define en PKCS#1 v1.5 sección 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Esta opción aún no está disponible para claves RSA.
TacNDJavaLib.RAW_BLOB El objeto se transporta directamente al área de almacenamiento físico del HSM en su modo nativo. Normalmente, sólo los objetos exportados desde el HSM en modo RAW pueden importarse en modo RAW. Todas las propiedades del objeto se conservan en el HSM, incluido el cifrado (realizado con la Server Master Key, para objetos cifrados), por lo que la operación de importar un objeto en modo RAW debe realizarse en un HSM levantado con la misma Server Master Key utilizada en el HSM donde se realizó la exportación en modo RAW, de lo contrario el objeto no podrá utilizarse correctamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define la importación mediante sobre digital utilizando el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP.La clave importada debe ser una clave simétrica (DES, 3DES o AES).La KEK debe ser una clave privada en el HSM, cuya correspondiente clave pública se utilizó para crear el sobre. El contexto para esta KEK puede obtenerse mediante una llamada a DGetUserKey, donde se introducirá el id de la clave RSA del HSM utilizada para abrir el sobre. Este método de importación puede utilizarse en modo operativo FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define una clave simétrica cifrada por una KEK (Key Encryption Key) también simétrica. El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo y el relleno. La clave se descifrará y se importará en la base HSM directamente, sin ningún formato específico.
TacNDJavaLib.HOTP_BLOB Define la importación de un objeto HTOP al dominio del usuario.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Se importará en el HSM una clave pública de un par de claves RSA/ECC en formato DER. El nAlgId puede tener los siguientes valores especificados en la tabla siguiente.

Tabla de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Clave RSA importada en formato PKCS#1. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Clave ECC importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Clave RSA importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
nAlgIdAlgoritmo de clave importado. Véase createKey.
isExportableIndica que la clave importada será exportable.
pbInDataBuffer que contiene la clave a importar, tal y como se especifica en dwBlobType.
Excepciones
TacException

importKey() [2/5]

void importKey ( String szKey,
int dwBlobType,
int nAlgId,
int dwFlags,
byte[] pbInData,
int dwInDataLen ) throws TacException

Importar una clave del equipo local al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
dwBlobTypeFormato del búfer de salida.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Se importará un par de claves RSA en formato PRIVATEKEY_BLOB.
hKEKey debe ser el contexto de una clave simétrica, una clave pública o NULL.
El formato blob de la clave puede ser una concatenación de los formatos de clave pública y clave privada definidos en PKCS#1 v1.5, en las secciones 7.1 y 7.2, o también puede ser sólo el formato definido para la clave privada (que contiene la información del módulo y el exponente público), definido en PKCS#1 v1.5 sección 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Se importará una clave pública de un par de claves RSA con el formato PUBLICKEY_BLOB.hKEKey debe ser igual a NULL. El contexto devuelto por la importación de clave pública sólo debe utilizarse en operaciones de sobre digital, ya que el HSM no crea de forma persistente objetos RSA sólo con la parte pública de la clave. Para las importaciones de claves públicas ECC, el formato utilizado será DER (no implementado).
TacNDJavaLib.SIMPLE_BLOB Se importará una clave simétrica en formato SIMPLE_BLOB.hKEKey debe ser el contexto de una clave privada asociada a la clave pública utilizada para cifrar el blob que se va a importar.El tipo de relleno utilizado para cifrar la clave debe ser 2, tal y como se define en PKCS#1 v1.5 sección 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Esta opción aún no está disponible para claves RSA.
TacNDJavaLib.RAW_BLOB El objeto se transporta directamente al área de almacenamiento físico del HSM en su modo nativo. Normalmente, sólo los objetos exportados desde el HSM en modo RAW pueden importarse en modo RAW. Todas las propiedades del objeto se conservan en el HSM, incluido el cifrado (realizado con la Server Master Key, para objetos cifrados), por lo que la operación de importar un objeto en modo RAW debe realizarse en un HSM levantado con la misma Server Master Key utilizada en el HSM donde se realizó la exportación en modo RAW, de lo contrario el objeto no podrá utilizarse correctamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define la importación mediante sobre digital utilizando el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP.La clave importada debe ser una clave simétrica (DES, 3DES o AES).La KEK debe ser una clave privada en el HSM, cuya correspondiente clave pública se utilizó para crear el sobre. El contexto para esta KEK puede obtenerse mediante una llamada a DGetUserKey, donde se introducirá el id de la clave RSA del HSM utilizada para abrir el sobre. Este método de importación puede utilizarse en modo operativo FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define una clave simétrica cifrada por una KEK (Key Encryption Key) también simétrica. El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo y el relleno. La clave se descifrará y se importará en la base HSM directamente, sin ningún formato específico.
TacNDJavaLib.HOTP_BLOB Define la importación de un objeto HTOP al dominio del usuario.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Se importará en el HSM una clave pública de un par de claves RSA/ECC en formato DER. El nAlgId puede tener los siguientes valores especificados en la tabla siguiente.

Tabla de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Clave RSA importada en formato PKCS#1. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Clave ECC importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Clave RSA importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
nAlgIdAlgoritmo de clave importado. Véase createKey.
dwFlagsParámetros adicionales de la clave. Véase createKey.
pbInDataBuffer que contiene la clave a importar, tal y como se especifica en dwBlobType.
dwInDataLenTamaño del búfer pbInData que se va a importar.
Excepciones
TacException

importKey() [3/5]

void importKey ( String szKey,
byte[] hKEKey,
int dwBlobType,
int nAlgId,
int dwFlags,
byte[] pbInData,
byte[] hKey ) throws TacException

Importar una clave del equipo local al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
hKEKeyContexto de la clave con la que se cifra el blob de la clave que se va a importar - KEK (clave de cifrado de la clave)
dwBlobTypeFormato del búfer de salida.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Se importará un par de claves RSA en formato PRIVATEKEY_BLOB.
hKEKey debe ser el contexto de una clave simétrica, una clave pública o NULL.
El formato blob de la clave puede ser una concatenación de los formatos de clave pública y clave privada definidos en PKCS#1 v1.5, en las secciones 7.1 y 7.2, o también puede ser sólo el formato definido para la clave privada (que contiene la información del módulo y el exponente público), definido en PKCS#1 v1.5 sección 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Se importará una clave pública de un par de claves RSA con el formato PUBLICKEY_BLOB.hKEKey debe ser igual a NULL. El contexto devuelto por la importación de clave pública sólo debe utilizarse en operaciones de sobre digital, ya que el HSM no crea de forma persistente objetos RSA sólo con la parte pública de la clave. Para las importaciones de claves públicas ECC, el formato utilizado será DER (no implementado).
TacNDJavaLib.SIMPLE_BLOB Se importará una clave simétrica en formato SIMPLE_BLOB.hKEKey debe ser el contexto de una clave privada asociada a la clave pública utilizada para cifrar el blob que se va a importar.El tipo de relleno utilizado para cifrar la clave debe ser 2, tal y como se define en PKCS#1 v1.5 sección 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Esta opción aún no está disponible para claves RSA.
TacNDJavaLib.RAW_BLOB El objeto se transporta directamente al área de almacenamiento físico del HSM en su modo nativo. Normalmente, sólo los objetos exportados desde el HSM en modo RAW pueden importarse en modo RAW. Todas las propiedades del objeto se conservan en el HSM, incluido el cifrado (realizado con la Server Master Key, para objetos cifrados), por lo que la operación de importar un objeto en modo RAW debe realizarse en un HSM levantado con la misma Server Master Key utilizada en el HSM donde se realizó la exportación en modo RAW, de lo contrario el objeto no podrá utilizarse correctamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define la importación mediante sobre digital utilizando el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP.La clave importada debe ser una clave simétrica (DES, 3DES o AES).La KEK debe ser una clave privada en el HSM, cuya correspondiente clave pública se utilizó para crear el sobre. El contexto para esta KEK puede obtenerse mediante una llamada a DGetUserKey, donde se introducirá el id de la clave RSA del HSM utilizada para abrir el sobre. Este método de importación puede utilizarse en modo operativo FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define una clave simétrica cifrada por una KEK (Key Encryption Key) también simétrica. El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo y el relleno. La clave se descifrará y se importará en la base HSM directamente, sin ningún formato específico.
TacNDJavaLib.HOTP_BLOB Define la importación de un objeto HTOP al dominio del usuario.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Se importará en el HSM una clave pública de un par de claves RSA/ECC en formato DER. El nAlgId puede tener los siguientes valores especificados en la tabla siguiente.
TacNDJavaLib.WRAPPED_KEY_BLOB Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico. En la operación de exportación de claves, el formato de la clave privada será PKCS#8.

Tabla de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Clave RSA importada en formato PKCS#1. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Clave ECC importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Clave RSA importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
nAlgIdAlgoritmo de clave importado. Véase createKey.
dwFlagsParámetros adicionales de la clave. Véase createKey.
pbInDataBuffer que contiene la clave a importar, tal y como se especifica en dwBlobType.
hKeyContexto de la clave importada.
Excepciones
TacException

importKey() [4/5]

byte[] importKey ( String szKey,
int dwBlobType,
int nAlgId,
int dwFlags,
byte[] pbInData ) throws TacException

Importar una clave del equipo local al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
dwBlobTypeFormato del búfer de salida.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Se importará un par de claves RSA en formato PRIVATEKEY_BLOB.
hKEKey debe ser el contexto de una clave simétrica, una clave pública o NULL.
El formato blob de la clave puede ser una concatenación de los formatos de clave pública y clave privada definidos en PKCS#1 v1.5, en las secciones 7.1 y 7.2, o también puede ser sólo el formato definido para la clave privada (que contiene la información del módulo y el exponente público), definido en PKCS#1 v1.5 sección 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Se importará una clave pública de un par de claves RSA con el formato PUBLICKEY_BLOB.hKEKey debe ser igual a NULL. El contexto devuelto por la importación de clave pública sólo debe utilizarse en operaciones de sobre digital, ya que el HSM no crea de forma persistente objetos RSA sólo con la parte pública de la clave. Para las importaciones de claves públicas ECC, el formato utilizado será DER (no implementado).
TacNDJavaLib.SIMPLE_BLOB Se importará una clave simétrica en formato SIMPLE_BLOB.hKEKey debe ser el contexto de una clave privada asociada a la clave pública utilizada para cifrar el blob que se va a importar.El tipo de relleno utilizado para cifrar la clave debe ser 2, tal y como se define en PKCS#1 v1.5 sección 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Esta opción aún no está disponible para claves RSA.
TacNDJavaLib.RAW_BLOB El objeto se transporta directamente al área de almacenamiento físico del HSM en su modo nativo. Normalmente, sólo los objetos exportados desde el HSM en modo RAW pueden importarse en modo RAW. Todas las propiedades del objeto se conservan en el HSM, incluido el cifrado (realizado con la Server Master Key, para objetos cifrados), por lo que la operación de importar un objeto en modo RAW debe realizarse en un HSM levantado con la misma Server Master Key utilizada en el HSM donde se realizó la exportación en modo RAW, de lo contrario el objeto no podrá utilizarse correctamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define la importación mediante sobre digital utilizando el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP.La clave importada debe ser una clave simétrica (DES, 3DES o AES).La KEK debe ser una clave privada en el HSM, cuya correspondiente clave pública se utilizó para crear el sobre. El contexto para esta KEK puede obtenerse mediante una llamada a DGetUserKey, donde se introducirá el id de la clave RSA del HSM utilizada para abrir el sobre. Este método de importación puede utilizarse en modo operativo FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define una clave simétrica cifrada por una KEK (Key Encryption Key) también simétrica. El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo y el relleno. La clave se descifrará y se importará en la base HSM directamente, sin ningún formato específico.
TacNDJavaLib.HOTP_BLOB Define la importación de un objeto HTOP al dominio del usuario.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Se importará en el HSM una clave pública de un par de claves RSA/ECC en formato DER. El nAlgId puede tener los siguientes valores especificados en la tabla siguiente.
TacNDJavaLib.WRAPPED_KEY_BLOB Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico. En la operación de exportación de claves, el formato de la clave privada será PKCS#8.

Tabla de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Clave RSA importada en formato PKCS#1. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Clave ECC importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Clave RSA importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
nAlgIdAlgoritmo de clave importado. Véase createKey.
dwFlagsParámetros adicionales de la clave. Véase createKey.
pbInDataBuffer que contiene la clave a importar, tal y como se especifica en dwBlobType.
Excepciones
TacException

importKey() [5/5]

void importKey ( String szKey,
byte[] hKEKey,
int dwBlobType,
int nAlgId,
int dwFlags,
byte[] pbInData,
int dwInDataLen,
byte[] hKey ) throws TacException

Importar una clave del equipo local al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
hKEKeyContexto de la clave con la que se cifra el blob de la clave que se va a importar - KEK (clave de cifrado de la clave)
dwBlobTypeFormato del búfer de salida.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Se importará un par de claves RSA en formato PRIVATEKEY_BLOB.
hKEKey debe ser el contexto de una clave simétrica, una clave pública o NULL.
El formato blob de la clave puede ser una concatenación de los formatos de clave pública y clave privada definidos en PKCS#1 v1.5, en las secciones 7.1 y 7.2, o también puede ser sólo el formato definido para la clave privada (que contiene la información del módulo y el exponente público), definido en PKCS#1 v1.5 sección 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Se importará una clave pública de un par de claves RSA con el formato PUBLICKEY_BLOB.hKEKey debe ser igual a NULL. El contexto devuelto por la importación de clave pública sólo debe utilizarse en operaciones de sobre digital, ya que el HSM no crea de forma persistente objetos RSA sólo con la parte pública de la clave. Para las importaciones de claves públicas ECC, el formato utilizado será DER (no implementado).
TacNDJavaLib.SIMPLE_BLOB Se importará una clave simétrica en formato SIMPLE_BLOB.hKEKey debe ser el contexto de una clave privada asociada a la clave pública utilizada para cifrar el blob que se va a importar.El tipo de relleno utilizado para cifrar la clave debe ser 2, tal y como se define en PKCS#1 v1.5 sección 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Esta opción aún no está disponible para claves RSA.
TacNDJavaLib.RAW_BLOB El objeto se transporta directamente al área de almacenamiento físico del HSM en su modo nativo. Normalmente, sólo los objetos exportados desde el HSM en modo RAW pueden importarse en modo RAW. Todas las propiedades del objeto se conservan en el HSM, incluido el cifrado (realizado con la Server Master Key, para objetos cifrados), por lo que la operación de importar un objeto en modo RAW debe realizarse en un HSM levantado con la misma Server Master Key utilizada en el HSM donde se realizó la exportación en modo RAW, de lo contrario el objeto no podrá utilizarse correctamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define la importación mediante sobre digital utilizando el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP.La clave importada debe ser una clave simétrica (DES, 3DES o AES).La KEK debe ser una clave privada en el HSM, cuya correspondiente clave pública se utilizó para crear el sobre. El contexto para esta KEK puede obtenerse mediante una llamada a DGetUserKey, donde se introducirá el id de la clave RSA del HSM utilizada para abrir el sobre. Este método de importación puede utilizarse en modo operativo FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define una clave simétrica cifrada por una KEK (Key Encryption Key) también simétrica. El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo y el relleno. La clave se descifrará y se importará en la base HSM directamente, sin ningún formato específico.
TacNDJavaLib.HOTP_BLOB Define la importación de un objeto HTOP al dominio del usuario.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Se importará en el HSM una clave pública de un par de claves RSA/ECC en formato DER. El nAlgId puede tener los siguientes valores especificados en la tabla siguiente.
TacNDJavaLib.WRAPPED_KEY_BLOB Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importar una clave cifrada mediante una KEK (Key Encryption Key). El parámetro hKEKey debe contener el contexto de una clave simétrica con los parámetros de uso adecuados ya definidos, como el modo (según el algoritmo) y el relleno. La clave se descifrará y se importará en la base de datos del HSM directamente, sin ningún formato específico. En la operación de exportación de claves, el formato de la clave privada será PKCS#8.

Tabla de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Clave RSA importada en formato PKCS#1. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Clave ECC importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Clave RSA importada en formato SubjectPublicKeyInfo. El tamaño de la clave se detecta automáticamente.
nAlgIdAlgoritmo de clave importado. Véase createKey.
dwFlagsParámetros adicionales de la clave. Véase createKey.
pbInDataBuffer que contiene la clave a importar, tal y como se especifica en dwBlobType.
dwInDataLenTamaño del búfer pbInData que se va a importar.
hKeyContexto de la clave importada.
Excepciones
TacException

PKCS12Import()

void PKCS12Import ( String szPathFile,
String szPassword,
String szKey,
String szCert,
boolean isExportable ) throws TacException

Importa una clave/certificado desde un archivo en formato PKCS#12 al HSM.

Parámetros
szKeyNombre que tendrá la clave importada dentro del HSM.
szPathFileUbicación del archivo PFX físico que se va a importar.
szPasswordContraseña para abrir el archivo PFX.
szCertNombre que tendrá el certificado importado dentro del HSM.
isExportableImporta la clave en formato exportable.
Obsoleto
Excepciones
TacException

importPKCS12() [1/3]

void importPKCS12 ( String szPathFile,
String szPassword,
String szKey,
String szCert,
boolean isExportable ) throws TacException

Importa una clave/certificado desde un archivo en formato PKCS#12 al HSM.

Parámetros
szPathFileUbicación del archivo PFX físico que se va a importar.
szPasswordContraseña para abrir el archivo PFX.
szKeyNombre que tendrá la clave importada dentro del HSM.
szCertNombre que tendrá el certificado importado dentro del HSM.
isExportableImporta la clave en formato exportable.
Excepciones
TacException

importPKCS12() [2/3]

void importPKCS12 ( byte[] pbPkcs12,
String szPassword,
String szKey,
String szCert,
boolean isExportable ) throws TacException

Importa una clave/certificado desde un búfer en formato PKCS#12 al HSM.

Parámetros
pbPkcs12PKCS#12.
szPasswordContraseña para PKCS#12.
szKeyNombre que tendrá la clave importada dentro del HSM.
szCertNombre que tendrá el certificado importado dentro del HSM.
isExportableImporte la clave privada en formato exportable.
Excepciones
TacException

importPKCS12() [3/3]

void importPKCS12 ( byte[] pbPkcs12,
String szPassword,
String szKey,
int nKeyAttr,
String szCert,
String szPubKey,
int nReserved ) throws TacException

Importa una clave/certificado desde un búfer en formato PKCS#12 al HSM.

Parámetros
pbPkcs12PKCS#12.
szPasswordContraseña para PKCS#12.
szKeyNombre que tendrá la clave importada dentro del HSM.
nKeyAttrAtributos de la clave que se importará en el HSM. Dinamo Consulte las opciones posibles en el parámetro dwFlags de .createKey().
szCertNombre que tendrá el certificado importado dentro del HSM.
szPubKeyNombre que tendrá la clave pública importada dentro del HSM. Puede ser null para no importar el objeto de clave pública.
nReservedReservado para uso futuro. Debe ser 0.
Excepciones
TacException

exportPKCS12() [1/2]

byte[] exportPKCS12 ( String password,
String key,
String cert,
String strReserved,
int dwFlags ) throws TacException

Exporta una clave y un certificado HSM en formato PKCS#12.

Parámetros
passwordContraseña para la protección PFX.
keyNombre de la clave que se exportará a PFX.
certNombre del certificado que se exportará a PFX.
strReservedReservado para uso futuro.
dwFlagsPase 0 o una de las opciones de la tabla siguiente.
Atributo Valor
DN_EXPORT_P12_LEGACY Exporta la clave y el certificado y genera el archivo PKCS#12 en software.
Devolución
Matriz de bytes en formato PFX que contiene la clave y el certificado especificados.
Excepciones
TacException

exportPKCS12() [2/2]

byte[] exportPKCS12 ( String password,
String key,
String cert ) throws TacException

Exporta una clave y un certificado HSM en formato PKCS#12.

Parámetros
passwordContraseña para la protección PFX.
keyNombre de la clave que se exportará a PFX.
certNombre del certificado que se exportará a PFX.
Devolución
Matriz de bytes en formato PFX que contiene la clave y el certificado especificados.
Excepciones
TacException

PKCS8ExportKey()

byte[] PKCS8ExportKey ( String szKeyId,
String szSecret ) throws TacException

Exporta una clave asimétrica en un archivo con formato PKCS#8 al HSM.

Parámetros
szKeyIdIdentificación clave.
szSecretContraseña para el archivo PKCS#8 (debe tener más de 16 caracteres).
Excepciones
TacException

PKCS8ImportKey()

void PKCS8ImportKey ( String szKeyId,
String szSecret,
int dwKeyAlg,
byte[] bKeyEnvelope,
boolean isExportable ) throws TacException

Importa una clave asimétrica desde un archivo en formato PKCS#8 al HSM.

Parámetros
szKeyIdIdentificación clave.
szSecretContraseña para el archivo PKCS#8 (debe tener más de 16 caracteres).
dwKeyAlgIdentificador del algoritmo clave. Claves asimétricas RSA
Valor Significado
TacNDJavaLib.ALG_RSA_512 RSA con módulo de 512 bits.
TacNDJavaLib.ALG_RSA_1024 RSA con módulo de 1024 bits.
TacNDJavaLib.ALG_RSA_2048 RSA con módulo de 2048 bits.
TacNDJavaLib.ALG_RSA_4096 RSA con módulo de 4096 bits.
TacNDJavaLib.ALG_RSA_1152 RSA con módulo de 1152 bits.
TacNDJavaLib.ALG_RSA_1408 RSA con módulo de 1408 bits.
TacNDJavaLib.ALG_RSA_1984 RSA con módulo de 1984 bits.
bKeyEnvelopeFormato de archivo binario PKCS#8
isExportableImporta la clave en formato exportable.
Excepciones
TacException

getAlgId() [1/2]

int getAlgId ( byte[] ctxKey) throws TacException

Recupera el algoritmo de la clave.

Parámetros
ctxKeyMango de la clave, recuperado por getKeyHandle().
Devolución
Excepciones
TacException

getAlgId() [2/2]

int getAlgId ( String keyId) throws TacException

Recupera el algoritmo de la clave.

Parámetros
keyIdIdentificador clave
Devolución
Excepciones
TacException

readObject()

byte[] readObject ( String szObject) throws TacException

Exporta un objeto HSM a la máquina local.

Parámetros
szObjectNombre del objeto a exportar.
Devolución
Buffer que contiene el objeto exportado.
Excepciones
TacException

writeObject()

void writeObject ( String szObject,
byte[] jbObjectData ) throws TacException

Importar un objeto del equipo local al HSM.

Parámetros
szObjectNombre del objeto a importar.
jbObjectDataDatos del objeto a importar.
Excepciones
TacException

getKeyHandle()

byte[] getKeyHandle ( String keyId) throws TacException

Recuperar un mango de llave.

Debe liberarse con el método releaseKey().

Parámetros
keyIdIdentificador de clave en formato de texto
Devolución
llavero
Excepciones
TacException

releaseKeyHandle()

void releaseKeyHandle ( byte[] keyHandle) throws TacException

Libera un tirador de llave.

Parámetros
keyHandleMango de la clave recuperada por getKeyHandle().
Excepciones
TacException

isKeyExportable() [1/2]

boolean isKeyExportable ( byte[] keyHandle) throws TacException

Compruebe que la clave es exportable.

Parámetros
keyHandleMango de la clave recuperada por getKeyHandle().
Devolución
Estado clave.
Excepciones
TacException

isKeyExportable() [2/2]

boolean isKeyExportable ( String keyId) throws TacException

Compruebe que la clave es exportable.

Parámetros
keyIdIdentificador clave.
Devolución
Estado clave.
Excepciones
TacException

setObjLabel()

void setObjLabel ( String objId,
String label ) throws TacException

Define el atributo label de los metadatos del objeto.

Parámetros
objIdIdentificador de objeto
labelEtiqueta
Excepciones
TacException

createMap()

void createMap ( String mapId,
String objId1,
int objId1Alg,
String objId2,
int objId2Alg ) throws TacException

Crea un objeto de asignación (MAP) dentro del HSM.

Parámetros
mapIdIdentificador del objeto PRT.
objId1Identificador del objeto al que apunta la primera ranura del PRT.
objId1AlgAlgoritmo del objeto indicado por objId1Alg. Puede ser cualquier tipo de objeto (véase createKey) o TacNDJavaLib.ALG_OBJ_NULL.
objId2Identificador del objeto al que apunta la segunda ranura del PRT.
objId2AlgAlgoritmo del objeto indicado por objId2Alg. Puede ser cualquier tipo de objeto (véase createKey) o TacNDJavaLib.ALG_OBJ_NULL.
Excepciones
Exception

listObjects()

String[] listObjects ( ) throws TacException

Enumera los objetos HSM.

Devolución
Matriz de cadenas que contiene la lista de objetos del HSM.
Excepciones
TacException