Document integrity
Every seal is mathematically tamper-evident
A professional seal stops being meaningful the moment a single byte of the document can change without detection. We layer four published standards — SHA-256 content hashing, X.509 PKI signing, RFC 3161 trusted timestamps, and PDF/A archival — so altering the document, the seal, or the time it was applied is mathematically detectable, not merely policy-discouraged.
Executive summary
Every sealed document carries a SHA-256 hash of its bytes, embedded in an X.509 PKI digital signature, anchored to a real-world clock by an RFC 3161 trusted timestamp from a third-party authority. Change one byte and verification fails.
The sealed file is converted to PDF/A archival format (ISO 19005) so the document remains visually identical decades from now — fonts, color profiles, and structure are embedded, not referenced. The seal isn't a sticker on the file; it's a cryptographic property of the file.
Our commitments
Five rules for every sealed document
If any one of these breaks, the seal is invalid. There is no "valid but slightly tampered."
The hash is over the bytes, not a representation
We hash the raw PDF stream. Re-saving, re-flattening, or rewriting metadata changes bytes — and breaks the hash. We don't allow normalized hashing that papers over modifications.
The timestamp is from a third-party clock
The seal time is signed by an external RFC 3161 Time Stamp Authority (DigiCert) — not our server clock. We can't backdate or alter when a seal was applied even if we wanted to.
The signature is X.509 PKI, not proprietary
The signature is verifiable with any X.509-aware tool. Acrobat, openssl, your CA, your IT team — anyone can independently confirm the seal without trusting EngineeringID to confirm it.
The archival format is open and self-contained
PDF/A-2b embeds every font, color profile, and structural element. The document renders identically a decade from now without depending on external resources or proprietary readers.
Verification works without us
Anyone with the document can verify it offline using public-key cryptography. Our infrastructure can disappear and the seal remains independently checkable.
Implementation — content hashing
The hash is the document's fingerprint
Implementation — digital signature
X.509 PKI, not security theater
The signature is a public-private key operation, not a stored "approved" flag in our database.
Implementation — trusted timestamp
A clock we cannot move
The full picture
What's built, what's being built, and what we chose not to build
Document integrity is the product. We are explicit about every boundary.
Live today
SHA-256 streaming hash
LiveBounded memory regardless of file size.
X.509 PKI signatures with PKCS #7 embedding
LiveVerifiable with Acrobat, openssl, or any X.509 tool — no EngineeringID runtime dependency.
RFC 3161 trusted timestamps from DigiCert TSA
LiveExternal clock proves when the seal was applied, not just our server's view of when.
PDF/A-2b archival conversion (ISO 19005-2)
LiveEmbedded fonts, ICC color profiles, self-contained structure. Renders identically forever.
Bring-your-own-certificate
LiveUpload an X.509 cert from your own CA; we never see the private key for those signatures.
Public verification API
LivePOST /v1/verify/pdf accepts a hash + verification code; rate-limited; CORS-permissive on this route only.
Building now
Long-Term Validation (LTV) signature embedding
Building nowETSI PAdES B-LTA — embed the full revocation chain in the document so it remains verifiable after the signing certificate expires or is revoked.
Target: this quarter.
Customer TSA configuration
Building nowOrg admins choose their own RFC 3161 TSA endpoint instead of the default DigiCert. Useful for regulated industries with TSA preferences.
Roadmap
Post-quantum hybrid signatures
RoadmapCRYSTALS-Dilithium primitives are compiled into the Rust NIF. Production signing callers and schema columns are not yet wired.
Tracking the cryptographic community's adoption curve before defaulting it on.
Hardware-backed signing keys (HSM / KMS)
RoadmapPer-customer KMS-resident signing keys so private material never leaves the customer's HSM. See Key Management for the BYO-KMS roadmap.
On-document QR verification code
RoadmapEmbed a QR code on the visible seal that resolves to the verification page. Optional — many engineers prefer the seal's existing visual cleanliness.
Considered & rejected
Blockchain anchoring of document hashes
Considered & rejectedA SHA-256 hash plus an RFC 3161 third-party timestamp gives the same tamper-evidence at zero cost per seal.
Why we rejected it: blockchains optimize for the case where you don't trust any single party, by paying every time you write. RFC 3161 already gives you a signed timestamp from a CA-grade third party — which is the exact trust property you want, without per-write cost, latency, or probabilistic finality. Customers who need multi-party consensus can use multiple TSAs; that's a stronger guarantee than a single chain anyway.
Visual-only watermarks as integrity proof
Considered & rejectedA watermark survives until the first screenshot. Cryptographic hashes don't survive even one bit change.
Why we rejected it as integrity: we use visual elements (the engineer's stamp, signature image) for human recognizability. We do not pretend they are tamper-detection. The hash + signature is the integrity. The visual is presentation.
AI-based forgery detection
Considered & rejectedA probabilistic check is exactly the wrong tool when one false negative means a forged engineering seal is accepted.
Why we rejected it: AI introduces "we think it's real" where deterministic crypto gives "it's mathematically real or it isn't." For a regulated act with legal consequences, the probabilistic answer is malpractice. We may use ML to flag suspicious workflows, but never as the verification primitive.
Modifying or "normalizing" the PDF before hashing
Considered & rejectedA normalized hash that's stable across "harmless" edits is, definitionally, a hash that hides edits.
Why we rejected it: every "normalization" rule is a way to silently accept some changes. The right answer is: hash the bytes. If the document changes, the hash changes. If you want to seal a different version, seal it explicitly.
Custom signature format
Considered & rejectedAn open standard your auditor's tool already speaks beats any "improvement" we could ship.
Why we rejected it: regulators and reviewers verify with the tools they already have. A signature only EngineeringID can verify is a signature with one verifier. A PKCS #7 / X.509 signature has every verifier ever built.
Compliance mappings
Controls this surface satisfies
System Operations — Detection of Anomalies
Hash mismatch is an immediate, deterministic anomaly signal
Cryptographic controls
SHA-256, RSA-PSS, RFC 3161 — all NIST/IETF-standardized
Controls against malware
Tampered files fail signature verification before they can be served
Audit trail — secure, computer-generated
Hash chain of seal events; non-repudiation via X.509 signature
Retention of contracts and records
PDF/A-2b archival format meets long-term retention requirements
For compliance teams
Questions you don't need to call to ask
What changes invalidate a seal?
Can a verifier check the seal without internet access?
What happens to seals when the signing certificate expires?
Do you store the original document hash, or compute it on demand?
Is the verification page rate-limited?
What's your retention policy for sealed documents and their hashes?
Can two documents collide on SHA-256?
The seal is the math, not the sticker
See the verification flow in action, or talk to our security team about the cryptographic boundaries.