Chaves

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

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. Mais...
 
byte[] getUserKey (String strKeyName) throws TacException
 Recupera o contexto de uma chave, desde que o Usuário corrente tenha acesso, armazenada dentro do HSM. Mais...
 
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. Mais...
 
void deleteKey (String keyId) throws TacException
 Apaga a chave. Mais...
 
void deleteKeyIfExists (String keyId) throws TacException
 Apaga a chave se ela existir. Mais...
 
byte[] createKeyMaterial (int keyAlg) throws TacException
 Cria uma nova chave criptografica e retorna o seu conteúdo sem persistir no HSM. Mais...
 
void createKey (String keyId, int keyAlg, boolean exportable) throws TacException
 Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM. Mais...
 
void createKey (String keyId, int keyAlg) throws TacException
 Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM. Mais...
 
void createKey (String keyId, int keyAlg, int dwFlags) throws TacException
 Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM. Mais...
 
byte[] exportKey (String szKey, int dwBlobType) throws TacException
 Exporta uma chave do HSM para a máquina local. Mais...
 
void importKey (String szKey, int dwBlobType, int nAlgId, byte[] pbInData, boolean isExportable) throws TacException
 Importa uma chave da máquina local para o HSM. Mais...
 
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. Mais...
 
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. Mais...
 
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. Mais...
 
byte[] exportPKCS12 (String password, String key, String cert, String strReserved, int dwReserved) throws TacException
 Exporta uma chave e um certificado do HSM no formato PKCS#12. Mais...
 
byte[] exportPKCS12 (String password, String key, String cert) throws TacException
 Exporta uma chave e um certificado do HSM no formato PKCS#12. Mais...
 
byte[] PKCS8ExportKey (String szKeyId, String szSecret) throws TacException
 Exporta uma chave assimétrica em um arquivo no formato PKCS#8 para o HSM. Mais...
 
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. Mais...
 
int getAlgId (byte[] ctxKey) throws TacException
 Reconhece o algoritmo de uma chave. Mais...
 

Descrição Detalhada

Gerência do ciclo de vida de chaves criptográficas no 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.

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.
Descontinuado(a):
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.
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.
void deleteKey ( String  keyId) throws TacException

Apaga a chave.

Parâmetros
keyIdIdentificador da chave
Exceções
TacException
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
byte [] createKeyMaterial ( int  keyAlg) throws TacException

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

Parâmetros
keyAlgAlgoritmo a ser utilizado:
Chaves Simetricas
ValorSignificado
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
void createKey ( String  keyId,
int  keyAlg,
boolean  exportable 
) throws TacException

Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM.

A chave gerada será exportável.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:
Chaves Simetricas
ValorSignificado
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 Assimetricas RSA
ValorSignificado
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 Assimetricas ECC
ValorSignificado
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
void createKey ( String  keyId,
int  keyAlg 
) throws TacException

Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM.

A chave gerada será exportável.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:
Chaves Simetricas
ValorSignificado
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 Assimetricas RSA
ValorSignificado
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 Assimetricas ECC
ValorSignificado
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
void createKey ( String  keyId,
int  keyAlg,
int  dwFlags 
) throws TacException

Cria e armazena uma chave criptografica associada a um algoritmo de acordo com os parametros informados dentro do HSM.

Parâmetros
keyIdIdentificador da chave
keyAlgAlgoritmo a ser utilizado:
Chaves Simetricas
ValorSignificado
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 Assimetricas RSA
ValorSignificado
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 Assimetricas ECC
ValorSignificado
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).
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.
Exceções
Exception
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
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 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 atraves 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_BLOBChave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOBChave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOBChave 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 específicado com o passado em dwBlobType.
Exceções
TacException
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 atraves 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_BLOBChave RSA importada no formato PKCS#1. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_ECC_BLOBChave ECC importada no formato SubjectPublicKeyInfo. O tamanho da chave é detectado automaticamente.
TacNDJavaLib.ALG_OBJ_PUBKEY_SPKI_RSA_BLOBChave 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 específicado com o passado em dwBlobType.
dwInDataLenTamanho do buffer pbInData a ser importado.
Exceções
TacException
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.
Descontinuado(a):
Exceções
TacException
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
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.
Exceções
TacException
byte [] exportPKCS12 ( String  password,
String  key,
String  cert,
String  strReserved,
int  dwReserved 
) throws TacException

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

Parâmetros
passwordSenha para abertura do PFX.
keyNome da chave que será exportada para o PFX.
certNome do certificado que será exportado para o PFX.
strReservedReservado para uso futuro.
dwReservedReservado para uso futuro.
Retorna
Array de bytes no formato PFX contendo a chave e certificado especificados.
Exceções
TacException
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 abertura 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
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
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 Assimetricas RSA
ValorSignificado
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.
bKeyEnvelopeBinario do arquivo formato PKCS#8
isExportableImporta a chave de forma exportável.
Exceções
TacException
int getAlgId ( byte[]  ctxKey) throws TacException

Reconhece o algoritmo de uma chave.

Parâmetros
ctxKeyIdentificador binário da chave
Retorna
Exceções
TacException