Skip to content

Releases: misskey-dev/node-http-message-signatures

v1.0.0-beta.1

28 Jun 13:50
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release
  • Implement RFC 9421 sign/verify

Full Changelog: 0.0.10...1.0.0-beta.1

v0.0.10

08 May 13:01
Compare
Choose a tag to compare
  • 0.0.9がビルドできなかったため再度リリースを作成しました

v0.0.9

08 May 12:57
Compare
Choose a tag to compare
  • Upgrade @lapo/asn1js to v2

0.0.8

09 Mar 07:16
Compare
Choose a tag to compare
  • 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の部分的実装)

0.0.7

07 Mar 15:17
Compare
Choose a tag to compare
  • Web APIのRequest/Responseを受け付けられるように
  • Fastifyでのテストを追加

0.0.6

07 Mar 10:51
Compare
Choose a tag to compare
  • Web Crypto APIのTypeScriptの型を、node:cryptoのwebcryptoではなくdom libのものを使うように

0.0.5

06 Mar 06:34
Compare
Choose a tag to compare
  • EC鍵でのsign/verifyでhashがない旨のエラーが発生するのを修正
  • verifyDraftSignatureでパースされたシグネチャのアルゴリズムと実際のキーのアルゴリズムの比較ができていなかったのを修正
  • 主要でない関数(README.mdで紹介がない関数)に若干の変更

Full Changelog: 0.0.4...0.0.5

0.0.4

05 Mar 15:35
Compare
Choose a tag to compare
  • importPrivateKeyの第2引数がoptionalに (初期値は['sign'])
  • importPublicKeyの第2引数がoptionalに (初期値は['verify'])

0.0.3

05 Mar 15:23
Compare
Choose a tag to compare
  • crypto.subtle.importKeyが割と重たいので、verifyとsignへ事前にインポートしたCryptoKeyを与えられるようにします。
    • verifyDraftSignatureが第2引数にwebcrypto.CryptoKeyを取れるように
    • signAsDraftToRequestの第2引数のプロパティでprivateKeywebcrypto.CryptoKeyを与えられるように
    • importPrivateKey, importPublicKey 関数の追加 (鍵をwebcrypto.CryptoKeyに変換します)
  • getDraftAlgoStringの引数が変更に

Full Changelog: 0.0.2...0.0.3

0.0.2

05 Mar 06:33
Compare
Choose a tag to compare
  • Node.js v18で動作するように #6
  • Digestヘッダに対応していないハッシュアルゴリズムが指定された場合のエラーハンドリング #8
  • genSignInfoDraft function is deprecated
    • Use parseSignInfo
  • RequestParseOptions.requiredInputs is deprecated
    • Use RequestParseOptions.requiredComponents