CryptoKey: extractable プロパティ
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.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
extractable
は CryptoKey
インターフェイスの読み取り専用プロパティで、SubtleCrypto.exportKey()
または SubtleCrypto.wrapKey()
を使用してキーを抽出できるかどうかを示します。
キーがエクスポートできない場合は、 exportKey()
や wrapKey()
では抽出しようとして例外を発生します。
値
論理値で、キーがエクスポート可能であれば true
、不可能であれば false
となります。
例
この例では、キーをエクスポートできない場合、「エクスポート」ボタンは無効になり、待ち受けするリスナーも追加されません。
js
// 指定されたキーをエクスポートし、"exported-key" 空間に書き込みます。
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}]`;
}
// キーが抽出可能かどうかによって、exportButton を有効または無効にします。
function setExportButton(key) {
const exportButton = document.querySelector(".raw");
// キーが抽出できない場合は、ボタンを無効にする
exportButton.disabled = !key.extractable;
if (key.extractable) {
// イベントリスナーを追加してキーを抽出する
exportButton.addEventListener("click", () => {
exportCryptoKey(key);
});
}
}
// 暗号化/復号する秘密鍵を生成する。
// 次に、「エクスポート」ボタンでイベントリスナーを有効にし、設定する。
window.crypto.subtle
.generateKey(
{
name: "AES-GCM",
length: 256,
},
true,
["encrypt", "decrypt"],
)
.then(setExportButton(key));
仕様書
Specification |
---|
Web Cryptography API # dom-cryptokey-extractable |
ブラウザーの互換性
BCD tables only load in the browser