--- title: SubtleCrypto.generateKey() slug: Web/API/SubtleCrypto/GenerateKey tags: - API - Referencia - SubtleCrypto - Web Crypto API - metodo translation_of: Web/API/SubtleCrypto/generateKey ---
{{APIRef("Web Crypto API")}}
O método SubtleCrypto.generateKey()
retorna como {{jsxref("Promise")}} de uma recentemente gerada {{domxref("CryptoKey")}}, para algoritmos simétricos, ou uma {{domxref("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.
var result = crypto.subtle.generateKey(algo, extractable, keyUsages)
;
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 {{jsxref("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 {{jsxref("Boolean")}} indicando se a key pode ser extraída do objeto {{domxref("CryptoKey")}} em um estágio mais tardio.keyUsages
é uma {{jsxref("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 {{glossary("encryption", "encrypting")}} mensagens."decrypt"
, permitindo que a key seja utilizada para {{glossary("decryption", "decrypting")}} mensagens."sign"
, permitindo que a key seja utilizada para {{glossary("signature", "signing")}} mensagens."verify"
, permitindo que a key seja utilizada para {{glossary("verification", "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 {{glossary("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.result
é uma {{jsxref("Promise")}} que retorna uma key gerada como uma {{domxref("CryptoKey")}} ou uma {{domxref("CryptoKeyPair")}}.A {{jsxref("Promise")}} é rejeitada quando a seguinte exceção é encontrada:
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ção | Status | Commentário |
---|---|---|
{{ SpecName('Web Crypto API', '#dfn-SubtleCrypto-method-generateKey', 'SubtleCrypto.generateKey()') }} | {{ Spec2('Web Crypto API') }} | Definição inicial. |
{{ CompatibilityTable() }}
Características | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Edge | Opera | Safari |
---|---|---|---|---|---|---|---|
Suporte básico | {{ CompatChrome(37) }} | {{CompatVersionUnknown}} | {{ CompatGeckoDesktop(34) }} | {{ CompatNo() }} | 13 | {{ CompatNo }} | |
ECDSA |
{{CompatVersionUnknown}} | {{CompatUnknown}} | {{ CompatGeckoDesktop(36) }} | {{ CompatNo() }} | {{ CompatUnknown() }} | {{ CompatNo() }} | |
DH |
{{ CompatNo() }} | {{CompatUnknown}} | {{ CompatGeckoDesktop(35) }} | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
Características | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Suporte básico | {{CompatVersionUnknown}} | 37 | {{CompatVersionUnknown}} | {{ CompatGeckoMobile(34) }} | {{ CompatNo }} | {{ CompatUnknown() }} | {{ CompatNo }} |
ECDSA |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{ CompatGeckoMobile(36) }} | {{ CompatNo }} | {{ CompatUnknown() }} | {{ CompatNo }} |
DH |
{{ CompatNo() }} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{ CompatGeckoMobile(35) }} | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
"Key" = "Chave"