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

BCD tables only load in the browser