E-signatures

Trusted timestamp for a signed PDF

A signing time written into the file is a claim by whoever wrote it. A timestamp token is a claim by a third party who has no stake in the document, and it keeps working after the signing certificate itself has expired.

Send a document for signingWhat RFC 3161 timestamping adds, how it is attached, and its current state in this product
The Certification row of a certificate of completion, reading PAdES-SHA256-DocMDP with no timestamp named
This is the row to read. With a timestamp authority configured the same row says with RFC 3161 timestamp, and here it does not.

The problem it solves

Certification proves the file has not changed. It does not prove when it was signed, because the time in the signature dictionary was written by the signing process itself. That distinction stops being academic once the signing certificate expires: without independent evidence of when the signature was made, a verifier cannot tell a signature made while the certificate was valid from one made afterwards.

How the token is obtained

The library used for the PAdES signature offers no timestamping, so the request is assembled here. A sha256 digest of the signature bytes is wrapped in a timestamp request along with a random nonce and a flag asking the authority to include its own certificate, so the returned token can be verified on its own. That is posted to the authority with a fifteen second timeout, and only a response granted outright or granted with modifications is accepted.

Where it ends up in the file

The returned token is attached to the signature structure as an unsigned attribute under the standard timestamp token identifier, which is the placement readers look for. Because the token adds several kilobytes, the space reserved for the signature grows from eight kilobytes to twenty four when an authority is configured. Reserving too little would produce a signature that cannot be written, so the size follows the configuration rather than being fixed.

It is off right now

The capability is complete, but the timestamp authority address is empty in every deployed configuration, and an empty address disables timestamping entirely. So the files produced today carry the PAdES certification without a token. This is worth saying plainly rather than describing a feature as though it were live. Turning it on is a configuration change, not new work.

The certificate tells you which you got

The Certification row on the certificate of completion prints the algorithm that was actually used. Without an authority it reads as PAdES with SHA-256 and document modification detection. With one it names RFC 3161 as well and adds the words with RFC 3161 timestamp. The same detail is stored against the envelope's certificate record and written into the certified event in the audit trail, so there is never any guessing about which of the two a given file received.

How it works, in three steps

  1. Step 1

    Everyone signs as normal

    Timestamping happens during the same final step as certification, with no extra action from the sender or the signers.

  2. Step 2

    The token is requested at certification time

    One request to the configured authority, with a fifteen second ceiling, over the digest of the signature rather than the document.

  3. Step 3

    Check the Certification row

    The certificate of completion names the exact algorithm, so you can tell at a glance whether a token was attached.

Limits worth knowing

Questions people ask

Is a timestamp the same as the signing date on the page?

No. The printed date comes from the moment the signer submitted. A timestamp token is an independent third party attestation about when the signature existed.

Do I lose anything without one?

The document is still certified, and the certificate still records the exact signing moments. What you do not get is independent corroboration of the time, which matters mostly for very long lived documents.

How would I know if it were switched on?

The Certification row on the certificate of completion would name RFC 3161, and a reader would show a timestamp alongside the signature.

Why is the reserved space different when it is on?

Because the token is several kilobytes and has to fit inside the space reserved before the signature is written. Reserving too little would break the signing.

Make your own signing flow

The button opens the generator with this use case already described. Change the wording to match yours, generate, then edit anything you like.

Send a document for signing

Related pages

More finished work of this kind is on the e-signature examples hub.