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

Descrição detalhada

Operações de hash de criptogragia simétrica e assimétrica.

Funções

byte[] createHash (int nAlgId, byte[] hKey, int nFlags) throws TacException
 Cria um contexto para cálculo de Hash.
 
byte[] createHash (int nAlgId) throws TacException
 Cria um contexto para cálculo do Hash.
 
byte[] genEcdhKey (int dwOP, String szPriKey, byte[] pbInData) throws TacException
 Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman).
 
byte[] genEcdhKeyX963 (int dwOP, String szPriKey, String szTargetKeyName, int dwTargetKeyAlg, int dwTargetKeyAttributes, byte[] pbPubKey, byte[] pbKDFData, int dwFlags) throws TacException
 Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman) padrão ANSI X9.63.
 
byte[] genEcdhKeyX963Sha256 (String szPriKey, String szTargetKeyName, int dwTargetKeyAlg, boolean isExportable, boolean isTemporary, byte[] pbPubKey, byte[] pbKDFData) throws TacException
 Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman) padrão ANSI X9.63 SHA256.
 
byte[] getRand (int size) throws TacException
 Gera um buffer pseudo-aleatório, gerado no HSM, para uso criptográfico.
 
byte[] encrypt (String strKeyId, byte[] byInput) throws TacException
 Criptografa um buffer de dados.
 
byte[] encrypt (String strKeyId, byte[] byInput, int flags) throws TacException
 Criptografa um buffer de dados.
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Criptografa dados.
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode, int flags) throws TacException
 Criptografa dados.
 
byte[] decrypt (String keyId, byte[] input) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, int flags) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt.
 
byte[] decrypt (String keyId, byte[] input, byte[] byIV, int dwPadding, int dwMode, int flags) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt.
 
int verifySignature (String keyId, int algHash, byte[] bSignature, byte[] bMessage) throws TacException
 Verifica uma mensagem.
 
int verifySignature (String keyId, int algHash, int padding, byte[] bSignature, byte[] bMessage) throws TacException
 Verifica uma mensagem.
 
int verifySignature (byte[] hPublicKey, byte[] hHash, byte[] bSignature) throws TacException
 Verifica uma mensagem.
 
int verifySignature (byte[] hPublicKey, int hashAlg, byte[] bSignature, byte[] bMessage) throws TacException
 Verifica uma mensagem.
 
byte[] signHash (String keyId, int algHash, byte[] bMessage) throws TacException
 Assina um dado a partir do seu conteúdo.
 
byte[] sign (String keyId, int algHash, byte[] bMessage) throws TacException
 Assina um dado a partir do seu conteúdo.
 
byte[] sign (String keyId, int algHash, int padding, byte[] bMessage) throws TacException
 Assina um dado a partir do seu conteúdo.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash) throws TacException
 Assina um dado a partir do seu hash previamente computado.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, boolean useOID) throws TacException
 Assina um dado a partir do seu hash previamente computado.
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, int nFlags) throws TacException
 Assina um dado a partir do seu hash previamente computado.
 
byte[] signHashedData (byte[] privateKeyHandle, int algHash, byte[] bHash, int nFlags) throws TacException
 Assina um dado a partir do seu hash previamente computado.
 
byte[] generateHash (int algId, int flags, byte[] data) throws TacException
 Gera um hash em apenas uma chamada.
 
byte[] generateHash (int algId, byte[] data) throws TacException
 Gera um hash em apenas uma chamada.
 
void initHash (int algId, int flags) throws TacException
 Inicializa uma operação de hash por partes.
 
void initHash (int algId) throws TacException
 Inicializa uma operação hash por partes.
 
void updateHash (byte[] data) throws TacException
 Atualiza uma operação de hash com mais dados.
 
byte[] endHash () throws TacException
 Finaliza uma operação de hash.
 
byte[] generateMAC (int algId, String macKey, int flags, byte[] data) throws TacException
 Gera um MAC em apenas uma chamada.
 
byte[] generateMAC (int algId, String macKey, byte[] data) throws TacException
 Gera um MAC em apenas uma chamada.
 
void initMAC (int algId, String macKey, int flags) throws TacException
 Inicializa uma operação MAC por partes.
 
void initMAC (int algId, String macKey) throws TacException
 Inicializa uma operação MAC por partes.
 
void updateMAC (byte[] data) throws TacException
 Atualiza uma operação de MAC com mais dados.
 
byte[] endMAC () throws TacException
 Finaliza uma operação de MAC.
 

Funções

◆ createHash() [1/2]

byte[] createHash ( int nAlgId,
byte[] hKey,
int nFlags ) throws TacException

Cria um contexto para cálculo de Hash.

Parâmetros
nAlgIdIdentificador do algoritmo a ser utilizado
hKeyContexto da chave a ser utilizado
nFlags
Retorna
Contexto para cálculo do hash
Exceções
TacException
Obsoleto(a)
Veja também
getUserKey(String nKey)

◆ createHash() [2/2]

byte[] createHash ( int nAlgId) throws TacException

Cria um contexto para cálculo do Hash.

Parâmetros
nAlgIdIndica o algoritmo associado ao contexto de hash.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
Retorna
Exceções
TacException

◆ genEcdhKey()

byte[] genEcdhKey ( int dwOP,
String szPriKey,
byte[] pbInData ) throws TacException

Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman).

Parâmetros
dwOPIndica o algoritmo associado ao contexto de hash.
Valor Significado
TacNDJavaLib.DN_GEN_KEY_KDF_RAW_SECRET Retorna no retorno do método a chave secreta ECDH sem derivação.
Recomendamos derivar uma chave a partir desta, para comunicação com o par. O parâmetro passado em pbInData deve ser um buffer contendo a chave pública do par no formato DER.
szPriKeyString contendo o identificador da chave privada dentro do HSM. Este identificador Não deve conter espaços ou caracteres especiais. Caracteres maiúsculos e minúsculos são diferenciados (case sensitive).
pbInDataDados de entrada da função. Deve ser preenchido de acordo com o descrito nas opções de dwOP.
Retorna
Buffer contendo a chave/segredo de saída.
Exceções
TacException

◆ genEcdhKeyX963()

byte[] genEcdhKeyX963 ( int dwOP,
String szPriKey,
String szTargetKeyName,
int dwTargetKeyAlg,
int dwTargetKeyAttributes,
byte[] pbPubKey,
byte[] pbKDFData,
int dwFlags ) throws TacException

Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman) padrão ANSI X9.63.

Parâmetros
dwOPIndica o algoritmo utilizado.
Valor Significado
TacNDJavaLib.DN_GEN_KEY_X9_63_SHA256 Deriva uma chave secreta ECDH no padrão ANSI X9.63 utilizando SHA256.
szPriKeyIdentificador da chave privada dentro do HSM.
szTargetKeyNameIdentificador da chave que será gerada no HSM. Somente caracteres alfanuméricos e underline '_' com tamanho máximo de TacNDJavaLib.MAX_OBJ_ID. Caracteres maiúsculos e minúsculos são diferenciados (case sensitive). Este parâmetro pode ser null, caso queira que o conteúdo da chave gerada seja retornado pelo método.
dwTargetKeyAlgAlgoritmo da chave que será gerada no HSM. Ver opções no método createKey.
dwTargetKeyAttributesParâmetros adicionais da chave que será gerada no HSM. Ver createKey.
pbPubKeyChave pública, da outra parte, no formato DER. O tamanho máximo dos buffers de pbPubKey e pbKDFData juntos não deve ultrapassar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
pbKDFDataDados que serão utilizados na derivação da chave. O tamanho máximo dos buffers de pbPubKey e pbKDFData juntos não deve ultrapassar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
dwFlagsReservado para uso futuro. Deve-se passar 0.
Retorna
Chave/segredo de saída.
Exceções
TacException

◆ genEcdhKeyX963Sha256()

byte[] genEcdhKeyX963Sha256 ( String szPriKey,
String szTargetKeyName,
int dwTargetKeyAlg,
boolean isExportable,
boolean isTemporary,
byte[] pbPubKey,
byte[] pbKDFData ) throws TacException

Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman) padrão ANSI X9.63 SHA256.

Parâmetros
szPriKeyIdentificador da chave privada dentro do HSM.
szTargetKeyNameIdentificador da chave que será gerada no HSM. Somente caracteres alfanuméricos e underline '_' com tamanho máximo de TacNDJavaLib.MAX_OBJ_ID. Caracteres maiúsculos e minúsculos são diferenciados (case sensitive). Este parâmetro pode ser null, caso queira que o conteúdo da chave gerada seja retornado pelo método.
dwTargetKeyAlgAlgoritmo da chave que será gerada no HSM. Ver opções no método createKey.
isTemporaryInforma se a chave, que será gerada no HSM, é temporária.
isExportableInforma se a chave, que será gerada no HSM, é exportável.
pbPubKeyChave pública, da outra parte, no formato DER. O tamanho máximo dos buffers de pbPubKey e pbKDFData juntos não deve ultrapassar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
pbKDFDataDados que serão utilizados na derivação da chave. O tamanho máximo dos buffers de pbPubKey e pbKDFData juntos não deve ultrapassar TacNDJavaLib.DN_ECDH_GEN_KEY_MAX_DATA.
Retorna
Chave/segredo de saída. Retornará null, caso o szTargetKeyName NÃO seja null.
Exceções
TacException

◆ getRand()

byte[] getRand ( int size) throws TacException

Gera um buffer pseudo-aleatório, gerado no HSM, para uso criptográfico.

Parâmetros
sizeTamanho do buffer que será gerado.
Retorna
Buffer pseudo-aleatório.
Exceções
TacException

◆ encrypt() [1/4]

byte[] encrypt ( String strKeyId,
byte[] byInput ) throws TacException

Criptografa um buffer de dados.

Parâmetros
strKeyIdIdentificador da chave.
byInputBuffer que contém os dados a serem criptografados.
Retorna
Retorna os dados criptografados.
Exceções
TacException

◆ encrypt() [2/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
int flags ) throws TacException

Criptografa um buffer de dados.

Parâmetros
strKeyIdIdentificador da chave.
byInputBuffer que contém os dados a serem criptografados.
flagsIndica opções adicionais para a operação.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING Não faz padding RSA PKCS#1.5. Pode ser utilizada juntamente com a flag TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza a chave RSA de maneira direta. Encriptação com chave privada e decriptação com pública. Pode ser utilizada juntamente com a flag TacNDJavaLib.D_NO_RSA_PADDING.
Retorna
Retorna os dados criptografados.
Exceções
TacException
Anotações
Essa API suporta operações RSA feitas diretamente nesta função. Os dados para serem operados devem ter comprimento igual ou menor que o tamanho da chave menos 11 bytes. Quando utilizada a chave pública para criptografia o padding utilizado é PKCS#1 tipo 2 e no processo de decriptografia, o padding é verificado e retirado. Para operações com a chave privada, utiliza-se o padding PKCS#1 tipo 1. O HSM irá verificar a formatação do padding mesmo quando a operação não tem padding definido como em TacNDJavaLib.D_NO_RSA_PADDING.

◆ encrypt() [3/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
byte[] byIV,
int dwPadding,
int dwMode ) throws TacException

Criptografa dados.

Parâmetros
strKeyIdIdentificador da chave.
byInputBuffer que contêm os dados a serem criptografados.
byIVBuffer contendo o IV(Initialization Vector). Pode ser passado null para Não ser utilizado ou utilizar o padrão. Vetor de inicialização usado com algoritmos de bloco de acordo com o seu modo de operação de criptografia simétrica. O tamanho do vetor de inicialização depende do algoritmo simétrico utilizado, já que tem o mesmo comprimento do bloco de operação.
Válido apenas para chaves simétricas.
dwPaddingA biblioteca pode trabalhar as seguintes formas de padding.
Valor Significado
TacNDJavaLib.D_NO_PADDING Não é feito padding, os dados passados para criptografia já deve ter comprimento múltiplo do tamanho do bloco de operação.
TacNDJavaLib.D_PKCS5_PADDING O padding é feito seguindo o padrão definido no PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Caso o comprimento dos dados Não seja múltiplo do tamanho do bloco de operação, ele é completado com zeros a direita até que tenha um tamanho suportado pelo algoritmo. Este tipo de padding Não deve ser usado com dados onde pode haver bytes com valor zero, pois pode gerar ambiguidade na operação de decriptografia. Caso os dados contenham apenas texto ASCII, por exemplo, Não há problema.

Válido apenas para chaves simétricas.
dwModeIndica o modo de operação de criptografia do algoritmo de bloco.
Valor Significado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB)
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC)
TacNDJavaLib.MODE_GCM Galois/Counter Mode. A tag de autenticação está localizada logo após os dados encriptados/decriptados com o tamanho de (tamanho retornado - tamanho da mensagem em texto claro).
TacNDJavaLib.MODE_KW AESWRAP de acordo com o padrão RFC-3394. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA6A6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP com padding de acordo com o padrão RFC-5649. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA65959A6000000000000000000000000.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda não suportada.
Válido apenas para chaves simétricas e algoritmos de bloco.

Válido apenas para chaves simétricas e algoritmos de bloco.
Retorna
Retorna os dados criptografados.
Exceções
TacException

◆ encrypt() [4/4]

byte[] encrypt ( String strKeyId,
byte[] byInput,
byte[] byIV,
int dwPadding,
int dwMode,
int flags ) throws TacException

Criptografa dados.

Parâmetros
strKeyIdIdentificador da chave.
byInputBuffer que contêm os dados a serem criptografados.
byIVBuffer contendo o IV(Initialization Vector). Pode ser passado null para Não ser utilizado ou utilizar o padrão. Vetor de inicialização usado com algoritmos de bloco de acordo com o seu modo de operação de criptografia simétrica. O tamanho do vetor de inicialização depende do algoritmo simétrico utilizado, já que tem o mesmo comprimento do bloco de operação.
Válido apenas para chaves simétricas.
dwPaddingA biblioteca pode trabalhar as seguintes formas de padding.
Valor Significado
TacNDJavaLib.D_NO_PADDING Não é feito padding, os dados passados para criptografia já deve ter comprimento múltiplo do tamanho do bloco de operação.
TacNDJavaLib.D_PKCS5_PADDING O padding é feito seguindo o padrão definido no PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Caso o comprimento dos dados Não seja múltiplo do tamanho do bloco de operação, ele é completado com zeros a direita até que tenha um tamanho suportado pelo algoritmo. Este tipo de padding Não deve ser usado com dados onde pode haver bytes com valor zero, pois pode gerar ambiguidade na operação de decriptografia. Caso os dados contenham apenas texto ASCII, por exemplo, Não há problema.

Válido apenas para chaves simétricas.
dwModeIndica o modo de operação de criptografia do algoritmo de bloco.
Valor Significado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB)
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC)
TacNDJavaLib.MODE_GCM Galois/Counter Mode. A tag de autenticação está localizada logo após os dados encriptados/decriptados com o tamanho de (tamanho retornado - tamanho da mensagem em texto claro).
TacNDJavaLib.MODE_KW AESWRAP de acordo com o padrão RFC-3394. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA6A6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP com padding de acordo com o padrão RFC-5649. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA65959A6000000000000000000000000.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda não suportada.
Válido apenas para chaves simétricas e algoritmos de bloco.

Válido apenas para chaves simétricas e algoritmos de bloco.
flagsIndica opções adicionais para a operação.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING Não faz padding RSA PKCS#1.5.Pode ser utilizada juntamente com a flag TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza a chave RSA de maneira direta. Encriptação com chave privada decriptação com pública. Pode ser utilizada juntamente com a flag TacNDJavaLib.D_NO_RSA_PADDING.
Retorna
Retorna os dados criptografados.
Exceções
TacException
Anotações
Essa API suporta operações RSA feitas diretamente nesta função. Os dados para serem operados devem ter comprimento igual ou menor que o tamanho da chave menos 11 bytes. Quando utilizada a chave pública para criptografia o padding utilizado é PKCS#1 tipo 2 e no processo de decriptografia, o padding é verificado e retirado. Para operações com a chave privada, utiliza-se o padding PKCS#1 tipo 1. O HSM irá verificar a formatação do padding mesmo quando a operação não tem padding definido como em TacNDJavaLib.D_NO_RSA_PADDING. As operações de encriptação e decriptação RSA só são habilitadas em modo não restrito (NRM).

◆ decrypt() [1/4]

byte[] decrypt ( String keyId,
byte[] input ) throws TacException

Decriptografa dados, muitas vezes cifrado pela função DEncrypt.

Parâmetros
keyIdIdentificador da chave.
inputBuffer que contêm os dados a serem decriptografados. Para operações simétricas de bloco, é necessário que o tamanho dos dados seja sempre múltiplo do bloco usado pelo algoritmo em questão.
Retorna
Retorna os dados decriptografados.
Exceções
TacException

◆ decrypt() [2/4]

byte[] decrypt ( String keyId,
byte[] input,
int flags ) throws TacException

Decriptografa dados, muitas vezes cifrado pela função DEncrypt.

Parâmetros
keyIdIdentificador da chave.
inputBuffer que contêm os dados a serem decriptografados. Para operações simétricas de bloco, é necessário que o tamanho dos dados seja sempre múltiplo do bloco usado pelo algoritmo em questão.
flagsIndica opções adicionais para a operação.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING Não faz padding RSA PKCS#1.5.Pode ser utilizada juntamente com a flag TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza a chave RSA de maneira direta. Encriptação com chave privada decriptação com pública. Pode ser utilizada juntamente com a flag TacNDJavaLib.D_NO_RSA_PADDING.
Retorna
Retorna os dados decriptografados.
Exceções
TacException
Anotações
Essa API suporta operações RSA feitas diretamente nesta função. Os dados para serem operados devem ter comprimento igual ou menor que o tamanho da chave menos 11 bytes. Quando utilizada a chave pública para criptografia o padding utilizado é PKCS#1 tipo 2 e no processo de decriptografia, o padding é verificado e retirado. Para operações com a chave privada, utiliza-se o padding PKCS#1 tipo 1. O HSM irá verificar a formatação do padding mesmo quando a operação não tem padding definido como em TacNDJavaLib.D_NO_RSA_PADDING. As operações de encriptação e decriptação RSA só são habilitadas em modo não restrito (NRM).

◆ decrypt() [3/4]

byte[] decrypt ( String keyId,
byte[] input,
byte[] byIV,
int dwPadding,
int dwMode ) throws TacException

Decriptografa dados, muitas vezes cifrado pela função DEncrypt.

Parâmetros
keyIdIdentificador da chave.
inputBuffer que contêm os dados a serem decriptografados. Para operações simétricas de bloco, é necessário que o tamanho dos dados seja sempre múltiplo do bloco usado pelo algoritmo em questão.
byIVBuffer contendo o IV(Initialization Vector). Pode ser passado null para Não ser utilizado ou utilizar o padrão. Vetor de inicialização usado com algoritmos de bloco de acordo com o seu modo de operação de criptografia simétrica. O tamanho do vetor de inicialização depende do algoritmo simétrico utilizado, já que tem o mesmo comprimento do bloco de operação.

Válido apenas para chaves simétricas.
dwPaddingA biblioteca pode trabalhar as seguintes formas de padding.
Valor Significado
TacNDJavaLib.D_NO_PADDING Não é feito padding, os dados passados para criptografia já deve ter comprimento múltiplo do tamanho do bloco de operação.
TacNDJavaLib.D_PKCS5_PADDING O padding é feito seguindo o padrão definido no PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Caso o comprimento dos dados Não seja múltiplo do tamanho do bloco de operação, ele é completado com zeros a direita até que tenha um tamanho suportado pelo algoritmo. Este tipo de padding Não deve ser usado com dados onde pode haver bytes com valor zero, pois pode gerar ambiguidade na operação de decriptografia. Caso os dados contenham apenas texto ASCII, por exemplo, Não há problema.

Válido apenas para chaves simétricas.
dwModeIndica o modo de operação de criptografia do algoritmo de bloco.
Valor Significado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB)
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC)
TacNDJavaLib.MODE_GCM Galois/Counter Mode. A tag de autenticação está localizada logo após os dados encriptados/decriptados com o tamanho de (tamanho retornado - tamanho da mensagem em texto claro).
TacNDJavaLib.MODE_KW AESWRAP de acordo com o padrão RFC-3394. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA6A6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP com padding de acordo com o padrão RFC-5649. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA65959A6000000000000000000000000.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda não suportada.
Válido apenas para chaves simétricas e algoritmos de bloco.

Válido apenas para chaves simétricas e algoritmos de bloco.
Retorna
Retorna os dados decriptografados.
Exceções
TacException

◆ decrypt() [4/4]

byte[] decrypt ( String keyId,
byte[] input,
byte[] byIV,
int dwPadding,
int dwMode,
int flags ) throws TacException

Decriptografa dados, muitas vezes cifrado pela função DEncrypt.

Parâmetros
keyIdIdentificador da chave.
inputBuffer que contêm os dados a serem decriptografados. Para operações simétricas de bloco, é necessário que o tamanho dos dados seja sempre múltiplo do bloco usado pelo algoritmo em questão.
byIVBuffer contendo o IV(Initialization Vector). Pode ser passado null para Não ser utilizado ou utilizar o padrão. Vetor de inicialização usado com algoritmos de bloco de acordo com o seu modo de operação de criptografia simétrica. O tamanho do vetor de inicialização depende do algoritmo simétrico utilizado, já que tem o mesmo comprimento do bloco de operação.

Válido apenas para chaves simétricas.
dwPaddingA biblioteca pode trabalhar as seguintes formas de padding.
Valor Significado
TacNDJavaLib.D_NO_PADDING Não é feito padding, os dados passados para criptografia já deve ter comprimento múltiplo do tamanho do bloco de operação.
TacNDJavaLib.D_PKCS5_PADDING O padding é feito seguindo o padrão definido no PKCS#5.
TacNDJavaLib.D_ZERO_PADDING Caso o comprimento dos dados Não seja múltiplo do tamanho do bloco de operação, ele é completado com zeros a direita até que tenha um tamanho suportado pelo algoritmo. Este tipo de padding Não deve ser usado com dados onde pode haver bytes com valor zero, pois pode gerar ambiguidade na operação de decriptografia. Caso os dados contenham apenas texto ASCII, por exemplo, Não há problema.

Válido apenas para chaves simétricas.
dwModeIndica o modo de operação de criptografia do algoritmo de bloco.
Valor Significado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB)
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC)
TacNDJavaLib.MODE_GCM Galois/Counter Mode. A tag de autenticação está localizada logo após os dados encriptados/decriptados com o tamanho de (tamanho retornado - tamanho da mensagem em texto claro).
TacNDJavaLib.MODE_KW AESWRAP de acordo com o padrão RFC-3394. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA6A6A6A6A6A6A6A60000000000000000.
TacNDJavaLib.MODE_KWP AESWRAP com padding de acordo com o padrão RFC-5649. Utilizado nas operações de encriptação e decriptação de outras chaves. O padding utilizado é o definido como no padrão, qualquer outro valor será ignorado. Utilizar o IV padrão com valor 0xA65959A6000000000000000000000000.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda não suportada.
Válido apenas para chaves simétricas e algoritmos de bloco.

Válido apenas para chaves simétricas e algoritmos de bloco.
flagsIndica opções adicionais para a operação.
Valor Significado
TacNDJavaLib.D_NO_RSA_PADDING Não faz padding RSA PKCS#1.5.Pode ser utilizada juntamente com a flag TacNDJavaLib.D_FORCE_ACTUAL_RSA.
TacNDJavaLib.D_FORCE_ACTUAL_RSA Utiliza a chave RSA de maneira direta. Encriptação com chave privada decriptação com pública. Pode ser utilizada juntamente com a flag TacNDJavaLib.D_NO_RSA_PADDING.
Retorna
Retorna os dados decriptografados.
Exceções
TacException
Anotações
Essa API suporta operações RSA feitas diretamente nesta função. Os dados para serem operados devem ter comprimento igual ou menor que o tamanho da chave menos 11 bytes. Quando utilizada a chave pública para criptografia o padding utilizado é PKCS#1 tipo 2 e no processo de decriptografia, o padding é verificado e retirado. Para operações com a chave privada, utiliza-se o padding PKCS#1 tipo 1. O HSM irá verificar a formatação do padding mesmo quando a operação não tem padding definido como em TacNDJavaLib.D_NO_RSA_PADDING.

◆ verifySignature() [1/4]

int verifySignature ( String keyId,
int algHash,
byte[] bSignature,
byte[] bMessage ) throws TacException

Verifica uma mensagem.

Usa padding PKCS#1.

Parâmetros
keyIdIdentificador da chave privada de onde será extraída a chave pública para a verificação.
algHashAlgoritmo de hash utilizado na verificação da assinatura. Ver opções em initHash().
bSignatureAssinatura.
bMessageMensagem para verificação da assinatura.
Retorna
Exceções
TacException

◆ verifySignature() [2/4]

int verifySignature ( String keyId,
int algHash,
int padding,
byte[] bSignature,
byte[] bMessage ) throws TacException

Verifica uma mensagem.

Parâmetros
keyIdIdentificador da chave privada de onde será extraída a chave pública para a verificação.
algHashAlgoritmo de hash utilizado na verificação da assinatura. Ver opções em initHash().
paddingPadding utilizado na assinatura. Ver opções em setPadding().
bSignatureAssinatura.
bMessageMensagem para verificação da assinatura.
Retorna
Exceções
TacException

◆ verifySignature() [3/4]

int verifySignature ( byte[] hPublicKey,
byte[] hHash,
byte[] bSignature ) throws TacException

Verifica uma mensagem.

Parâmetros
hPublicKeyHandle da chave pública. importKey().
hHashHandle do hash da mensagem. Ver initHash().
bSignatureAssinatura.
Retorna
Exceções
TacException

◆ verifySignature() [4/4]

int verifySignature ( byte[] hPublicKey,
int hashAlg,
byte[] bSignature,
byte[] bMessage ) throws TacException

Verifica uma mensagem.

Parâmetros
hPublicKeyHandle da chave pública. Ver importKey().
hashAlgAlgoritmo do hash. Ver opções em initHash().
bSignatureAssinatura.
bMessageMensagem para verificação da assinatura.
Retorna
Exceções
TacException

◆ signHash()

byte[] signHash ( String keyId,
int algHash,
byte[] bMessage ) throws TacException

Assina um dado a partir do seu conteúdo.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura. Ver opções em initHash().
bMessageMensagem.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.
Obsoleto(a)
Utilize sign().

◆ sign() [1/2]

byte[] sign ( String keyId,
int algHash,
byte[] bMessage ) throws TacException

Assina um dado a partir do seu conteúdo.

Utiliza o padding padrão.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura. Ver opções em initHash().
bMessageMensagem.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.

◆ sign() [2/2]

byte[] sign ( String keyId,
int algHash,
int padding,
byte[] bMessage ) throws TacException

Assina um dado a partir do seu conteúdo.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura. Ver opções em initHash().
paddingPadding utilizado na assinatura. Ver opções em setPadding().
bMessageMensagem.
Retorna
A assinatura gerada.
Exceções
TacException

◆ signHashedData() [1/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash ) throws TacException

Assina um dado a partir do seu hash previamente computado.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
bHashHash previamente computado da mensagem de acordo com o algoritmo definido em algHash.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.

◆ signHashedData() [2/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash,
boolean useOID ) throws TacException

Assina um dado a partir do seu hash previamente computado.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
bHashHash previamente computado da mensagem de acordo com o algoritmo definido em algHash.
useOIDQuando este argumento for definido como false, o identificador do objeto (OID) não é colocado na frente do valor do hash, como previsto no PKCS#7, atributo DigestInfo.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.

◆ signHashedData() [3/4]

byte[] signHashedData ( String keyId,
int algHash,
byte[] bHash,
int nFlags ) throws TacException

Assina um dado a partir do seu hash previamente computado.

Parâmetros
keyIdIdentificador da chave privada.
algHashAlgoritmo de hash utilizado na assinatura.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
bHashHash previamente computado da mensagem de acordo com o algoritmo definido em algHash.
nFlagsDeve-se passar 0 ou algum modificador definido na lista abaixo.
Valor Significado
NO_HASH_OID Quando essa flag é especificada, o identificador do objeto (OID) não é colocado na frente do valor do hash, como previsto no PKCS#7, atributo DigestInfo.
Por padrão, esse o OID é sempre acrescentado à assinatura.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.

◆ signHashedData() [4/4]

byte[] signHashedData ( byte[] privateKeyHandle,
int algHash,
byte[] bHash,
int nFlags ) throws TacException

Assina um dado a partir do seu hash previamente computado.

Parâmetros
privateKeyHandleHandle da chave privada. Recuperado pelo método getKeyHandle().
algHashAlgoritmo de hash utilizado na assinatura.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
bHashHash previamente computado da mensagem de acordo com o algoritmo definido em algHash.
nFlagsDeve-se passar 0 ou algum modificador definido na lista abaixo.
Valor Significado
NO_HASH_OID Quando essa flag é especificada, o identificador do objeto (OID) não é colocado na frente do valor do hash, como previsto no PKCS#7, atributo DigestInfo.
Por padrão, esse o OID é sempre acrescentado à assinatura.
Retorna
A assinatura gerada.
Exceções
TacException
Anotações
O formato da assinatura gerada está em conformidade com as especificações do PKCS#1 v.1.5, utilizando padding tipo 1 quando for usada uma chave RSA, com o uso de chaves ECC a assinatura estará no padrão DER.

◆ generateHash() [1/2]

byte[] generateHash ( int algId,
int flags,
byte[] data ) throws TacException

Gera um hash em apenas uma chamada.

Parâmetros
algIdIndica o algoritmo de HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
flagsDeve ser passado zero.
dataMensagem.
Retorna
Hash gerado.
Exceções
TacException

◆ generateHash() [2/2]

byte[] generateHash ( int algId,
byte[] data ) throws TacException

Gera um hash em apenas uma chamada.

Parâmetros
algIdIndica o algoritmo de HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
dataMensagem.
Retorna
Hash gerado.
Exceções
TacException

◆ initHash() [1/2]

void initHash ( int algId,
int flags ) throws TacException

Inicializa uma operação de hash por partes.

Deve ser finalizada com endHash.

Parâmetros
algIdIndica o algoritmo de HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
flagsDeve ser passado zero.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initHash, os dados passados com updateHash e finalizada com endHash.
updateHash pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endHash para finalizar a operação e gerar o HASH.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endHash.

◆ initHash() [2/2]

void initHash ( int algId) throws TacException

Inicializa uma operação hash por partes.

Deve ser finalizada com endHash.

Parâmetros
algIdIndica o algoritmo de HASH.
Valor Significado
TacNDJavaLib.ALG_MD5 Algoritmo de hash MD5.
TacNDJavaLib.ALG_SHA1 Algoritmo de hash SHA1.
TacNDJavaLib.ALG_SSL_SHA1_MD5 Hash para autenticação de cliente em SSLv3.
TacNDJavaLib.ALG_SHA2_224 Algoritmo de hash SHA2 - 224.
TacNDJavaLib.ALG_SHA2_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
TacNDJavaLib.ALG_SHA3_224 Algoritmo de hash SHA3 - 224.
TacNDJavaLib.ALG_SHA3_256 Algoritmo de hash SHA3 - 256.
TacNDJavaLib.ALG_SHA3_384 Algoritmo de hash SHA3 - 384.
TacNDJavaLib.ALG_SHA3_512 Algoritmo de hash SHA3 - 512
TacNDJavaLib.ALG_IDENTITY_FUNC Algoritmo de função identidade.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initHash, os dados passados com updateHash e finalizada com endHash.
updateHash pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endHash para finalizar a operação e gerar o HASH.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endHash.

◆ updateHash()

void updateHash ( byte[] data) throws TacException

Atualiza uma operação de hash com mais dados.

Parâmetros
dataMensagem.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initHash, os dados passados com updateHash e finalizada com endHash.
updateHash pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endHash para finalizar a operação e gerar o HASH.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endHash.

◆ endHash()

byte[] endHash ( ) throws TacException

Finaliza uma operação de hash.

Retorna
HASH gerado.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initHash, os dados passados com updateHash e finalizada com endHash.
updateHash pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endHash para finalizar a operação e gerar o HASH.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endHash.

◆ generateMAC() [1/2]

byte[] generateMAC ( int algId,
String macKey,
int flags,
byte[] data ) throws TacException

Gera um MAC em apenas uma chamada.

Parâmetros
algIdIndica o algoritmo de MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AES Algoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
macKeyNome da chave MAC.
flagsDeve ser passado zero.
dataMensagem.
Retorna
MAC gerado.
Exceções
TacException

◆ generateMAC() [2/2]

byte[] generateMAC ( int algId,
String macKey,
byte[] data ) throws TacException

Gera um MAC em apenas uma chamada.

Parâmetros
algIdIndica o algoritmo de MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AES Algoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
macKeyNome da chave MAC.
dataMensagem.
Retorna
MAC gerado.
Exceções
TacException

◆ initMAC() [1/2]

void initMAC ( int algId,
String macKey,
int flags ) throws TacException

Inicializa uma operação MAC por partes.

Deve ser finalizada com endMAC.

Parâmetros
algIdIndica o algoritmo de MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AES Algoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
macKeyNome da chave MAC.
flagsDeve ser passado zero.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initMAC, os dados passados com updateMAC e finalizada com endMAC.
updateMAC pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endMAC para finalizar a operação e gerar o MAC.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endMAC.

◆ initMAC() [2/2]

void initMAC ( int algId,
String macKey ) throws TacException

Inicializa uma operação MAC por partes.

Deve ser finalizada com endMAC.

Parâmetros
algIdIndica o algoritmo de MAC.
Valor Significado
TacNDJavaLib.ALG_HMAC_MD5 Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DES Algoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AES Algoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
macKeyNome da chave MAC.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initMAC, os dados passados com updateMAC e finalizada com endMAC.
updateMAC pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endMAC para finalizar a operação e gerar o MAC.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endMAC.

◆ updateMAC()

void updateMAC ( byte[] data) throws TacException

Atualiza uma operação de MAC com mais dados.

Parâmetros
dataMensagem.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initMAC, os dados passados com updateMAC e finalizada com endMAC.
updateMAC pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endMAC para finalizar a operação e gerar o MAC.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endMAC.

◆ endMAC()

byte[] endMAC ( ) throws TacException

Finaliza uma operação de MAC.

Retorna
MAC gerado.
Exceções
TacException
Anotações
A operação por partes DEVE ser inicializada com initMAC, os dados passados com updateMAC e finalizada com endMAC.
updateMAC pode ser chamada uma ou várias vezes até que todo o conteúdo da mensagem seja enviado e logo após endMAC para finalizar a operação e gerar o MAC.
Uma operação de múltiplas partes não pode ser intercalada com outras operações, dentro da mesma sessão, até que ela seja finalizada com endMAC.