Skip to content

Phase 14#211

Merged
YASSERRMD merged 4 commits into
mainfrom
phase_14
May 30, 2026
Merged

Phase 14#211
YASSERRMD merged 4 commits into
mainfrom
phase_14

Conversation

@YASSERRMD

Copy link
Copy Markdown
Owner

Pull Request Template

Please describe your pull request here...

YASSERRMD and others added 4 commits May 16, 2026 13:43
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds `webhook_secret: Option<String>` to `WebhookEndpoint`. When set,
every incoming request must carry an `X-Barqflow-Signature-256: sha256=<hex>`
header whose value is `HMAC-SHA256(secret, raw_body)`. Verification uses
constant-time comparison via the `hmac` crate to prevent timing attacks.
Requests without or with an invalid signature are rejected with 403.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Five unit tests covering: valid signature passes, wrong secret rejected,
missing header rejected, secret-less endpoint bypasses check, and tampered
body rejected. All test the pure `verify_hmac_signature` function without
requiring a database.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update transitive deps to patched releases: quinn-proto 0.11.14
(RUSTSEC-2026-0037), rustls-webpki 0.103.13 (RUSTSEC-2026-0049/0098/0099/0104),
thin-vec 0.2.18 (RUSTSEC-2026-0103), rand 0.8.6/0.9.4/0.10.1 (RUSTSEC-2026-0097),
and the wasm-bindgen/js-sys/web-sys family off yanked versions.

Add .cargo/audit.toml ignoring RUSTSEC-2023-0071 (rsa Marvin Attack): no
upstream fix exists, it is unavoidable via sqlx-mysql, and our only direct use
is public-key signature verification, which is not exposed to the timing
sidechannel on private-key operations.
@YASSERRMD YASSERRMD merged commit cd5ee59 into main May 30, 2026
3 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant