aws-delivlib
Version:
A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.
26 lines (25 loc) • 794 B
JavaScript
import { timingSafeEqual } from "crypto";
import { Buffer } from "buffer";
import { sign } from "./sign";
import { VERSION } from "../version";
import { getAlgorithm } from "../utils";
async function verify(secret, eventPayload, signature) {
if (!secret || !eventPayload || !signature) {
throw new TypeError(
"[@octokit/webhooks-methods] secret, eventPayload & signature required"
);
}
const signatureBuffer = Buffer.from(signature);
const algorithm = getAlgorithm(signature);
const verificationBuffer = Buffer.from(
await sign({ secret, algorithm }, eventPayload)
);
if (signatureBuffer.length !== verificationBuffer.length) {
return false;
}
return timingSafeEqual(signatureBuffer, verificationBuffer);
}
verify.VERSION = VERSION;
export {
verify
};