docs/tools/validate-signature-pdf.md
Upload a signed PDF and this tool extracts every digital signature, identifies the signer, checks certificate validity, and reports whether the document has been modified since signing. You can also provide a trusted certificate to verify the signature chain.
The tool extracts PKCS#7 signature objects from the PDF, decodes the ASN.1 structure, and pulls out the signer's X.509 certificate along with any certificate chain embedded in the signature.
/ByteRange, hashes them with the algorithm the signer declared, and compares the result against the messageDigest attribute inside the signature.| Algorithm | Verification path |
|---|---|
| RSA (PKCS#1 v1.5) | node-forge publicKey.verify, with Web Crypto fallback |
| RSA-PSS (RSASSA-PSS) | Web Crypto verify({name: 'RSA-PSS', saltLength}) |
| ECDSA P-256/P-384/P-521 | Web Crypto verify({name: 'ECDSA', hash}) after DER → IEEE P1363 signature conversion |
If a signature uses an algorithm outside this list (for example Ed25519, SM2, or RSA with an unusual digest OID), the card shows "Unverified — Unsupported Signature Algorithm" in yellow, along with the specific OID or reason. This is a deliberate three-state distinction:
openssl cms -verify.Each signature card shows:
Expand the technical details section for: