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
-
strKeyName Identificador da chave no HSM. nFlags
- Retorna
- Array de bytes onde representa um handle da chave e não o conteúdo dela.
- Exceções
-
TacException Exceção para erros na recuperação do contexto da chave.
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
-
strKeyName Identificador da chave no HSM.
- Retorna
- Array de bytes onde representa um handle da chave e Não o conteúdo dela.
- Exceções
-
TacException Exceçã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
-
strKeyName Identificador da chave no HSM. algId Algoritmo da chave. isTemporary Informa se a chave é temporária. isExportable Informa se a chave é exportável.
- Retorna
- Array de bytes onde representa um handle da chave e Não o conteúdo dela.
- Exceções
-
TacException Exceção para erros na recuperação do contexto da chave.
void deleteKey | ( | String | keyId | ) | throws TacException |
Apaga a chave.
- Parâmetros
-
keyId Identificador 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
-
keyId Identificador 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
-
keyAlg Algoritmo a ser utilizado:
Chaves SimetricasValor 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
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
-
keyId Identificador da chave keyAlg Algoritmo a ser utilizado:
Chaves SimetricasValor 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. 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. 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). exportable A 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
-
keyId Identificador da chave keyAlg Algoritmo a ser utilizado:
Chaves SimetricasValor 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. 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. 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
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
-
keyId Identificador da chave keyAlg Algoritmo a ser utilizado:
Chaves SimetricasValor 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. 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. 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). dwFlags Parâ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
-
szKey Nome da chave a ser exportada. dwBlobType Formato 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
-
szKey Nome que a chave importada terá dentro do HSM. dwBlobType Formato 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. 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. nAlgId Algoritmo da chave importada. Ver createKey. isExportable Sinaliza que a chave importada será exportável. pbInData Buffer 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
-
szKey Nome que a chave importada terá dentro do HSM. dwBlobType Formato 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. 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. nAlgId Algoritmo da chave importada. Ver createKey. dwFlags Parâmetros adicionais de chave. Ver createKey. pbInData Buffer contendo a chave a ser importada, de acordo com o específicado com o passado em dwBlobType. dwInDataLen Tamanho 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
-
szKey Nome que a chave importada terá dentro do HSM. szPathFile Localização do arquivo físico PFX a ser importado. szPassword Senha para abertura do arquivo PFX. szCert Nome que o certificado importado terá dentro do HSM. isExportable Importa a chave de forma exportável.
- 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
-
szKey Nome que a chave importada terá dentro do HSM. szPathFile Localização do arquivo físico PFX a ser importado. szPassword Senha para abertura do arquivo PFX. szCert Nome que o certificado importado terá dentro do HSM. isExportable Importa 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
-
password Senha para abertura do PFX. key Nome da chave que será exportada para o PFX. cert Nome do certificado que será exportado para o PFX. strReserved Reservado para uso futuro. dwReserved Reservado 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
-
password Senha para abertura do PFX. key Nome da chave que será exportada para o PFX. cert Nome 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
-
szKeyId Identificação da chave. szSecret Senha 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
-
szKeyId Identificação da chave. szSecret Senha do arquivo PKCS#8 (deve ser maior que 16 caracteres). dwKeyAlg Identificador do algoritmo da chave. Chaves Assimetricas 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. bKeyEnvelope Binario do arquivo formato PKCS#8 isExportable Importa a chave de forma exportável.
- Exceções
-
TacException
int getAlgId | ( | byte[] | ctxKey | ) | throws TacException |
Reconhece o algoritmo de uma chave.
- Parâmetros
-
ctxKey Identificador binário da chave
- Retorna
- Exceções
-
TacException