From 7a4c5e8d27911c6d81ffbc1bb9e4903fbd85323b Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sat, 17 Aug 2024 02:05:14 +0900 Subject: [PATCH] =?UTF-8?q?2023/07/07=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/api/cryptokey/type/index.md | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 files/ja/web/api/cryptokey/type/index.md diff --git a/files/ja/web/api/cryptokey/type/index.md b/files/ja/web/api/cryptokey/type/index.md new file mode 100644 index 00000000000000..47e7ad7aebe983 --- /dev/null +++ b/files/ja/web/api/cryptokey/type/index.md @@ -0,0 +1,54 @@ +--- +title: "CryptoKey: type プロパティ" +short-title: type +slug: Web/API/CryptoKey/type +l10n: + sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc +--- + +{{APIRef("Web Crypto API")}}{{SecureContext_Header}} + +**`type`** は {{DOMxRef("CryptoKey")}} インターフェイスの読み取り専用プロパティで、オブジェクトが表すキーの種類を示します。以下の値を示します。 + +- `"secret"`: このキーは{{Glossary("Symmetric-key cryptography", "対象鍵暗号")}}で使用する秘密鍵です。 +- `"private"`: このキーは{{Glossary("Public-key cryptography", "非対称鍵暗号")}}の [`CryptoKeyPair`](/ja/docs/Web/API/CryptoKeyPair) の秘密鍵側です。 +- `"public"`: このキーは{{Glossary("Public-key cryptography", "非対称鍵暗号")}}の [`CryptoKeyPair`](/ja/docs/Web/API/CryptoKeyPair) の公開鍵側です。 + +## 値 + +文字列で、`"secret"`、`"private"`、`"public"` のいずれかです。 + +## 例 + +この関数は、{{domxref("SubtleCrypto.verify()")}} と引数で指定された公開鍵を使用してメッセージを検証します。 キーが公開鍵でない場合、そのような検証は基本的に安全ではないため、常に `"invalid"` を返します。 + +```js +async function verifyMessage(publicKey) { + const signatureValue = document.querySelector( + ".rsassa-pkcs1 .signature-value", + ); + signatureValue.classList.remove("valid", "invalid"); + + let result = false; // 既定では無効 + + if (publicKey.type === "public") { + const encoded = getMessageEncoding(); + result = await window.crypto.subtle.verify( + "RSASSA-PKCS1-v1_5", + publicKey, + signature, + encoded, + ); + } + + signatureValue.classList.add(result ? "valid" : "invalid"); +} +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}}