import { createHmac, timingSafeEqual } from "node:crypto";
function verifyWadialSignature({ rawBody, signatureHeader, secret, toleranceSeconds = 300 }) {
const parts = Object.fromEntries(signatureHeader.split(",").map((part) => part.split("=")));
const timestamp = Number(parts.t);
const signature = parts.v1;
if (!timestamp || !signature) return false;
if (Math.abs(Date.now() / 1000 - timestamp) > toleranceSeconds) return false;
const expected = createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
return timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}