Class: CryptoPKey

@nginstack/engine/lib/crypto/CryptoPKey~ CryptoPKey


new CryptoPKey(type, bits)

Cria um novo par de chaves assimétricas (pública e privada) para assinatura digital de dados. As chaves criadas são aleatórias.

Atenção: Esse construtor é considerado depreciado. Utilize o construtor de uma das classes filhas para tipos específicos de chave.

Parameters:
Name Type Description
type string

O tipo do par, 'DSA' ou 'RSA'

bits number

O tamanho das chaves em bits. Este parâmetro é opcional, o padrão é 1024 para DSA e 2048 para RSA.

See:
Returns:

Um objeto contendo o novo par de chaves.

Type
CryptoPKey

Members


<static, constant> RSA_NO_PADDING :number

Indica que deve ser utilizado a encriptação sem padding. Utilizar esse modo na criptografia de dados de usuários é inseguro e somente deveria ser utilizado com outros mecanismos de segurança. Mais detalhes em https://www.openssl.org/docs/manmaster/crypto/RSA_public_encrypt.html.

Type:
  • number

<static, constant> RSA_PKCS1_PADDING :number

Indica que deve ser utilizado o padding PKCS #1 v1.5. Atualmente esse é o formato mais utilizado. Mais detalhes em https://www.openssl.org/docs/manmaster/crypto/RSA_public_encrypt.html.

Type:
  • number

keyBits

Retorna o tamanho da chave em bits.


keyType

Retorna o tipo da chave (DSA, RSA ou EC).

Methods


<static> importPrivateKey(format, key, arg)

Lê uma chave privada serializada em uma string e cria um novo objeto que representa a mesma chave.

Parameters:
Name Type Description
format string

O formato da chave serializada, pode ser 'der' ou 'pem'.

key string

A chave privada que foi serializada em uma string.

arg string

Se o formato for 'pem' e a chave privada foi protegida, este argumento deve conter o segredo da cifra simétrica. Se o formato for 'der', este argumento deve conter o tipo da chave: 'DSA' ou 'RSA'.

See:
Returns:

Um novo objeto contendo a chave lida.

Type
CryptoPKey

<static> importPublicKey(format, key, type)

Lê uma chave pública serializada em uma string e cria um novo objeto que representa a mesma chave.

Parameters:
Name Type Description
format string

O formato da chave serializada, pode ser 'der' ou 'pem'.

key string

A chave pública que foi serializada em uma string.

type string

Se o formato da chave for 'der', o tipo da chave deve ser informado: 'DSA' ou 'RSA'.

See:
Returns:

Um novo objeto contendo a chave lida.

Type
CryptoPKey

exportPrivateKey(format, key, cipher)

Exporta a chave privada contida no objeto para um formato de serialização padrão. A chave privada também contém a chave pública.

Parameters:
Name Type Description
format string

O formato de saída da chave. O formato pode ser 'der' (um formato binário) ou 'pem' (um formato texto). Este parâmetro é opcional, o padrão é 'der'.

key string

Uma string para ser usada como chave (ou segredo) de uma cifra simétrica, que é usada para proteger a chave assimétrica serializada. Este parâmetro é opcional e só deve ser usado se o formato de saída for 'pem'. Se for omitido, a chave assimétrica será exportada sem proteção.

cipher string

A cifra simétrica usada para a proteção da chave assimétrica privada que é exportada. Este parâmetro é opcional e só é usado se o formato de saída for 'pem'. Se for omitido, será usada a cifra Crypto.DES3_CBC.

See:
Returns:

A chave privada serializada.

Type
string

exportPublicKey(format)

Exporta a chave pública contida no objeto para um formato de serialização padrão.

Parameters:
Name Type Description
format string

O formato de saída da chave. O formato pode ser 'der' (um formato binário) ou 'pem' (um formato texto). Este parâmetro é opcional, o padrão é 'der'.

See:
Returns:

A chave pública serializada.

Type
string

sign(text [, opt_digestName])

Assina digitalmente os dados passados. O objeto usado deve conter uma chave privada, DSA ou RSA.

Parameters:
Name Type Argument Description
text string

Os dados que serão assinados digitalmente.

opt_digestName string <optional>

O nome do digest a ser usado. Qualquer algoritmo suportado pelo OpenSSL pode usar usado, como 'SHA1', 'SHA256', entre outros. Se não for informado, será usado o digest MD5 para chaves RSA, e SHA1 para chaves DSA.

See:
Returns:

A assinatura digital dos dados.

Type
string

verify(text, sig [, opt_digestName])

Verifica a assinatura digital dos dados passados. O objeto usado deve conter uma chave pública.

Parameters:
Name Type Argument Description
text string

Os dados que foram assinados.

sig string

A assinatura digital que será verificada junta com os dados.

opt_digestName string <optional>

O nome do digest a ser usado. Qualquer algoritmo suportado pelo OpenSSL pode usar usado, como 'SHA1', 'SHA256', entre outros. Se não for informado, será usado o digest MD5 para chaves RSA, e SHA1 para chaves DSA.

See:
Returns:

Verdadeiro se a assinatura é válida, falso em caso contrário.

Type
boolean