SubtleCrypto.generateKey()

O método SubtleCrypto.generateKey() retorna como Promise de uma recentemente gerada CryptoKey, para algoritmos simétricos, ou uma CryptoKeyPair (en-US), 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 (en-US), 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 (en-US) 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 (en-US) mensagens.
    • "decrypt", permitindo que a key seja utilizada para decrypting (en-US) mensagens.
    • "sign", permitindo que a key seja utilizada para signing (en-US) 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 (en-US) 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"