API Java
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
Chaves

Descrição detalhada

Gerência do ciclo de vida de chaves criptográficas no HSM.

Consulte a documentação técnica do HSM.

Funções

byte[] getUserKey (String strKeyName, int nFlags) throws TacException
 Recupera o contexto de uma chave, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.
 
byte[] getUserKey (String strKeyName) throws TacException
 Recupera o contexto de uma chave, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.
 
byte[] getUserKeyOffline (String strKeyName, int algId, boolean isTemporary, boolean isExportable) throws TacException
 Recupera o contexto de uma chave, sem verificação das informações passadas, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.
 
void deleteKey (String keyId) throws TacException
 Apaga a chave.
 
void deleteKeyIfExists (String keyId) throws TacException
 Apaga a chave se ela existir.
 
byte[] createKeyMaterial (int keyAlg) throws TacException
 Cria uma nova chave criptográfica e retorna o seu conteúdo sem persistir no HSM.
 
void createKey (String keyId, int keyAlg, boolean exportable) throws TacException
 Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.
 
void createKey (String keyId, int keyAlg) throws TacException
 Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.
 
void createKey (String keyId, int keyAlg, int dwFlags) throws TacException
 Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.
 
byte[] exportKey (String szKey, int dwBlobType) throws TacException
 Exporta uma chave do HSM para a máquina local.
 
byte[] exportKey (String szKey, byte[] hKEKey, int dwBlobType) throws TacException
 Exporta uma chave do HSM para a máquina local.
 
byte[] exportKey (byte[] hKey, byte[] hKEKey, int dwBlobType) throws TacException
 Exporta uma chave do HSM para a máquina local.
 
void importKey (String szKey, int dwBlobType, int nAlgId, byte[] pbInData, boolean isExportable) throws TacException
 Importa uma chave da máquina local para o HSM.
 
void importKey (String szKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, int dwInDataLen) throws TacException
 Importa uma chave da máquina local para o HSM.
 
void importKey (String szKey, byte[] hKEKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, byte[] hKey) throws TacException
 Importa uma chave da máquina local para o HSM.
 
byte[] importKey (String szKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData) throws TacException
 Importa uma chave da máquina local para o HSM.
 
void importKey (String szKey, byte[] hKEKey, int dwBlobType, int nAlgId, int dwFlags, byte[] pbInData, int dwInDataLen, byte[] hKey) throws TacException
 Importa uma chave da máquina local para o HSM.
 
void PKCS12Import (String szPathFile, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa uma chave/certificado de um arquivo no formato PKCS#12 para o HSM.
 
void importPKCS12 (String szPathFile, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa uma chave/certificado de um arquivo no formato PKCS#12 para o HSM.
 
void importPKCS12 (byte[] pbPkcs12, String szPassword, String szKey, String szCert, boolean isExportable) throws TacException
 Importa uma chave/certificado de um buffer no formato PKCS#12 para o HSM.
 
void importPKCS12 (byte[] pbPkcs12, String szPassword, String szKey, int nKeyAttr, String szCert, String szPubKey, int nReserved) throws TacException
 Importa uma chave/certificado de um buffer no formato PKCS#12 para o HSM.
 
byte[] exportPKCS12 (String password, String key, String cert, String strReserved, int dwFlags) throws TacException
 Exporta uma chave e um certificado do HSM no formato PKCS#12.
 
byte[] exportPKCS12 (String password, String key, String cert) throws TacException
 Exporta uma chave e um certificado do HSM no formato PKCS#12.
 
byte[] PKCS8ExportKey (String szKeyId, String szSecret) throws TacException
 Exporta uma chave assimétrica em um arquivo no formato PKCS#8 para o HSM.
 
void PKCS8ImportKey (String szKeyId, String szSecret, int dwKeyAlg, byte[] bKeyEnvelope, boolean isExportable) throws TacException
 Importa uma chave assimétrica de um arquivo no formato PKCS#8 para o HSM.
 
int getAlgId (byte[] ctxKey) throws TacException
 Recupera o algoritmo da chave.
 
int getAlgId (String keyId) throws TacException
 Recupera qual o algoritmo da chave.
 
byte[] readObject (String szObject) throws TacException
 Exporta um objeto do HSM para a máquina local.
 
void writeObject (String szObject, byte[] jbObjectData) throws TacException
 Importa um objeto da máquina local para o HSM.
 
byte[] getKeyHandle (String keyId) throws TacException
 Recupera um handle de chave.
 
void releaseKeyHandle (byte[] keyHandle) throws TacException
 Libera um handle de chave.
 
boolean isKeyExportable (byte[] keyHandle) throws TacException
 Verifica se a chave é exportável.
 
boolean isKeyExportable (String keyId) throws TacException
 Verifica se a chave é exportável.
 
void setObjLabel (String objId, String label) throws TacException
 Define o atributo label do metadado do objeto.
 
void createMap (String mapId, String objId1, int objId1Alg, String objId2, int objId2Alg) throws TacException
 Cria um objeto de mapeamento(MAP) dentro do HSM.
 
String[] listObjects () throws TacException
 Lista os objetos do HSM.
 

Funções

◆ getUserKey() [1/2]

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

Recupera o contexto de uma chave, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.

Essa função não cria uma nova chave.

Parâmetros
strKeyNameIdentificador da chave no HSM.
nFlags
Retorna
Array de bytes onde representa um handle da chave e não o conteúdo dela.
Exceções
TacExceptionExceção para erros na recuperação do contexto da chave.
Obsoleto(a)

◆ getUserKey() [2/2]

byte[] getUserKey ( String strKeyName) throws TacException

Recupera o contexto de uma chave, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.

Essa função Não cria uma nova chave.

Parâmetros
strKeyNameIdentificador da chave no HSM.
Retorna
Array de bytes onde representa um handle da chave e Não o conteúdo dela.
Exceções
TacExceptionExceção para erros na recuperação do contexto da chave.

◆ getUserKeyOffline()

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

Recupera o contexto de uma chave, sem verificação das informações passadas, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM.

Essa função não cria uma nova chave.

Parâmetros
strKeyNameIdentificador da chave no HSM.
algIdAlgoritmo da chave.
isTemporaryInforma se a chave é temporária.
isExportableInforma se a chave é exportável.
Retorna
Array de bytes onde representa um handle da chave e Não o conteúdo dela.
Exceções
TacExceptionExceção para erros na recuperação do contexto da chave.

◆ deleteKey()

void deleteKey ( String keyId) throws TacException

Apaga a chave.

Parâmetros
keyIdIdentificador da chave
Exceções
TacException

◆ deleteKeyIfExists()

void deleteKeyIfExists ( String keyId) throws TacException

Apaga a chave se ela existir.

Não retorna erro caso não exista.

Parâmetros
keyIdIdentificador da chave
Exceções
TacException

◆ createKeyMaterial()

byte[] createKeyMaterial ( int keyAlg) throws TacException

Cria uma nova chave criptográfica e retorna o seu conteúdo sem persistir no HSM.

Parâmetros
keyAlgAlgoritmo a ser utilizado:
Chaves Simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE (Encrypt-Decrypt-Encrypt) de 112 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE (Encrypt-Decrypt-Encrypt) de 168 bits e com paridade impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. O tamanho efetivo é de 118 bits.
TacNDJavaLib.ALG_AES_128 AES com 128 bits.
TacNDJavaLib.ALG_AES_192 AES com 192 bits.
TacNDJavaLib.ALG_AES_256 AES com 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 com 128 bits.
Exceções
Exception

◆ createKey() [1/3]

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

Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.

A chave gerada será exportável.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:
Chaves Simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE (Encrypt-Decrypt-Encrypt) de 112 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE (Encrypt-Decrypt-Encrypt) de 168 bits e com paridade impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. O tamanho efetivo é de 118 bits.
TacNDJavaLib.ALG_AES_128 AES com 128 bits.
TacNDJavaLib.ALG_AES_192 AES com 192 bits.
TacNDJavaLib.ALG_AES_256 AES com 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 com 128 bits.

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

Chaves Assimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 curva SECG/WTLS sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters).
TacNDJavaLib.ALG_ECC_SECP112R2 curva SECG sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP128R1 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP128R2 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP160K1 curva SECG sobre um corpo finito primo de 160 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP160R1 curva SECG sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP160R2 curva SECG/WTLS sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP192K1 curva SECG sobre um corpo finito primo de 192 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP192R1 curva SECG/X9.62/NIST sobre um corpo finito primo de 192 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP224K1 curva SECG sobre um corpo finito primo de 224 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP224R1 curva SECG/NIST sobre um corpo finito primo de 224 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP256K1 curva SECG sobre um corpo finito primo de 256 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP256R1 curva SECG/X9.62 sobre um corpo finito primo de 256 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP384R1 curva SECG/NIST sobre um corpo finito primo de 384 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP521R1 curva SECG/NIST sobre um corpo finito primo de 521 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 curva X9.62 sobre um corpo finito primo de 192 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 curva X9.62 sobre um corpo finito primo de 192 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 curva X9.62 sobre um corpo finito primo de 192 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 curva X9.62 sobre um corpo finito primo de 239 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 curva X9.62 sobre um corpo finito primo de 239 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 curva X9.62 sobre um corpo finito primo de 239 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 curva X9.62 sobre um corpo finito primo de 256 bits (version 1 domain parameters).
exportableA chave poderá ser exportada do HSM, se definido como true.
Exceções
Exception

◆ createKey() [2/3]

void createKey ( String keyId,
int keyAlg ) throws TacException

Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.

A chave gerada será exportável.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:

Chaves Simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE (Encrypt-Decrypt-Encrypt) de 112 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE (Encrypt-Decrypt-Encrypt) de 168 bits e com paridade impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. O tamanho efetivo é de 118 bits.
TacNDJavaLib.ALG_AES_128 AES com 128 bits.
TacNDJavaLib.ALG_AES_192 AES com 192 bits.
TacNDJavaLib.ALG_AES_256 AES com 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 com 128 bits.

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

Chaves Assimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 curva SECG/WTLS sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters).
TacNDJavaLib.ALG_ECC_SECP112R2 curva SECG sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP128R1 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP128R2 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP160K1 curva SECG sobre um corpo finito primo de 160 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP160R1 curva SECG sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP160R2 curva SECG/WTLS sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP192K1 curva SECG sobre um corpo finito primo de 192 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP192R1 curva SECG/X9.62/NIST sobre um corpo finito primo de 192 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP224K1 curva SECG sobre um corpo finito primo de 224 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP224R1 curva SECG/NIST sobre um corpo finito primo de 224 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP256K1 curva SECG sobre um corpo finito primo de 256 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP256R1 curva SECG/X9.62 sobre um corpo finito primo de 256 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP384R1 curva SECG/NIST sobre um corpo finito primo de 384 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP521R1 curva SECG/NIST sobre um corpo finito primo de 521 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 curva X9.62 sobre um corpo finito primo de 192 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 curva X9.62 sobre um corpo finito primo de 192 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 curva X9.62 sobre um corpo finito primo de 192 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 curva X9.62 sobre um corpo finito primo de 239 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 curva X9.62 sobre um corpo finito primo de 239 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 curva X9.62 sobre um corpo finito primo de 239 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 curva X9.62 sobre um corpo finito primo de 256 bits (version 1 domain parameters).
Exceções
Exception

◆ createKey() [3/3]

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

Cria e armazena uma chave criptográfica associada a um algoritmo de acordo com os parâmetros informados dentro do HSM.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:

Chaves Simétricas
Valor Significado
TacNDJavaLib.ALG_DES DES de 56 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_112 3DES-EDE (Encrypt-Decrypt-Encrypt) de 112 bits e com paridade impar.
TacNDJavaLib.ALG_3DES_168 3DES-EDE (Encrypt-Decrypt-Encrypt) de 168 bits e com paridade impar.
TacNDJavaLib.ALG_DESX DESX de 192 bits. O tamanho efetivo é de 118 bits.
TacNDJavaLib.ALG_AES_128 AES com 128 bits.
TacNDJavaLib.ALG_AES_192 AES com 192 bits.
TacNDJavaLib.ALG_AES_256 AES com 256 bits.
TacNDJavaLib.ALG_ARC4 ARC4 com 128 bits.

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

Chaves Assimétricas ECC
Valor Significado
TacNDJavaLib.ALG_ECC_SECP112R1 curva SECG/WTLS sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters).
TacNDJavaLib.ALG_ECC_SECP112R2 curva SECG sobre um corpo finito primo de 112 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP128R1 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP128R2 curva SECG sobre um corpo finito primo de 128 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP160K1 curva SECG sobre um corpo finito primo de 160 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP160R1 curva SECG sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP160R2 curva SECG/WTLS sobre um corpo finito primo de 160 bits (verifiably random elliptic curve domain parameters 2).
TacNDJavaLib.ALG_ECC_SECP192K1 curva SECG sobre um corpo finito primo de 192 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP192R1 curva SECG/X9.62/NIST sobre um corpo finito primo de 192 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP224K1 curva SECG sobre um corpo finito primo de 224 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP224R1 curva SECG/NIST sobre um corpo finito primo de 224 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP256K1 curva SECG sobre um corpo finito primo de 256 bits (koblitz domain parameters ).
TacNDJavaLib.ALG_ECC_SECP256R1 curva SECG/X9.62 sobre um corpo finito primo de 256 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP384R1 curva SECG/NIST sobre um corpo finito primo de 384 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_SECP521R1 curva SECG/NIST sobre um corpo finito primo de 521 bits (verifiably random elliptic curve domain parameters 1).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V1 curva X9.62 sobre um corpo finito primo de 192 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V2 curva X9.62 sobre um corpo finito primo de 192 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME192V3 curva X9.62 sobre um corpo finito primo de 192 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V1 curva X9.62 sobre um corpo finito primo de 239 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V2 curva X9.62 sobre um corpo finito primo de 239 bits (version 2 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME239V3 curva X9.62 sobre um corpo finito primo de 239 bits (version 3 domain parameters).
TacNDJavaLib.ALG_ECC_X9_62_PRIME256V1 curva X9.62 sobre um corpo finito primo de 256 bits (version 1 domain parameters).
TacNDJavaLib.ALG_ECC_BRAINPOOL_P160R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 160 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P160T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 160 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P192R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 192 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P192T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 192 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P224R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 224 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P224T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 224 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P256R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 256 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P256T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 256 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P320R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 320 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P320T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 320 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P384R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 384 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P384T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 384 bits (twisted domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P512R1 curva Brainpool RFC 5639 sobre um corpo finito primo de 512 bits (verifiably random domain parameters 1)
TacNDJavaLib.ALG_ECC_BRAINPOOL_P512T1 curva Brainpool RFC 5639 sobre um corpo finito primo de 512 bits (twisted domain parameters 1)

Chaves Assimétricas ECX
Valor Significado
TacNDJavaLib.ALG_ECX_ED25519 curva RFC 8032(apenas assinatura) sobre um corpo finito primo de ~256 bits.
TacNDJavaLib.ALG_ECX_ED448 curva RFC 8032(apenas assinatura) sobre um corpo finito primo de ~448 bits.
TacNDJavaLib.ALG_ECX_X25519 curva RFC 7748(apenas key-agreement) sobre um corpo finito primo de ~256 bits.
TacNDJavaLib.ALG_ECX_X448 curva RFC 7748(apenas key-agreement) sobre um corpo finito primo de ~448 bits.

Chaves HMAC
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Chave HMAC MD5 com tamanho de 16 bytes.
TacNDJavaLib.ALG_HMAC_SHA1 Chave HMAC SHA1 com tamanho de 20 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_256 Chave HMAC SHA2 256 com tamanho de 32 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_384 Chave HMAC SHA2 384 com tamanho de 48 bytes.
TacNDJavaLib.ALG_HMAC_SHA2_512 Chave HMAC SHA2 512 com tamanho de 64 bytes.
dwFlagsParâmetros adicionais da chave.
Valor Significado
TacNDJavaLib.EXPORTABLE_KEY A chave poderá ser exportada do HSM.
TacNDJavaLib.TEMPORARY_KEY A chave somente existirá enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
O parâmetro szKeyId, identificador da chave, deve ser NULL.

Além dos valores da tabela anterior é possível adicionar uma definição de perfil de uso de chave.

É possível definir o perfil de uso da chave (Attribute Usage-profile), utilizando apenas um dos valores abaixo. Se nenhum dos valores abaixo for especificado o perfil dachave é definido como livre para qualquer uso. É obrigatório a definição do perfil de uso quando o HSM estiver em modo RM3.
Valor Significado
TacNDJavaLib.AUP_DIG_SIG assinatura geração/verificação
TacNDJavaLib.AUP_DATA_CRYPTO encriptação/decriptação de dados
TacNDJavaLib.AUP_KeK wrapping/unwrapping de chaves
TacNDJavaLib.AUP_MAC geração/verificação MAC
TacNDJavaLib.AUP_KDF função de derivação de chave
TacNDJavaLib.AUP_CRYPTOGRAM geração/verificação de criptograma
TacNDJavaLib.AUP_KEY_TRANSLATE tradução de chave
TacNDJavaLib.AUP_EFT_CVK geração/verificação de CVV
TacNDJavaLib.AUP_EFT_VISA_PVK geração de PVV
TacNDJavaLib.AUP_EFT_IBM_3624 geração/validação de PIN
TacNDJavaLib.AUP_EFT_PEK encriptação/decriptação de PIN
TacNDJavaLib.AUP_EFT_BDK DUKPT
TacNDJavaLib.AUP_EFT_IPEK DUKPT IPEK
TacNDJavaLib.AUP_EMV_IMK derivação de ICC MK, IDN
TacNDJavaLib.AUP_EMV_IMKDAC derivação de ICC DAC
TacNDJavaLib.AUP_EMV_IMKENC encriptação de dados ICC - PinBlock
TacNDJavaLib.AUP_EMV_IMKMAC criptograma de dados ICC - EmvMac
TacNDJavaLib.AUP_EMV_KeK wrapping de ICC MK
TacNDJavaLib.AUP_EMV_IMKKDF derivação de chave EMV
TacNDJavaLib.AUP_EMV_IMKACRYPTO cálculo ARPC
TacNDJavaLib.AUP_EFT_KeK wrapping/unwrapping de chave EFT
TacNDJavaLib.AUP_EMV_DIG_SIG assinatura EMV geração/verificação
TacNDJavaLib.AUP_EFT_TR31_KBPK chave de proteção de key-block TR31
TacNDJavaLib.AUP_EFT_TR34_PK assinatura/envelope TR34
TacNDJavaLib.AUP_SPB_PK SPB assinatura geração/verificação e wrapping de chave
Exceções
Exception

◆ exportKey() [1/3]

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

Exporta uma chave do HSM para a máquina local.

Parâmetros
szKeyNome da chave a ser exportada.
dwBlobTypeFormato do buffer de saída. Veja importKey para lista de tipos suportados.
Retorna
Buffer contendo o objeto exportado.
Exceções
TacException

◆ exportKey() [2/3]

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

Exporta uma chave do HSM para a máquina local.

Parâmetros
szKeyNome da chave a ser exportada.
hKEKeyContexto da chave com a qual o bloco da chave será cifrado - KEK (key encryption key).
dwBlobTypeFormato do buffer de saída. Veja importKey para lista de tipos suportados.
Retorna
Buffer contendo o objeto exportado.
Exceções
TacException

◆ exportKey() [3/3]

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

Exporta uma chave do HSM para a máquina local.

Parâmetros
hKeyContexto da chave a ser exportada.
hKEKeyContexto da chave com a qual o bloco da chave será cifrado - KEK (key encryption key).
dwBlobTypeFormato do buffer de saída. Veja importKey para lista de tipos suportados.
Retorna
Buffer contendo o objeto exportado.
Exceções
TacException

◆ importKey() [1/5]

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

Importa uma chave da máquina local para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
dwBlobTypeFormato do buffer de saída.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB_STRICT Será importado um par de chaves RSA ou EC no formato PRIVATEKEY_BLOB.
hKEKey deve ser o contexto de uma chave simétrica, uma chave pública(interna ao HSM ver PUBLICKEY_BLOB_HSM) ou ainda NULL.
Os seguintes formatos são aceitos.
Para RSA: Chave privada (que contém as informações de módulo e expoente público), definido na PKCS#1 v1.5 seção 7.2.
Para chaves ECC devem ter o formato ECPrivateKey descrito na RFC 5915.
Para chaves ECX(EdDSA e XECDH) o formato é o descrito na RFC 8410.
TacNDJavaLib.PRIVATEKEY_BLOB Mesmo comportamento de TacNDJavaLib.PRIVATEKEY_BLOB_STRICT mas em versões antigas de HSM pode retornar chaves RSA como uma concatenação de chave privada e chave pública nos formatos definidos no PKCS#1 v1.5, nas seções 7.1 e 7.2. Esta opção é mantida por compatibilidade. Utilizar TacNDJavaLib.PRIVATEKEY_BLOB_STRICT.
TacNDJavaLib.PUBLICKEY_BLOB Será importada uma chave pública de um par de chaves RSA no formato PUBLICKEY_BLOB.hKEKey deve ser igual a NULL. O contexto retornado pela importação de chave pública deve ser utilizado apenas nas operações de envelope digital, pois o HSM Não cria de forma persistente objetos RSA com apenas a parte pública da chave. Para importação de chave pública ECC o formato utilizado será DER (Não implementado).
TacNDJavaLib.SIMPLE_BLOB Será importada uma chave simétrica no formato SIMPLE_BLOB.hKEKey deve ser o contexto de uma chave privada associada à chave pública usada para criptografar o blob a ser importado.O tipo do padding usado para criptografia da chave deve ser 2, como definido no PKCS#1 v1.5 seção 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Será importada uma chave simétrica em claro.Essa flag ainda Não é suportada para chaves RSA.
TacNDJavaLib.RAW_BLOB Objeto é transportado diretamente para a área de armazenamento física do HSM em seu modo nativo. Normalmente só objetos exportados do HSM em modo RAW podem ser importados em modo RAW.Todas as propriedades do objeto são preservadas no HSM, incluindo a criptografia (feita com a Server Master Key, para objetos criptografados), portanto a operação de importar um objeto em modo RAW deve ser realizada em um HSM levantado com a mesma Server Master Key usada no HSM onde foi feita a exportação em modo RAW, caso contrário, o objeto Não poderá ser utilizado corretamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define a importação através de envelope digital usando o padrão PKCS#1 versão 2.1, com esquema de cifragem RSAES-OAEP.A chave importada deve ser obrigatoriamente uma chave simétrica (DES, 3DES ou AES).A KEK deverá ser uma chave privada no HSM, cuja chave pública correspondente foi utilizada na criação do envelope. O contexto para esta KEK pode ser obtido via uma chamada à DGetUserKey, onde será informado o id da chave RSA do HSM usada para abrir o envelope. Este método de importação pode ser utilizado no modo de operação FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define uma chave simétrica encriptada por uma KEK (Key Encryption Key) também simétrica. O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.HOTP_BLOB Define a importação de um objeto tipo HTOP para o domínio do Usuário.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Será importada uma chave pública de um par de chaves RSA/ECC no formato DER para dentro do HSM. O nAlgId poderá ter os seguintes valores especificados na tabela abaixo.

Tabela de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Chave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Chave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Chave RSA importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
nAlgIdAlgoritmo da chave importada. Ver createKey.
isExportableSinaliza que a chave importada será exportável.
pbInDataBuffer contendo a chave a ser importada, de acordo com o especificado com o passado em dwBlobType.
Exceções
TacException

◆ importKey() [2/5]

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

Importa uma chave da máquina local para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
dwBlobTypeFormato do buffer de saída.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Será importado um par de chaves RSA no formato PRIVATEKEY_BLOB.
hKEKey deve ser o contexto de uma chave de simétrica, uma chave pública ou ainda NULL.
O formato do blob da chave pode ser uma concatenação dos formatos de chave pública e chave privada definidos no PKCS#1 v1.5, nas seções 7.1 e 7.2, ou pode ser também apenas o formato definido para a chave privada (que contêm as informações de módulo e expoente público), definido na PKCS#1 v1.5 seção 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Será importada uma chave pública de um par de chaves RSA no formato PUBLICKEY_BLOB.hKEKey deve ser igual a NULL. O contexto retornado pela importação de chave pública deve ser utilizado apenas nas operações de envelope digital, pois o HSM Não cria de forma persistente objetos RSA com apenas a parte pública da chave. Para importação de chave pública ECC o formato utilizado será DER (Não implementado).
TacNDJavaLib.SIMPLE_BLOB Será importada uma chave simétrica no formato SIMPLE_BLOB.hKEKey deve ser o contexto de uma chave privada associada à chave pública usada para criptografar o blob a ser importado.O tipo do padding usado para criptografia da chave deve ser 2, como definido no PKCS#1 v1.5 seção 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Será importada uma chave simétrica em claro.Essa flag ainda Não é suportada para chaves RSA.
TacNDJavaLib.RAW_BLOB Objeto é transportado diretamente para a área de armazenamento física do HSM em seu modo nativo. Normalmente só objetos exportados do HSM em modo RAW podem ser importados em modo RAW.Todas as propriedades do objeto são preservadas no HSM, incluindo a criptografia (feita com a Server Master Key, para objetos criptografados), portanto a operação de importar um objeto em modo RAW deve ser realizada em um HSM levantado com a mesma Server Master Key usada no HSM onde foi feita a exportação em modo RAW, caso contrário, o objeto Não poderá ser utilizado corretamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define a importação através de envelope digital usando o padrão PKCS#1 versão 2.1, com esquema de cifragem RSAES-OAEP.A chave importada deve ser obrigatoriamente uma chave simétrica (DES, 3DES ou AES).A KEK deverá ser uma chave privada no HSM, cuja chave pública correspondente foi utilizada na criação do envelope. O contexto para esta KEK pode ser obtido via uma chamada à DGetUserKey, onde será informado o id da chave RSA do HSM usada para abrir o envelope. Este método de importação pode ser utilizado no modo de operação FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define uma chave simétrica encriptada por uma KEK (Key Encryption Key) também simétrica. O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.HOTP_BLOB Define a importação de um objeto tipo HTOP para o domínio do Usuário.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Será importada uma chave pública de um par de chaves RSA/ECC no formato DER para dentro do HSM. O nAlgId poderá ter os seguintes valores especificados na tabela abaixo.

Tabela de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Chave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Chave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Chave RSA importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
nAlgIdAlgoritmo da chave importada. Ver createKey.
dwFlagsParâmetros adicionais de chave. Ver createKey.
pbInDataBuffer contendo a chave a ser importada, de acordo com o especificado com o passado em dwBlobType.
dwInDataLenTamanho do buffer pbInData a ser importado.
Exceções
TacException

◆ importKey() [3/5]

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

Importa uma chave da máquina local para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
hKEKeyContexto da chave com a qual o blob da chave a ser importada está cifrada - KEK (key encryption key)
dwBlobTypeFormato do buffer de saída.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Será importado um par de chaves RSA no formato PRIVATEKEY_BLOB.
hKEKey deve ser o contexto de uma chave de simétrica, uma chave pública ou ainda NULL.
O formato do blob da chave pode ser uma concatenação dos formatos de chave pública e chave privada definidos no PKCS#1 v1.5, nas seções 7.1 e 7.2, ou pode ser também apenas o formato definido para a chave privada (que contêm as informações de módulo e expoente público), definido na PKCS#1 v1.5 seção 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Será importada uma chave pública de um par de chaves RSA no formato PUBLICKEY_BLOB.hKEKey deve ser igual a NULL. O contexto retornado pela importação de chave pública deve ser utilizado apenas nas operações de envelope digital, pois o HSM Não cria de forma persistente objetos RSA com apenas a parte pública da chave. Para importação de chave pública ECC o formato utilizado será DER (Não implementado).
TacNDJavaLib.SIMPLE_BLOB Será importada uma chave simétrica no formato SIMPLE_BLOB.hKEKey deve ser o contexto de uma chave privada associada à chave pública usada para criptografar o blob a ser importado.O tipo do padding usado para criptografia da chave deve ser 2, como definido no PKCS#1 v1.5 seção 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Será importada uma chave simétrica em claro.Essa flag ainda Não é suportada para chaves RSA.
TacNDJavaLib.RAW_BLOB Objeto é transportado diretamente para a área de armazenamento física do HSM em seu modo nativo. Normalmente só objetos exportados do HSM em modo RAW podem ser importados em modo RAW.Todas as propriedades do objeto são preservadas no HSM, incluindo a criptografia (feita com a Server Master Key, para objetos criptografados), portanto a operação de importar um objeto em modo RAW deve ser realizada em um HSM levantado com a mesma Server Master Key usada no HSM onde foi feita a exportação em modo RAW, caso contrário, o objeto Não poderá ser utilizado corretamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define a importação através de envelope digital usando o padrão PKCS#1 versão 2.1, com esquema de cifragem RSAES-OAEP.A chave importada deve ser obrigatoriamente uma chave simétrica (DES, 3DES ou AES).A KEK deverá ser uma chave privada no HSM, cuja chave pública correspondente foi utilizada na criação do envelope. O contexto para esta KEK pode ser obtido via uma chamada à DGetUserKey, onde será informado o id da chave RSA do HSM usada para abrir o envelope. Este método de importação pode ser utilizado no modo de operação FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define uma chave simétrica encriptada por uma KEK (Key Encryption Key) também simétrica. O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.HOTP_BLOB Define a importação de um objeto tipo HTOP para o domínio do Usuário.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Será importada uma chave pública de um par de chaves RSA/ECC no formato DER para dentro do HSM. O nAlgId poderá ter os seguintes valores especificados na tabela abaixo.
TacNDJavaLib.WRAPPED_KEY_BLOB Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica. Na operação de exportação de chave o formato da chave privada será PKCS#8.

Tabela de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Chave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Chave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Chave RSA importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
nAlgIdAlgoritmo da chave importada. Ver createKey.
dwFlagsParâmetros adicionais de chave. Ver createKey.
pbInDataBuffer contendo a chave a ser importada, de acordo com o especificado com o passado em dwBlobType.
hKeyContexto da chave importada.
Exceções
TacException

◆ importKey() [4/5]

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

Importa uma chave da máquina local para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
dwBlobTypeFormato do buffer de saída.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Será importado um par de chaves RSA no formato PRIVATEKEY_BLOB.
hKEKey deve ser o contexto de uma chave de simétrica, uma chave pública ou ainda NULL.
O formato do blob da chave pode ser uma concatenação dos formatos de chave pública e chave privada definidos no PKCS#1 v1.5, nas seções 7.1 e 7.2, ou pode ser também apenas o formato definido para a chave privada (que contêm as informações de módulo e expoente público), definido na PKCS#1 v1.5 seção 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Será importada uma chave pública de um par de chaves RSA no formato PUBLICKEY_BLOB.hKEKey deve ser igual a NULL. O contexto retornado pela importação de chave pública deve ser utilizado apenas nas operações de envelope digital, pois o HSM Não cria de forma persistente objetos RSA com apenas a parte pública da chave. Para importação de chave pública ECC o formato utilizado será DER (Não implementado).
TacNDJavaLib.SIMPLE_BLOB Será importada uma chave simétrica no formato SIMPLE_BLOB.hKEKey deve ser o contexto de uma chave privada associada à chave pública usada para criptografar o blob a ser importado.O tipo do padding usado para criptografia da chave deve ser 2, como definido no PKCS#1 v1.5 seção 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Será importada uma chave simétrica em claro.Essa flag ainda Não é suportada para chaves RSA.
TacNDJavaLib.RAW_BLOB Objeto é transportado diretamente para a área de armazenamento física do HSM em seu modo nativo. Normalmente só objetos exportados do HSM em modo RAW podem ser importados em modo RAW.Todas as propriedades do objeto são preservadas no HSM, incluindo a criptografia (feita com a Server Master Key, para objetos criptografados), portanto a operação de importar um objeto em modo RAW deve ser realizada em um HSM levantado com a mesma Server Master Key usada no HSM onde foi feita a exportação em modo RAW, caso contrário, o objeto Não poderá ser utilizado corretamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define a importação através de envelope digital usando o padrão PKCS#1 versão 2.1, com esquema de cifragem RSAES-OAEP.A chave importada deve ser obrigatoriamente uma chave simétrica (DES, 3DES ou AES).A KEK deverá ser uma chave privada no HSM, cuja chave pública correspondente foi utilizada na criação do envelope. O contexto para esta KEK pode ser obtido via uma chamada à DGetUserKey, onde será informado o id da chave RSA do HSM usada para abrir o envelope. Este método de importação pode ser utilizado no modo de operação FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define uma chave simétrica encriptada por uma KEK (Key Encryption Key) também simétrica. O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.HOTP_BLOB Define a importação de um objeto tipo HTOP para o domínio do Usuário.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Será importada uma chave pública de um par de chaves RSA/ECC no formato DER para dentro do HSM. O nAlgId poderá ter os seguintes valores especificados na tabela abaixo.
TacNDJavaLib.WRAPPED_KEY_BLOB Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica. Na operação de exportação de chave o formato da chave privada será PKCS#8.

Tabela de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Chave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Chave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Chave RSA importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
nAlgIdAlgoritmo da chave importada. Ver createKey.
dwFlagsParâmetros adicionais de chave. Ver createKey.
pbInDataBuffer contendo a chave a ser importada, de acordo com o especificado com o passado em dwBlobType.
Exceções
TacException

◆ importKey() [5/5]

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

Importa uma chave da máquina local para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
hKEKeyContexto da chave com a qual o blob da chave a ser importada está cifrada - KEK (key encryption key)
dwBlobTypeFormato do buffer de saída.
Valor Significado
TacNDJavaLib.PRIVATEKEY_BLOB Será importado um par de chaves RSA no formato PRIVATEKEY_BLOB.
hKEKey deve ser o contexto de uma chave de simétrica, uma chave pública ou ainda NULL.
O formato do blob da chave pode ser uma concatenação dos formatos de chave pública e chave privada definidos no PKCS#1 v1.5, nas seções 7.1 e 7.2, ou pode ser também apenas o formato definido para a chave privada (que contêm as informações de módulo e expoente público), definido na PKCS#1 v1.5 seção 7.2.
TacNDJavaLib.PUBLICKEY_BLOB Será importada uma chave pública de um par de chaves RSA no formato PUBLICKEY_BLOB.hKEKey deve ser igual a NULL. O contexto retornado pela importação de chave pública deve ser utilizado apenas nas operações de envelope digital, pois o HSM Não cria de forma persistente objetos RSA com apenas a parte pública da chave. Para importação de chave pública ECC o formato utilizado será DER (Não implementado).
TacNDJavaLib.SIMPLE_BLOB Será importada uma chave simétrica no formato SIMPLE_BLOB.hKEKey deve ser o contexto de uma chave privada associada à chave pública usada para criptografar o blob a ser importado.O tipo do padding usado para criptografia da chave deve ser 2, como definido no PKCS#1 v1.5 seção 8.1.
TacNDJavaLib.PLAINTEXTKEY_BLOB Será importada uma chave simétrica em claro.Essa flag ainda Não é suportada para chaves RSA.
TacNDJavaLib.RAW_BLOB Objeto é transportado diretamente para a área de armazenamento física do HSM em seu modo nativo. Normalmente só objetos exportados do HSM em modo RAW podem ser importados em modo RAW.Todas as propriedades do objeto são preservadas no HSM, incluindo a criptografia (feita com a Server Master Key, para objetos criptografados), portanto a operação de importar um objeto em modo RAW deve ser realizada em um HSM levantado com a mesma Server Master Key usada no HSM onde foi feita a exportação em modo RAW, caso contrário, o objeto Não poderá ser utilizado corretamente.
TacNDJavaLib.SIMPLE_BLOB_OAEP Define a importação através de envelope digital usando o padrão PKCS#1 versão 2.1, com esquema de cifragem RSAES-OAEP.A chave importada deve ser obrigatoriamente uma chave simétrica (DES, 3DES ou AES).A KEK deverá ser uma chave privada no HSM, cuja chave pública correspondente foi utilizada na criação do envelope. O contexto para esta KEK pode ser obtido via uma chamada à DGetUserKey, onde será informado o id da chave RSA do HSM usada para abrir o envelope. Este método de importação pode ser utilizado no modo de operação FIPS.
TacNDJavaLib.SYM_WRAPPED_KEY_BLOB Define uma chave simétrica encriptada por uma KEK (Key Encryption Key) também simétrica. O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.HOTP_BLOB Define a importação de um objeto tipo HTOP para o domínio do Usuário.
TacNDJavaLib.PUBLICKEY_BLOB_HSM Será importada uma chave pública de um par de chaves RSA/ECC no formato DER para dentro do HSM. O nAlgId poderá ter os seguintes valores especificados na tabela abaixo.
TacNDJavaLib.WRAPPED_KEY_BLOB Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica.
TacNDJavaLib.WRAPPED_KEY_BLOB_P8 Importa uma chave encriptada por uma KEK (Key Encryption Key).O parâmetro hKEKey deverá conter o contexto de uma chave simétrica com os devidos parâmetros de utilização já definidos, como modo(de acordo com o algoritmo) e padding. A chave será decriptada e importada para a base do HSM diretamente, sem formatação específica. Na operação de exportação de chave o formato da chave privada será PKCS#8.

Tabela de TacNDJavaLib.PUBLICKEY_BLOB_HSM.
Valor Significado
TacNDJavaLib.ALG_OBJ_PUBKEY_RSA_BLOB Chave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOB Chave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOB Chave RSA importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
nAlgIdAlgoritmo da chave importada. Ver createKey.
dwFlagsParâmetros adicionais de chave. Ver createKey.
pbInDataBuffer contendo a chave a ser importada, de acordo com o especificado com o passado em dwBlobType.
dwInDataLenTamanho do buffer pbInData a ser importado.
hKeyContexto da chave importada.
Exceções
TacException

◆ PKCS12Import()

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

Importa uma chave/certificado de um arquivo no formato PKCS#12 para o HSM.

Parâmetros
szKeyNome que a chave importada terá dentro do HSM.
szPathFileLocalização do arquivo físico PFX a ser importado.
szPasswordSenha para abertura do arquivo PFX.
szCertNome que o certificado importado terá dentro do HSM.
isExportableImporta a chave de forma exportável.
Obsoleto(a)
Exceções
TacException

◆ importPKCS12() [1/3]

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

Importa uma chave/certificado de um arquivo no formato PKCS#12 para o HSM.

Parâmetros
szPathFileLocalização do arquivo físico PFX a ser importado.
szPasswordSenha para abertura do arquivo PFX.
szKeyNome que a chave importada terá dentro do HSM.
szCertNome que o certificado importado terá dentro do HSM.
isExportableImporta a chave de forma exportável.
Exceções
TacException

◆ importPKCS12() [2/3]

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

Importa uma chave/certificado de um buffer no formato PKCS#12 para o HSM.

Parâmetros
pbPkcs12PKCS#12.
szPasswordSenha do PKCS#12.
szKeyNome que a chave importada terá dentro do HSM.
szCertNome que o certificado importado terá dentro do HSM.
isExportableImporta a chave privada de forma exportável.
Exceções
TacException

◆ importPKCS12() [3/3]

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

Importa uma chave/certificado de um buffer no formato PKCS#12 para o HSM.

Parâmetros
pbPkcs12PKCS#12.
szPasswordSenha do PKCS#12.
szKeyNome que a chave importada terá dentro do HSM.
nKeyAttrAtributos da chave que será importada no HSM. Ver possíveis opções no parâmetro dwFlags em Dinamo.createKey().
szCertNome que o certificado importado terá dentro do HSM.
szPubKeyNome que a chave pública importada terá dentro do HSM. Pode ser null para não importar o objeto de chave pública.
nReservedReservado para uso futuro. Deve ser 0.
Exceções
TacException

◆ exportPKCS12() [1/2]

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

Exporta uma chave e um certificado do HSM no formato PKCS#12.

Parâmetros
passwordSenha para proteção do PFX.
keyNome da chave que será exportada para o PFX.
certNome do certificado que será exportado para o PFX.
strReservedReservado para uso futuro.
dwFlagsPassar 0 ou uma das opções da tabela abaixo.
Atributo Valor
DN_EXPORT_P12_LEGACY Exporta a chave e certificado e gera o arquivo PKCS#12 em software.
Retorna
Array de bytes no formato PFX contendo a chave e certificado especificados.
Exceções
TacException

◆ exportPKCS12() [2/2]

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

Exporta uma chave e um certificado do HSM no formato PKCS#12.

Parâmetros
passwordSenha para proteção do PFX.
keyNome da chave que será exportada para o PFX.
certNome do certificado que será exportado para o PFX.
Retorna
Array de bytes no formato PFX contendo a chave e certificado especificados.
Exceções
TacException

◆ PKCS8ExportKey()

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

Exporta uma chave assimétrica em um arquivo no formato PKCS#8 para o HSM.

Parâmetros
szKeyIdIdentificação da chave.
szSecretSenha do arquivo PKCS#8 (deve ser maior que 16 caracteres).
Exceções
TacException

◆ PKCS8ImportKey()

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

Importa uma chave assimétrica de um arquivo no formato PKCS#8 para o HSM.

Parâmetros
szKeyIdIdentificação da chave.
szSecretSenha do arquivo PKCS#8 (deve ser maior que 16 caracteres).
dwKeyAlgIdentificador do algoritmo da chave. Chaves Assimétricas RSA
Valor Significado
TacNDJavaLib.ALG_RSA_512 RSA com módulo de 512 bits.
TacNDJavaLib.ALG_RSA_1024 RSA com módulo de 1024 bits.
TacNDJavaLib.ALG_RSA_2048 RSA com módulo de 2048 bits.
TacNDJavaLib.ALG_RSA_4096 RSA com módulo de 4096 bits.
TacNDJavaLib.ALG_RSA_1152 RSA com módulo de 1152 bits.
TacNDJavaLib.ALG_RSA_1408 RSA com módulo de 1408 bits.
TacNDJavaLib.ALG_RSA_1984 RSA com módulo de 1984 bits.
bKeyEnvelopeBinário do arquivo formato PKCS#8
isExportableImporta a chave de forma exportável.
Exceções
TacException

◆ getAlgId() [1/2]

int getAlgId ( byte[] ctxKey) throws TacException

Recupera o algoritmo da chave.

Parâmetros
ctxKeyHandle da chave, recuperado por getKeyHandle().
Retorna
Exceções
TacException

◆ getAlgId() [2/2]

int getAlgId ( String keyId) throws TacException

Recupera qual o algoritmo da chave.

Parâmetros
keyIdIdentificador da chave
Retorna
Exceções
TacException

◆ readObject()

byte[] readObject ( String szObject) throws TacException

Exporta um objeto do HSM para a máquina local.

Parâmetros
szObjectNome do objeto a ser exportado.
Retorna
Buffer contendo o objeto exportado.
Exceções
TacException

◆ writeObject()

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

Importa um objeto da máquina local para o HSM.

Parâmetros
szObjectNome do objeto a ser importado.
jbObjectDataDados do objeto que será importado.
Exceções
TacException

◆ getKeyHandle()

byte[] getKeyHandle ( String keyId) throws TacException

Recupera um handle de chave.

Deve ser liberado com o método releaseKey().

Parâmetros
keyIdIdentificador da chave no formato texto
Retorna
handle da chave
Exceções
TacException

◆ releaseKeyHandle()

void releaseKeyHandle ( byte[] keyHandle) throws TacException

Libera um handle de chave.

Parâmetros
keyHandleHandle da chave recuperada por getKeyHandle().
Exceções
TacException

◆ isKeyExportable() [1/2]

boolean isKeyExportable ( byte[] keyHandle) throws TacException

Verifica se a chave é exportável.

Parâmetros
keyHandleHandle da chave recuperado por getKeyHandle().
Retorna
Estado da chave.
Exceções
TacException

◆ isKeyExportable() [2/2]

boolean isKeyExportable ( String keyId) throws TacException

Verifica se a chave é exportável.

Parâmetros
keyIdIdentificador da chave.
Retorna
Estado da chave.
Exceções
TacException

◆ setObjLabel()

void setObjLabel ( String objId,
String label ) throws TacException

Define o atributo label do metadado do objeto.

Parâmetros
objIdIdentificador do objeto
labelLabel
Exceções
TacException

◆ createMap()

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

Cria um objeto de mapeamento(MAP) dentro do HSM.

Parâmetros
mapIdIdentificador do objeto MAP.
objId1Identificador do objeto apontado pelo primeiro slot do MAP.
objId1AlgAlgoritmo do objeto indicado por objId1Alg. Pode ser qualquer tipo de objeto(ver createKey) ou TacNDJavaLib.ALG_OBJ_NULL.
objId2Identificador do objeto apontado pelo segundo slot do MAP.
objId2AlgAlgoritmo do objeto indicado por objId2Alg. Pode ser qualquer tipo de objeto(ver createKey) ou TacNDJavaLib.ALG_OBJ_NULL.
Exceções
Exception

◆ listObjects()

String[] listObjects ( ) throws TacException

Lista os objetos do HSM.

Retorna
Array de strings contendo a lista de objetos no HSM.
Exceções
TacException