import { checkForSubFilter, preparePDF } from "./generalUtils"; import { extractSignature } from "./signatureUtils"; import { verify } from "./verify"; export const verifyPDF = (pdf: Buffer) => { const pdfBuffer = preparePDF(pdf); try { checkForSubFilter(pdfBuffer); } catch (error) { //SubFilter is only available if there is a sig in the pdf return null; } try { const { signatureStr, signedData, signatureMeta } = extractSignature(pdfBuffer); const signatures: any = signedData.map((_signed, index) => { return verify(signatureStr[index], signatureMeta[index]); }); return { // authenticity: signatures.every((o) => o.authenticity === true), expired: signatures.some((o) => o.expired === true), signatures, }; } catch (error) { return { verified: false, message: error.message, error }; } };