Internet security protocols |
---|
Key management |
Application layer |
Domain Name System |
Internet Layer |
generateKey()
method of the SubtleCrypto
interface to generate a new key (for symmetric algorithms) or key pair (for public-key algorithms).algorithm
is a dictionary object defining the type of key to generate and providing extra algorithm-specific parameters. RsaHashedKeyGenParams
object.EcKeyGenParams
object.HmacKeyGenParams
object.AesKeyGenParams
object.extractable
is a Boolean
indicating whether it will be possible to export the key using SubtleCrypto.exportKey()
or SubtleCrypto.wrapKey()
.keyUsages
 is an Array
indicating what can be done with the newly generated key. Possible values for array elements are: encrypt
: The key may be used to encrypt
messages.decrypt
: The key may be used to decrypt
messages.sign
: The key may be used to sign
messages.verify
: The key may be used to verify
signatures.deriveKey
: The key may be used in deriving a new key
.deriveBits
: The key may be used in deriving bits
.wrapKey
: The key may be used to wrap a key
.unwrapKey
: The key may be used to unwrap a key
.result
is a Promise
that fulfills with a CryptoKey
(for symmetric algorithms) or a CryptoKeyPair
(for public-key algorithms).SyntaxError
CryptoKey
of type secret
or private
but keyUsages
is empty.SyntaxError
CryptoKeyPair
and its privateKey.usages
attribute is empty.Specification | Status | Comment |
---|---|---|
Web Cryptography API The definition of 'SubtleCrypto.generateKey()' in that specification. | Recommendation | Initial definition. |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | |
generateKey | ChromeFull support 37 | EdgePartial support12
| FirefoxFull support 34
| IEPartial support11 Notes
| OperaFull support 24 | SafariFull support 7 | WebView AndroidFull support 37 | Chrome AndroidFull support 37 | Firefox AndroidFull support 34
| Opera AndroidFull support 24 | Safari iOSFull support 7 | Samsung Internet AndroidFull support 6.0 |