mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-23 00:21:28 +00:00
15 lines
511 B
TypeScript
15 lines
511 B
TypeScript
import { hmacSha256Hex, timingSafeEqual } from "../hmac";
|
|
|
|
/**
|
|
* Gitea signs webhooks with the HMAC-SHA256 hex digest of the raw body in the
|
|
* `X-Gitea-Signature` header (no `sha256=` prefix, unlike GitHub).
|
|
*/
|
|
export async function verifyGiteaSignature(
|
|
payload: string,
|
|
signature: string | undefined,
|
|
secret: string | undefined,
|
|
): Promise<boolean> {
|
|
if (!signature || !secret) return false;
|
|
const expected = await hmacSha256Hex(secret, payload);
|
|
return timingSafeEqual(signature, expected);
|
|
}
|