CryptoKey
{{APIRef("Web Crypto API")}}
{{SecureContext_header}}
{{AvailableInWorkers}}
The CryptoKey
interface of the Web Crypto API represents a cryptographic {{glossary("key")}}
obtained from one of the {{domxref("SubtleCrypto")}}
methods {{domxref("SubtleCrypto.generateKey", "generateKey()")}}
, {{domxref("SubtleCrypto.deriveKey", "deriveKey()")}}
, {{domxref("SubtleCrypto.importKey", "importKey()")}}
, or {{domxref("SubtleCrypto.unwrapKey", "unwrapKey()")}}
.
For security reasons, the CryptoKey
interface can only be used in a secure context.
Instance properties
-
{{domxref("CryptoKey.type")}}
{{ReadOnlyInline}}
- : The type of key the object represents. It may take one of the following values:
"secret"
,"private"
or"public"
.
- : The type of key the object represents. It may take one of the following values:
-
{{domxref("CryptoKey.extractable")}}
{{ReadOnlyInline}}
- : A boolean value indicating whether or not the key may be extracted using
SubtleCrypto.exportKey()
orSubtleCrypto.wrapKey()
.
- : A boolean value indicating whether or not the key may be extracted using
-
{{domxref("CryptoKey.algorithm")}}
{{ReadOnlyInline}}
- : An object describing the algorithm for which this key can be used and any associated extra parameters.
-
{{domxref("CryptoKey.usages")}}
{{ReadOnlyInline}}
- : An
{{jsxref("Array")}}
of strings, indicating what can be done with the key. Possible values for array elements are"encrypt"
,"decrypt"
,"sign"
,"verify"
,"deriveKey"
,"deriveBits"
,"wrapKey"
, and"unwrapKey"
.
- : An
Examples
The examples for SubtleCrypto
methods often use CryptoKey
objects. For example:
SubtleCrypto.generateKey()
SubtleCrypto.deriveKey()
SubtleCrypto.importKey()
SubtleCrypto.exportKey()
SubtleCrypto.wrapKey()
SubtleCrypto.unwrapKey()
SubtleCrypto.encrypt()
SubtleCrypto.decrypt()
SubtleCrypto.sign()
SubtleCrypto.verify()
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Web Crypto API
- Web security
- Privacy, permissions, and information security
{{domxref("Crypto")}}
and{{domxref("Crypto.subtle")}}
.