Criptografia

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

Funções

byte[] createHash (int nAlgId, byte[] hKey, int nFlags) throws TacException
 Cria um contexto para cálculo de Hash. Mais...
 
byte[] createHash (int nAlgId) throws TacException
 Cria um contexto para cálculo do Hash. Mais...
 
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). Mais...
 
byte[] encrypt (String strKeyId, byte[] byInput) throws TacException
 Criptografa um buffer de dados. Mais...
 
byte[] encrypt (String strKeyId, byte[] byInput, int flags) throws TacException
 Criptografa um buffer de dados. Mais...
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Criptografa dados. Mais...
 
byte[] encrypt (String strKeyId, byte[] byInput, byte[] byIV, int dwPadding, int dwMode, int flags) throws TacException
 Criptografa dados. Mais...
 
byte[] decrypt (String keyId, byte[] input) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt. Mais...
 
byte[] decrypt (String keyId, byte[] input, int flags) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt. Mais...
 
byte[] decrypt (String keyId, byte[] input, byte[] byIV, int dwPadding, int dwMode) throws TacException
 Decriptografa dados, muitas vezes cifrado pela função DEncrypt. Mais...
 
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. Mais...
 
int verifySignature (String keyId, int algHash, byte[] bSignature, byte[] bMessage) throws TacException
 Verifica uma mensagem. Mais...
 
byte[] signHash (String keyId, int algHash, byte[] bMessage) throws TacException
 Assina um dado a partir do seu conteúdo. Mais...
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash) throws TacException
 Assina um dado a partir do seu hash previamente computado. Mais...
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, boolean useOID) throws TacException
 Assina um dado a partir do seu hash previamente computado. Mais...
 
byte[] signHashedData (String keyId, int algHash, byte[] bHash, int nFlags) throws TacException
 Assina um dado a partir do seu hash previamente computado. Mais...
 
byte[] generateHash (int algId, int flags, byte[] data) throws TacException
 Gera um hash em apenas uma chamada. Mais...
 
byte[] generateHash (int algId, byte[] data) throws TacException
 Gera um hash em apenas uma chamada. Mais...
 
void initHash (int algId, int flags) throws TacException
 Inicializa uma operação de hash por partes. Mais...
 
void initHash (int algId) throws TacException
 Inicializa uma operação MAC por partes. Mais...
 
void updateHash (byte[] data) throws TacException
 Atualiza uma operação de hash com mais dados. Mais...
 
byte[] endHash () throws TacException
 Finaliza uma operação de hash. Mais...
 
byte[] generateMAC (int algId, String macKey, int flags, byte[] data) throws TacException
 Gera um MAC em apenas uma chamada. Mais...
 
byte[] generateMAC (int algId, String macKey, byte[] data) throws TacException
 Gera um MAC em apenas uma chamada. Mais...
 
void initMAC (int algId, String macKey, int flags) throws TacException
 Inicializa uma operação MAC por partes. Mais...
 
void initMAC (int algId, String macKey) throws TacException
 Inicializa uma operação MAC por partes. Mais...
 
void updateMAC (byte[] data) throws TacException
 Atualiza uma operação de MAC com mais dados. Mais...
 
byte[] endMAC () throws TacException
 Finaliza uma operação de MAC. Mais...
 

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.

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
Descontinuado(a):
Veja também
getUserKey(String nKey)
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Retorna
Exceções
TacException
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.
Parâmetros
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
byte [] encrypt ( String  strKeyId,
byte[]  byInput 
) throws TacException

Criptografa um buffer de dados.

Parâmetros
strKeyIdIdenficador da chave.
byInputBuffer que contém os dados a serem criptografados.
Retorna
Retorna os dados criptografados.
Exceções
TacException
byte [] encrypt ( String  strKeyId,
byte[]  byInput,
int  flags 
) throws TacException

Criptografa um buffer de dados.

Parâmetros
strKeyIdIdenficador da chave.
byInputBuffer que contém os dados a serem criptografados.
flagsIndica opções adicionais para a operação.
Valor Signficado
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.
byte [] encrypt ( String  strKeyId,
byte[]  byInput,
byte[]  byIV,
int  dwPadding,
int  dwMode 
) throws TacException

Criptografa dados.

Parâmetros
strKeyIdIdenficador 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 Signficado
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 Signficado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB).
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC).
TacNDJavaLib.MODE_CFB Cipher-Feedback. Ainda Não suportada.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda Não suportada.

Válido apenas para chaves simétricas e algoritmos de bloco.
Retorna
Retorna os dados criptografados.
Exceções
TacException
byte [] encrypt ( String  strKeyId,
byte[]  byInput,
byte[]  byIV,
int  dwPadding,
int  dwMode,
int  flags 
) throws TacException

Criptografa dados.

Parâmetros
strKeyIdIdenficador 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 Signficado
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 Signficado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB).
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC).
TacNDJavaLib.MODE_CFB Cipher-Feedback. Ainda Não suportada.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda Não suportada.

Válido apenas para chaves simétricas e algoritmos de bloco.
flagsIndica opções adicionais para a operação.
Valor Signficado
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.
byte [] decrypt ( String  keyId,
byte[]  input 
) throws TacException

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

Parâmetros
keyIdIdenficador 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
byte [] decrypt ( String  keyId,
byte[]  input,
int  flags 
) throws TacException

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

Parâmetros
keyIdIdenficador 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 Signficado
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.
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
keyIdIdenficador 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 Signficado
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 Signficado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB).
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC).
TacNDJavaLib.MODE_CFB Cipher-Feedback. Ainda Não suportada.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda Não suportada.

Válido apenas para chaves simétricas e algoritmos de bloco.
Retorna
Retorna os dados decriptografados.
Exceções
TacException
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
keyIdIdenficador 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 Signficado
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 Signficado
TacNDJavaLib.MODE_ECB Eletronic Codebook (ECB).
TacNDJavaLib.MODE_CBC Cipher Block Chain (CBC).
TacNDJavaLib.MODE_CFB Cipher-Feedback. Ainda Não suportada.
TacNDJavaLib.MODE_OFB Output-Feedback. Ainda Não suportada.

Válido apenas para chaves simétricas e algoritmos de bloco.
flagsIndica opções adicionais para a operação.
Valor Signficado
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.
int verifySignature ( String  keyId,
int  algHash,
byte[]  bSignature,
byte[]  bMessage 
) throws TacException

Verifica uma mensagem.

Parâmetros
keyIdIdenficador 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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
bSignatureAssinatura.
bMessageMensagem para verificação da assinatura.
Retorna
Exceções
TacException
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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
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.
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
flagsDeve ser passado zero.
dataMensagem.
Retorna
Hash gerado.
Exceções
TacException
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
dataMensagem.
Retorna
Hash gerado.
Exceções
TacException
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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
Parâmetros
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.
void initHash ( int  algId) throws TacException

Inicializa uma operação MAC por partes.

Deve ser finalizada com endMAC.

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_256 Algoritmo de hash SHA2 - 256.
TacNDJavaLib.ALG_SHA2_384 Algoritmo de hash SHA2 - 384.
TacNDJavaLib.ALG_SHA2_512 Algoritmo de hash SHA2 - 512
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.
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.
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.
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_MD5Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DESAlgoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AESAlgoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
Parâmetros
macKeyNome da chave MAC.
flagsDeve ser passado zero.
dataMensagem.
Retorna
MAC gerado.
Exceções
TacException
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_MD5Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DESAlgoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AESAlgoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
Parâmetros
macKeyNome da chave MAC.
dataMensagem.
Retorna
MAC gerado.
Exceções
TacException
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_MD5Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DESAlgoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AESAlgoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
Parâmetros
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.
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_MD5Algoritmo HMAC MD5. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA1Algoritmo HMAC SHA1. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_256Algoritmo HMAC SHA2 - 256. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_384Algoritmo HMAC SHA2 - 384. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_HMAC_SHA2_512Algoritmo HMAC SHA2 - 512. hmacKey deve ser o nome da chave utilizada no HMAC.
TacNDJavaLib.ALG_CMAC_DESAlgoritmo CMAC 3DES. hmacKey deve ser o nome da chave 3DES utilizada no CMAC.
TacNDJavaLib.ALG_CMAC_AESAlgoritmo CMAC AES. hmacKey deve ser o nome da chave AES utilizada no CMAC.
Parâmetros
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.
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.
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.