Skip to main content

Module crypto_subtle

Module crypto_subtle 

Source
Expand description

crypto.subtle(SubtleCrypto)の部分実装。

以前は「暗号ハッシュ実装は1ビットの誤りが静かに間違った結果を生み続ける性質上、 単発サイクルで検証しきれるリスク」(Float16Array/oklch()変換と同格)と判断し 着手を見送っていたが、SHA-256はoklch()等の浮動小数点近似とは性質が異なり、 NIST/RFCが公開する既知の正解値(Known Answer Test)で完全一致検証できる 純粋な整数ビット演算アルゴリズムのため、リスク評価を見直し実装した (2026-07-18 発見・実装)。digest('SHA-256', data)のみ対応。他のアルゴリズム (SHA-1/SHA-384/SHA-512等)やencrypt/decrypt/sign/verify/generateKeyは 依然未対応のまま(sha2等のクレート依存が無く、TLS実装内部のSHA/HMACも非公開で 再利用不可なため、これらは規模の大きい追加実装が必要)。

Constants§

H0 🔒
K 🔒

Functions§

sha256 🔒
SHA-256(FIPS 180-4)。任意長バイト列 → 32バイトダイジェスト。
subtle_digest 🔒
crypto.subtle.digest(algorithm, data)algorithmは文字列 ("SHA-256")または{name: "SHA-256"}のいずれかを受理する (両方とも実ブラウザで有効な呼び出し形式)。戻り値はArrayBufferに 解決されるPromise(仕様どおり非同期API)。