Releases
0.0.8
RFC 9530に対応しました。
Content-Digest
のみに対応しています。Repr-Digest
の対応は重視していません。
扱えるアルゴリズムは、Web Crypto APIとRFC 9530レジストリの両方にあるsha-256とsha-512のみです。
genRFC9530DigestHeader
では、require('structured-headers').parseDictionary
でパースした要求ヘッダのWant-*-Digest
をもとにダイジェストを1つ選んで返す機能があります。
verifyRFC9530DigestHeader
で来たRequest/Responseの検証に対応します。
opts.verifyAll
では、複数のアルゴリズムのダイジェストが含まれていた場合に、全てを検証するか一つだけ検証するかを選びます。
algorithms
では、検証可能なアルゴリズムを文字列配列で設定します。また、verifyAll: false
時には、algorithms
の若いインデックスのものからアルゴリズムを選択します。
genDigestHeaderBothRFC3230AndRFC9530
を作成しました
第1引数のrequestに対してDigest
(RFC 3230)ヘッダおよびContent-Digest
(RFC 9530)ヘッダを追加します。
verifyDigestHeader
/verifyRFC3230DigestHeader
/verifyRFC9530DigestHeader
で第3引数のオブジェクトへalgorithms
としてハッシュアルゴリズム文字列配列を指定することで、認証するアルゴリズムを制限することができるようになりました。
algorithms
の初期値は['SHA-256', 'SHA-512']
です。
verifyDigestHeader
/verifyRFC3230DigestHeader
では、従来第3引数はfailOnNoDigest (boolean)
でしたが、booleanとobjectの両方に対応しています。
ダイジェストを比較する際、「来たbodyのダイジェストをbase64に変換し、base64文字列同士を比較」する方式から「Digestヘッダのbase64をUint8Arrayに変換し、来たbodyのダイジェストを計算し(base64にせず)、Uint8Array同士を比較」する方式にしました。
RFC 9421のSignature Baseを生成するためのRFC9421SignatureBaseFactory
を作成しました(RFC 9421の部分的実装)
You can’t perform that action at this time.