The SubtleCrypto
interface represents a set of cryptographic primitives. It is available via the Crypto.subtle
properties available in a window context (via Window.crypto
).
Per the spec: "Developers making use of the SubtleCrypto interface are expected to be aware of the security concerns associated with both the design and implementation of the various algorithms provided. The raw algorithms are provided in order to allow developers maximum flexibility in implementing a variety of protocols and applications, each of which may represent the composition and security parameters in a unique manner that necessitate the use of the raw algorithms."
This interface neither inherits, nor implements, any property.
This interface doesn't inherit any method.
SubtleCrypto.encrypt()
Promise
of the encrypted data corresponding to the clear text, algorithm and key given as parameters.SubtleCrypto.decrypt()
Promise
of the clear data corresponding to the encrypted text, algorithm and key given as parameters.SubtleCrypto.sign()
Promise
of the signature corresponding to the text, algorithm and key given as parameters.SubtleCrypto.verify()
Promise
of a Boolean
value indicating if the signature given as parameter matches the text, algorithm and key also given as parameters.SubtleCrypto.digest()
Promise
of a digest generated from the algorithm and text given as parameters.SubtleCrypto.generateKey()
Promise
of a newly generated CryptoKey
, for symmetrical algorithms, or a CryptoKeyPair
, containing two newly generated keys, for asymmetrical algorithm, that matches the algorithm, the usages and the extractability given as parameters.SubtleCrypto.deriveKey()
Promise
of a newly generated CryptoKey
derived from a master key and a specific algorithm given as parameters.SubtleCrypto.deriveBits()
Promise
of a newly generated buffer of pseudo-random bits derived from a master key and a specific algorithm given as parameters.SubtleCrypto.importKey()
Promise
of a CryptoKey
corresponding to the format, the algorithm, the raw key data, the usages and the extractability given as parameters.SubtleCrypto.exportKey()
Promise
of a buffer containing the key in the format requested.SubtleCrypto.wrapKey()
Promise
of a wrapped symmetric key for usage (transfer, storage) in insecure environments. The wrapped buffer returned is in the format given in parameters, and contains the key wrapped by the given wrapping key with the given algorithm.SubtleCrypto.unwrapKey()
Promise
of a CryptoKey
corresponding to the wrapped key given in parameter.Specification | Status | Comment |
---|---|---|
Web Cryptography API The definition of 'SubtleCrypto' in that specification. | Recommendation | Initial definition. |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 37 | 12 | 34
|
11 | 24 | 10.1
|
encrypt |
37 | 12
|
34
|
11
|
24 | 7 |
decrypt |
37 | 12
|
34
|
11
|
24 | 7 |
sign |
37 | 12
|
34
|
11
|
24 | 7 |
verify |
37 | 12
|
34
|
11
|
24 | 7 |
digest |
37 | 12
|
34
|
11
|
24 | 7 |
generateKey |
37 | 12
|
34
|
11
|
24 | 7 |
deriveKey |
37 | 12
|
34
|
No | 24 | 7 |
deriveBits |
37 | 12
|
34
|
No | 24 | 7 |
importKey |
37 | 12
|
34
|
11
|
24 | 7 |
exportKey |
37 | 12
|
34
|
11
|
24 | 7 |
wrapKey |
37 | 12
|
34
|
11
|
24 | 7 |
unwrapKey |
37 | 12
|
34
|
11
|
24 | 7 |
Available in workers | ? | No | 48 | ? | ? | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | 37 | 37 | 12 | 34
|
24 | 10.1
|
6.0 |
encrypt |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
decrypt |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
sign |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
verify |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
digest |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
generateKey |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
deriveKey |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
deriveBits |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
importKey |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
exportKey |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
wrapKey |
37 | 37 | 12 | 34
|
24 | 7 | 6.0 |
unwrapKey |
? | 37 | 12 | 34
|
24 | 7 | 6.0 |
Available in workers | ? | ? | ? | ? | ? | ? | ? |
Crypto
and Crypto.subtle
.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto