CryptoKey: extractable Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die schreibgeschützte extractable
-Eigenschaft des CryptoKey
-Interfaces gibt an, ob der Schlüssel mithilfe von SubtleCrypto.exportKey()
oder SubtleCrypto.wrapKey()
extrahiert werden kann oder nicht.
Wenn der Schlüssel nicht exportiert werden kann, werfen sowohl exportKey()
als auch wrapKey()
eine Ausnahme, wenn sie zur Extraktion verwendet werden.
Wert
Ein boolescher Wert, der true
ist, wenn der Schlüssel exportiert werden kann, und false
, wenn nicht.
Beispiele
In diesem Beispiel ist der Export-Button deaktiviert, und es wird kein Listener hinzugefügt, wenn der Schlüssel nicht exportiert werden kann.
// Export the given key and write it into the "exported-key" space.
async function exportCryptoKey(key) {
const exported = await window.crypto.subtle.exportKey("raw", key);
const exportedKeyBuffer = new Uint8Array(exported);
const exportKeyOutput = document.querySelector(".exported-key");
exportKeyOutput.textContent = `[${exportedKeyBuffer}]`;
}
// Enable or disable the exportButton if the key is extractable or not
function setExportButton(key) {
const exportButton = document.querySelector(".raw");
// Disable the button if the key is not extractable
exportButton.disabled = !key.extractable;
if (key.extractable) {
// Add an event listener to extract the key
exportButton.addEventListener("click", () => {
exportCryptoKey(key);
});
}
}
// Generate an encrypt/decrypt secret key,
// then enable and set up an event listener on the "Export" button.
window.crypto.subtle
.generateKey(
{
name: "AES-GCM",
length: 256,
},
true,
["encrypt", "decrypt"],
)
.then(setExportButton(key));
Spezifikationen
Specification |
---|
Web Cryptography API # dom-cryptokey-extractable |
Browser-Kompatibilität
BCD tables only load in the browser