Verify PDF signatures
verify_pdfCheck every PDF signature for integrity, signer certificate, and trust chain, plus RFC 3161 timestamps, returning per-signature valid/invalid verdicts.
Instructions
Read-only verification of every signature: ByteRange digest vs CMS messageDigest (integrity), CMS signatureValue vs the embedded signer certificate (RSA-SHA256/384/512, ECDSA P-256), chain trust when trustedRootsDerBase64 is given ('self-signed' | 'unverified' | 'trusted' otherwise). /DocTimeStamp entries are verified as RFC 3161 tokens and count in allValid like any signature. Result: { allValid, signatureCount, summary, signatures:[{ valid, integrity, signerSubject, signingTime, chainTrust, errors[] }] }. ltv:true adds the PAdES view: per-signature profile, timestamp, revocation (read from embedded /DSS only — responder signatures are not re-verified) and ltvLevel B-B / B-T / B-LT / B-LTA with explicit caveats. Token-frugal: verbosity:'summary', fields:['allValid'].
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ltv | No | Add the PAdES view: per signature profile, timestamp, revocation (embedded /DSS only), ltvLevel (B-B / B-T / B-LT / B-LTA); document-level dss, ltvLevel, caveats. | |
| fields | No | Optional dot-path projection applied to the structured result (e.g. ['allValid'] or ['signatures.valid']). Composes after verbosity. Unknown paths are omitted. | |
| password | No | Password (user or owner) of an encrypted source. Never logged or echoed. | |
| pdfBase64 | Yes | Base64-encoded PDF bytes to verify. | |
| verbosity | No | Response verbosity. 'full' (default) returns the per-signature signatures[] array; 'summary' returns a token-frugal verdict { signatureCount, allValid, invalid, summary } (+ ltvLevel when ltv:true) and drops signatures[], dss and caveats. | full |
| trustedRootsDerBase64 | No | Optional list of base64-encoded X.509 root certificates (DER). When supplied, each signer certificate is validated against these roots; otherwise chainTrust is reported as self-signed or unverified. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dss | No | ltv only. Document Security Store summary, or null when the catalog has no /DSS. | |
| caveats | No | ltv only. Fixed statements about what the LTV evaluation does not cover. | |
| invalid | No | summary only: number of invalid signatures. | |
| summary | No | ||
| allValid | No | true when the document carries at least one signature and every entry of signatures[] — CMS signatures and /DocTimeStamp tokens alike — is valid (integrity + signature check + chain trust when trustedRootsDerBase64 is given). A tampered document timestamp fails the verdict; a sound one never does. | |
| ltvLevel | No | ltv only. Minimum level across non-timestamp signatures ('B-B' when there are none). | |
| signatures | No | ||
| signatureCount | No |