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

Descripción detallada

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

Véase Documentación técnica de HSM.

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

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, boolean exportable, boolean temporary) 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.
 
byte[] generatePKCS10CSR (String szKeyId, String szDN, int dwOutType) throws TacException
 Generar un CSR.
 
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[] getIv (byte[] clave) throws TacException
 Recupera el IV (vector de inicialización) de la clave.
 
void setIv (byte[] hKey, byte[] pbIv) throws TacException
 Define el vector de inicialización de la clave.
 
void setMode (byte[] hKey, int dwMode) throws TacException
 Establece el modo de funcionamiento del interruptor.
 
void setPadding (byte[] hKey, int dwPadding) throws TacException
 Define el tipo de relleno que utilizará la clave.
 
void setIvAutoGeneration (byte[] hKey, boolean isAutoGeneration) throws TacException
 Define si el vector de inicialización (IV) se generará automáticamente.
 
void blockObject (byte[] hKey) throws TacException
 Marca la clave como bloqueada, es decir, no disponible para operaciones criptográficas ni para su exportación.
 
void blockObject (String keyId) throws TacException
 Marca la clave como bloqueada, es decir, no disponible para operaciones criptográficas ni para su exportación.
 
void unblockObject (byte[] hKey) throws TacException
 Establece la clave como desbloqueada, es decir, disponible para operaciones criptográficas y exportación.
 
void unblockObject (String keyId) throws TacException
 Establece la clave como desbloqueada, es decir, disponible para operaciones criptográficas y exportación.
 
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/4]

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).
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 asimétricas PQC
Valor Significado
TacNDJavaLib.ALG_ML_DSA_44 Par de claves ML-DSA-44, norma FIPS 204.
TacNDJavaLib.ALG_ML_DSA_65 Par de claves ML-DSA-65, norma FIPS 204.
TacNDJavaLib.ALG_ML_DSA_87 Par de claves ML-DSA-87, norma FIPS 204.
TacNDJavaLib.ALG_ML_KEM_512 Par de claves ML-KEM-512, norma FIPS 203.
TacNDJavaLib.ALG_ML_KEM_768 Par de claves ML-KEM-768, norma FIPS 203.
TacNDJavaLib.ALG_ML_KEM_1024 Par de claves ML-KEM-1024, norma FIPS 203.
TacNDJavaLib.ALG_SLH_DSA_SHA2_128S Par de claves SLH-DSA-SHA2-128S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_128S Par de claves SLH-DSA-SHAKE-128S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHA2_128F Par de claves SLH-DSA-SHA2-128F, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_128F Par de claves SLH-DSA-SHAKE-128F, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHA2_192S Par de claves SLH-DSA-SHA2-192S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_192S Par de claves SLH-DSA-SHAKE-192S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHA2_192F Par de claves SLH-DSA-SHA2-192F, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_192F Par de claves SLH-DSA-SHAKE-192F, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHA2_256S Par de claves SLH-DSA-SHA2-256S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_256S Par de claves SLH-DSA-SHAKE-256S, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHA2_256F Par de claves SLH-DSA-SHA2-256F, norma FIPS 205.
TacNDJavaLib.ALG_SLH_DSA_SHAKE_256F Par de claves SLH-DSA-SHAKE-256F, norma FIPS 205.

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.
exportableLa clave puede exportarse desde el HSM si se establece en true.
Excepciones
Exception

createKey() [2/4]

void createKey ( String keyId,
int keyAlg,
boolean exportable,
boolean temporary ) 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.
temporaryLa clave será temporal si se establece en true.
Excepciones
Exception

createKey() [3/4]

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() [4/4]

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
TacNDJavaLib.AUP_EFT_X9_24_PART componente ANS1 X9.24 (20044), anexo C
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, EC o PQC 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 el RFC 8410.
Para claves PQC, el estándar es PrivateKeyInfo en formato DER.
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.PUBLICKEY_BLOB_X509 Importa/exporta una clave pública en formato X.509. El formato de clave pública es SubjectPublicKeyInfo, tal y como se define en RFC 5280. El parámetro hKEKey debe ser igual a NULL.
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.PUBLICKEY_BLOB_X509 Importa/exporta una clave pública en formato X.509. El formato de clave pública es SubjectPublicKeyInfo, tal y como se define en RFC 5280. El parámetro hKEKey debe ser igual a NULL.
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.PUBLICKEY_BLOB_X509 Importa/exporta una clave pública en formato X.509. El formato de clave pública es SubjectPublicKeyInfo, tal y como se define en RFC 5280. El parámetro hKEKey debe ser igual a NULL.
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.
TacNDJavaLib.WRAPPED_KEY_KMIP Exporte/importe la clave privada como un valor de clave KMIP que contenga una clave en formato de clave privada RSA transparente.
TacNDJavaLib.PUBLICKEY_BLOB_KMIP Exporta la clave pública como un valor de clave KMIP que contiene una clave en formato de clave pública RSA transparente.

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.PUBLICKEY_BLOB_X509 Importa/exporta una clave pública en formato X.509. El formato de clave pública es SubjectPublicKeyInfo, tal y como se define en RFC 5280. El parámetro hKEKey debe ser igual a NULL.
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.
TacNDJavaLib.WRAPPED_KEY_KMIP Exporte/importe la clave privada como un valor de clave KMIP que contenga una clave en formato de clave privada RSA transparente.
TacNDJavaLib.PUBLICKEY_BLOB_KMIP Exporta la clave pública como un valor de clave KMIP que contiene una clave en formato de clave pública RSA transparente.

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.PUBLICKEY_BLOB_X509 Importa/exporta una clave pública en formato X.509. El formato de clave pública es SubjectPublicKeyInfo, tal y como se define en RFC 5280. El parámetro hKEKey debe ser igual a NULL.
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.
TacNDJavaLib.WRAPPED_KEY_KMIP Exporte/importe la clave privada como un valor de clave KMIP que contenga una clave en formato de clave privada RSA transparente.
TacNDJavaLib.PUBLICKEY_BLOB_KMIP Exporta la clave pública como un valor de clave KMIP que contiene una clave en formato de clave pública RSA transparente.

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

generarPKCS10CSR()

byte[] generatePKCS10CSR ( String szKeyId,
String szDN,
int dwOutType ) throws TacException

Generar un CSR.

Parámetros
szKeyIdnombre clave
szDNCadena terminada en cero de longitud máxima CORE_P10_CSR_DN_MAX_LEN, que contiene el DN (Dinstinguished Name) para generar el CSR. Los campos DN deben estar separados por "/".
dwOutTypeFormato de salida P10_CSR_DER(1) o P10_CSR_PEM(2)
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

getIv()

byte[] getIv ( byte[] key) throws TacException

Recupera el IV (vector de inicialización) de la clave.

Parámetros
keyHandle de la clave, recuperada por getUserKey().
Devolución
Vector de inicialización de claves.
Excepciones
TacException
Ver también
getUserKey()

setIv()

void setIv ( byte[] hKey,
byte[] pbIv ) throws TacException

Define el vector de inicialización de la clave.

Sólo válido para claves simétricas.

Parámetros
hKeyContexto clave.
pbIvVector de inicialización utilizado con los algoritmos de bloque 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. Más detalles en la sección Observaciones.
Excepciones
TacException

setMode()

void setMode ( byte[] hKey,
int dwMode ) throws TacException

Establece el modo de funcionamiento del interruptor.

Parámetros
hKeyContexto clave.
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.
Excepciones
TacException

setPadding()

void setPadding ( byte[] hKey,
int dwPadding ) throws TacException

Define el tipo de relleno que utilizará la clave.

Parámetros
hKeyContexto clave.
dwPaddingTipo de acolchado
La biblioteca puede trabajar con los siguientes rellenos simétricos:
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 el patrón definido en PKCS#5. Este es el relleno por defecto si no se define ninguno.
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 crear 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.
La biblioteca puede trabajar con los siguientes rellenos asimétricos:
Valor Significado
TacNDJavaLib.D_PKCS1_PADDING El relleno se realiza siguiendo el estándar definido en PKCS#1 v1.5. Este es el relleno estándar para claves RSA, si no se ha definido ninguno.
TacNDJavaLib.D_PSS_PADDING El relleno se realiza siguiendo el estándar PSS definido en PKCS#1 EMSA-PSS-ENCODE con el hash igual al utilizado en el hash del mensaje, utilizando la sal con el tamaño máximo disponible en el bloque. Opción no disponible para firmas heredadas.
TacNDJavaLib.D_PSS_SALT_LEN_MD_PADDING El relleno se realiza siguiendo el estándar PSS definido en PKCS#1 EMSA-PSS-ENCODE con el hash igual al utilizado en el hash del mensaje, utilizando la sal con el mismo tamaño que la salida hash utilizada en la operación. Opción no disponible para firmas heredadas.
TacNDJavaLib.D_OAEP_SHA1_PADDING El relleno se realiza siguiendo el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP con hash SHA-1. Opción no disponible para firmas heredadas.
TacNDJavaLib.D_OAEP_SHA2_256_PADDING El relleno se realiza siguiendo el estándar PKCS#1 versión 2.1, con esquema de cifrado RSAES-OAEP con hash SHA2-256. Opción no disponible para firmas heredadas.
TacNDJavaLib.D_X931_PADDING El relleno se realiza siguiendo la norma ANSI X9.31. Opción no disponible para firmas heredadas.
TacNDJavaLib.D_NO_PADDING Sin relleno, los datos pasados para el cifrado ya deben tener la longitud del bloque de operación para claves RSA. Para claves RSA sólo disponible en operaciones heredadas. Para claves de curva elíptica, sin relleno y disponible en operaciones no heredadas. Opción estándar para claves de curva elíptica.
Excepciones
TacException

setIvAutoGeneration()

void setIvAutoGeneration ( byte[] hKey,
boolean isAutoGeneration ) throws TacException

Define si el vector de inicialización (IV) se generará automáticamente.

Parámetros
hKeyContexto clave.
isAutoGenerationTrue para indicar que el IV se generará automáticamente, false en caso contrario.
Excepciones
TacException

◆ blockObject() [1/2]

void blockObject ( byte[] hKey) throws TacException

Marca la clave como bloqueada, es decir, no disponible para operaciones criptográficas ni para su exportación.

El objeto de la clave permanece en la base del HSM, pero no se puede utilizar.

Parámetros
hKeyContexto clave.
Excepciones
TacException

◆ blockObject() [2/2]

void blockObject ( String keyId) throws TacException

Marca la clave como bloqueada, es decir, no disponible para operaciones criptográficas ni para su exportación.

El objeto de la clave permanece en la base del HSM, pero no se puede utilizar.

Parámetros
keyIdIdentificador clave.
Excepciones
TacException

◆ unblockObject() [1/2]

void unblockObject ( byte[] hKey) throws TacException

Establece la clave como desbloqueada, es decir, disponible para operaciones criptográficas y exportación.

Parámetros
hKeyContexto clave.
Excepciones
TacException

◆ unblockObject() [2/2]

void unblockObject ( String keyId) throws TacException

Establece la clave como desbloqueada, es decir, disponible para operaciones criptográficas y exportación.

Parámetros
keyIdIdentificador clave.
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