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.

js
// 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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
extractable

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
Has more compatibility info.