Skip to content

test(worker): verifyGitHubSignature HMAC verification tests #227

Description

@liplus-lin-lay

目的

webhook 受け口の HMAC-SHA256 署名検証 verifyGitHubSignature(送信元が本物の GitHub であること+本文改竄なしを同時保証する trust boundary)をテストでカバーする。#225 で「余力で」とされ未実施だった分。認証・trust boundary は subtractive の例外(明示的に守る領域)のためテスト価値が高い。

前提

  • 現状 verifyGitHubSignatureworker/src/index.ts の module-private 関数。
  • index.ts は agent / oauth / store 等のフルグラフを import するため、関数を直接 import すると不要な依存を引き込み、軽量 unit test に載せにくい。
  • 関数自体は crypto.subtle(Web Crypto)のみ使用=純ロジック。

方針・制約

テスト内容

  • 正しい署名(同一 secret + 同一 body で生成)→ true
  • 本文改竄(署名生成後に body を変える)→ false
  • 別 secret で検証 → false
  • 署名フォーマット不一致(空文字 / sha256= prefix 無し / 長さ違い)→ false

影響スコープ

  • signature.ts 抽出+test 追加のみ。ユーザー/システム観測可能なランタイム変更なし → patch

target files

  • worker/src/signature.ts(新規)
  • worker/src/index.ts(関数抽出に伴う import 差し替え)
  • worker/test/signature.test.ts(新規)

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestreadybody converged for implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions