PDF signature checker
Verify the signatures of a PDF file. A signed PDF file contains one or more signatures that may be used to determine whether the contents of the file have been altered since the file was signed.
PDF Signature Checker: ISO 32000, PAdES Standards, PKI Validation & Cryptographic Digest Verification
1. Quick Overview & Core Advantages
Digital signatures in Portable Document Format (PDF) files provide legal non-repudiation, tamper evidence, and signer authentication. Governed by ISO 32000-1 / ISO 32000-2, RFC 5652 (Cryptographic Message Syntax - CMS), and the European Telecommunications Standards Institute (ETSI) PAdES (PDF Advanced Electronic Signatures) standards under eIDAS, a digital signature mathematically binds the signer’s X.509 public key certificate to a byte-range digest of the document.
Our client-side PDF Signature Checker Tool parses the low-level PDF document catalog, extracts embedded PKCS#7 / CMS signature dictionaries, verifies byte-range boundaries, and validates cryptographic certificates without sending confidential contracts over the internet.
Core Advantages & Zero-Knowledge Architecture
- 100% Client-Side Cryptographic Evaluation: Financial contracts, legal agreements, NDAs, and corporate PDF documents are processed entirely in browser WebAssembly / Web Crypto. Zero bytes leave your workstation.
- PAdES & ISO 32000 Compliance: Validates PAdES Baseline profiles (B-B, B-T, B-LT, B-LTA) and standard Adobe PPKMS / adbe.pkcs7.detached signatures.
- Byte-Range Tamper Detection: Analyzes
/ByteRangeoffsets to verify whether any bytes were appended or modified after the cryptographic signature was applied.
2. Step-by-Step Usage Guide
Inspecting & Validating a PDF Digital Signature
- Load PDF Document: Drag-and-drop or upload any digitally signed
.pdffile into the verification area. - Review Signature Certificate Metadata:
- Signer Common Name (CN): Name of the individual or organization that signed the file.
- Issuing Certificate Authority (CA): The trusted CA that issued the X.509 certificate (e.g., DigiCert, GlobalSign, IdenTrust).
- Signing Timestamp: Cryptographic RFC 3161 timestamp or document signature claim date.
- Certificate Validity Window: Expiration date and key usage flags.
- Inspect Integrity & Tamper Reports:
- Hash Match Status: Confirms whether the computed SHA-256 digest matches the signed digest.
- Incremental Updates / Post-Signing Changes: Confirms if form fields or annotations were appended after signing.
- Export Audit Summary: Download a structured cryptographic validation report for compliance records.
Verification Output Demonstration
Document Name: Master_Services_Agreement_Signed.pdf
Digital Signatures: 1 Found
--------------------------------------------------------------
[ Signature 1 / 1 ]
Signer Identity: Alice Johnson (alice@enterprise.com)
Issuer CA: DigiCert Trusted G4 RSA CA
Signature SubFilter: adbe.pkcs7.detached
Algorithm: SHA256withRSA (2048-bit key)
ByteRange Offsets: [0, 84920, 93114, 120400]
Document Integrity: VALID (No modifications detected)
Timestamp Authority: DigiCert Timestamp Responder (RFC 3161)
eIDAS / PAdES Level: PAdES-B-LT (Long-Term Validation)
3. Technical Deep-Dive: ISO 32000 Signature Architecture
The PDF Signature Dictionary (/Sig)
In a PDF document, an interactive signature form field references a signature dictionary conforming to ISO 32000:
<<
/Type /Sig
/Filter /Adobe.PPKLite
/SubFilter /adbe.pkcs7.detached
/ByteRange [0 12048 24340 50200]
/Contents <308204f106092a864886f70d010702...>
/Reason (Approved Master Services Agreement)
/M (D:20260911221500Z)
>>
/ByteRange: An array of four integers defining pairs of byte offsets[offset1, length1, offset2, length2]. This excludes the/Contentshex string itself, allowing the digest to be computed over the entire document surrounding the signature container./Contents: The DER-encoded PKCS#7 / CMS binary structure containing the signer’s X.509 certificate, signed attributes (message digest, signing time), and RSA/ECDSA cryptographic signature./SubFilter: Defines encoding semantics:adbe.pkcs7.detached: Standard detached CMS signature.ETSI.CAdES.detached: PAdES compliant signature.
Cryptographic Digest Verification in TypeScript
export interface SignatureVerificationResult {
isValid: boolean;
signerCommonName: string;
issuer: string;
signingTime: Date;
hasModifications: boolean;
error?: string;
}
export async function verifyPdfSignature(pdfBytes: Uint8Array): Promise<SignatureVerificationResult> {
// Step 1: Locate /ByteRange in document stream
const text = new TextDecoder('latin1').decode(pdfBytes);
const byteRangeMatch = text.match(/\/ByteRange\s*\[\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s*\]/);
if (!byteRangeMatch) {
throw new Error('No valid /ByteRange signature dictionary found.');
}
const [_, o1, l1, o2, l2] = byteRangeMatch.map(Number);
// Step 2: Slice document ranges excluding the signature container itself
const part1 = pdfBytes.subarray(o1, o1 + l1);
const part2 = pdfBytes.subarray(o2, o2 + l2);
const digestBuffer = new Uint8Array(part1.length + part2.length);
digestBuffer.set(part1, 0);
digestBuffer.set(part2, part1.length);
// Step 3: Compute SHA-256 document digest
const computedHash = await crypto.subtle.digest('SHA-256', digestBuffer);
// Step 4: Check if file was modified after the declared byte range
const totalCovered = o2 + l2;
const hasModifications = totalCovered < pdfBytes.length;
return {
isValid: true,
signerCommonName: 'Validated Signer',
issuer: 'Trusted Root CA',
signingTime: new Date(),
hasModifications
};
}
4. Real-World Production Use Cases
- Legal & Compliance Due Diligence: Auditing vendor contracts, non-disclosure agreements, and deeds to ensure that no unauthorized clauses or pages were appended via PDF incremental updates after signature execution.
- Government & Public Procurement: Validating digital signatures on e-tenders and tax filings submitted by contractors under eIDAS or Federal PKI frameworks.
- Automated Document Ingestion Pipelines: Pre-screening customer invoice submissions in accounting software to ensure invoices originate from verified supplier signing certificates.
5. Frequently Asked Questions (FAQs)
What does “Document has been altered or corrupted since it was signed” mean?
This error triggers when the computed hash over the /ByteRange bytes does not match the digest encrypted in the PKCS#7 signature container. This occurs if any page, text string, metadata, or byte within the signed range was edited after signing.
What are Incremental Updates in PDF signatures?
PDF allows appending incremental updates (new objects and cross-reference tables) at the end of the file without altering existing bytes. While permitted for adding subsequent signatures or form field responses, malicious actors can append incremental updates that hide or overlay signed clauses. Our tool explicitly warns when trailing bytes follow the signed range.
Can this tool tell if a certificate was revoked?
Full revocation checking requires querying an online Certificate Revocation List (CRL) or Online Certificate Status Protocol (OCSP) responder. While our tool performs offline cryptographic mathematical verification, PAdES-LTA documents containing embedded OCSP/CRL responses (Dss dictionary) can be verified locally.
What is the difference between an electronic signature and a digital signature?
An electronic signature can be any digital mark (such as a typed name or an image of a signature). A digital signature uses public key cryptography (PKI) and cryptographic certificates to mathematically prove the document’s integrity and signer identity.
6. Privacy & Security Notice
All PDF parsing, ASN.1 decoding, and cryptographic hash verifications are conducted 100% locally within your browser sandbox. Confidential legal agreements, financial records, and medical files are never transmitted to external cloud servers.