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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions