SubtleCrypto.generateKey()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

O método SubtleCrypto.generateKey() retorna como Promise de uma recentemente gerada CryptoKey, para algoritmos simétricos, ou uma CryptoKeyPair, contendo duas keys recentemente geradas, para algoritmos assimétricos, que combina com o algoritmo, o uso e a extractividade são dados como parâmetro.

Sintaxe

var result = crypto.subtle.generateKey(algo, extractable, keyUsages);

Parâmetros

  • algo é um objeto do dicionário definindo a função utilizada da geração da key. algo suportados são : AES-CBC, AES-CTR, AES-GCM, RSA-OAEP, AES-KW, HMAC, RSASSA-PKCS1-v1_5, ECDSA, ECDH, e DH. Os formatos de objetos do dicionário são:

    • "name", o qual corresponde com um dos algo's suportados listados acima,

    • "modulusLength", o qual corresponde com o número de dígitos usado nos módulos

    • "publicExponent", uma Uint8Array representando o exponencial público

    • "hash", um objeto do dicionário referenciando o uso do algoritmo hash. Por exemplo:

      • {name: "SHA-512"}
  • extractable é um Boolean indicando se a key pode ser extraída do objeto CryptoKey em um estágio mais tardio.

  • keyUsages é uma Array indicando o que pode ser feito com uma key recentemente gerada. Os possíveis valores da array são:

    • "encrypt", permitindo que a key seja utilizada para encrypting mensagens.
    • "decrypt", permitindo que a key seja utilizada para decrypting mensagens.
    • "sign", permitindo que a key seja utilizada para signing mensagens.
    • "verify", permitindo que a key seja utilizada para verifying the signature de mensagens.
    • "deriveKey", permitindo que a key seja utilizada como uma key base para quando se derivando uma nova key.
    • "deriveBits", permitindo que a key seja utilizada como uma key base quando se derivando bits de dados para uso em criptografias primitivas.
    • "wrapKey", permitindo que a key envolva uma chave simétrica para uso (transferência, armazenamento) em ambientes não seguros.
    • "unwrapKey", permitindo que a key se desvincule de uma chave simétrica para uso (transferência, armazenamento) em ambientes não seguros.

Valor de retorno

Exceções

A Promise é rejeitada quando a seguinte exceção é encontrada:

  • SyntaxError quando keyUsages está vazia mas a key gerada simetricamente é do tipo "secret" ou "private" ou o componente privado gerado do par de key assimétrica está vazio.

Especificações

Specification
Web Cryptography API
# SubtleCrypto-method-generateKey

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também

Dicionário

"Key" = "Chave"