Class: HMAC

@nginstack/engine/lib/crypto/HMAC~ HMAC


new HMAC(hash, key)

Implementação do algoritmo de código de autenticação de mensagem HMAC. Como os demais algoritmos de geração de códigos de autenticação de mensagens (MAC), ele pode ser utilizado para verificar simultaneamente a integridade e a autenticidade dos dados de uma mensagem.

Esta classe trata as strings como se fossem uma sequência de bytes no formato conhecido como "Binary String", onde cada caractere da string representa um byte do conteúdo binário. É importante observar que a codificação adotada pode ser diferente em outras plataformas, como o Node.js. Para garantir compatibilidade com o hash calculado em outras plataformas, prefira sempre informar valores do tipo Uint8Array ou ArrayBuffer, evitando a codificação implícita das strings.

Parameters:
Name Type Description
hash string

Função hash que deve ser utilizada pelo algoritmo HMAC. Valores possíveis: 'md5', 'sha1', 'sha224', 'sha256', 'sha384' e 'sha512'.

key string | Uint8Array | ArrayBuffer

Chave criptográfica secreta.

Example
var HMAC = require('@nginstack/engine/lib/crypto/HMAC.js');
const hmac = new HMAC('sha256', 'secret');
hmac.update(new Uint8Array([0, 1, 2]));
hmac.update(new Uint8Array([3, 4]));
hmac.hexDigest(); // => '454327ac7188bad3eb738ec24d7830a748779568ffe432594aa56acee0416d2f'

Methods


<static> digest(hash, key, data [, resultType])

Método de classe que calcula o HMAC dos dados de uma mensagem e retorna o código de autenticação em sua representação binária.

Parameters:
Name Type Argument Description
hash string

Função hash que deve ser utilizada pelo algoritmo HMAC. Valores possíveis: 'md5', 'sha1', 'sha224', 'sha256', 'sha384' e 'sha512'.

key string | Uint8Array | ArrayBuffer

Chave criptográfica secreta.

data string | Uint8Array | ArrayBuffer

Dados que serão usados no cálculo do código de verificação.

resultType string | DigestType <optional>

O tipo do digest gerado. Os valores possíveis são "binarystring", "arraybuffer" e "uint8array". Caso não seja informado, será retornada uma string no formato "Binary String", onde cada caractere da string representa um byte do conteúdo binário.

Returns:

HMAC dos dados acumulados.

Type
string | Uint8Array | ArrayBuffer

<static> hexDigest(hash, key, data)

Método de classe que calcula o HMAC dos dados de uma mensagem e retorna o código de autenticação no formato hexadecimal.

Parameters:
Name Type Description
hash string

Função hash que deve ser utilizada pelo algoritmo HMAC. Valores possíveis: 'md5', 'sha1', 'sha224', 'sha256', 'sha384' e 'sha512'.

key string | Uint8Array | ArrayBuffer

Chave criptográfica secreta.

data string | Uint8Array | ArrayBuffer

Dados que serão usados no cálculo do código de verificação.

Returns:

HMAC dos dados acumulados em codificação hexadecimal em caixa baixa.

Type
string

digest( [resultType])

Retorna o código de autenticação em formato binário.

Parameters:
Name Type Argument Description
resultType string | DigestType <optional>

O tipo do digest gerado. Os valores possíveis são "binarystring", "arraybuffer" e "uint8array". Caso não seja informado, será retornada uma string no formato "Binary String", onde cada caractere da string representa um byte do conteúdo binário.

Returns:

HMAC dos dados acumulados.

Type
string

hexDigest()

Retorna o código de autenticação em formato hexadecimal.

Returns:

HMAC dos dados acumulados em codificação hexadecimal em caixa baixa.

Type
string

update(data)

Acumula os dados para o cálculo do código de verificação.

Parameters:
Name Type Description
data string | Uint8Array | ArrayBuffer

Dados que serão acumulados para cálculo do código de verificação.

Returns:

Instância desta classe.

Type
HMAC