UNPKG

aws-delivlib

Version:

A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.

26 lines (25 loc) 794 B
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 };