An invoice laid on a letterhead template
An invoice laid over a letterhead supplied as a PDF file.
A contract sent by e-mail can be changed on the way — a figure, a date, a clause — and nothing on the page shows it. A digital signature is what shows it. It is a number worked out from every byte of the file with a private key, and reading software works it out again when the file is opened: if a single byte has moved, it says the signature is broken.
This document is signed with a certificate made only for this example, which names no person and no company. So the signature proves that the file has not changed, and nothing about who signed it, since nobody vouches for this certificate. The library never holds the key. It prepares everything around the signature and hands the one step that needs the key to a program of yours — here the free OpenSSL tool. The page prints every command that made the signature, and the one that checks it without this library.
Nothing is left out and nothing is simplified: this is the program exactly as it runs, for the developer who uses this library.
Read the Rust source Read the Python source
An invoice laid over a letterhead supplied as a PDF file.
A maintenance agreement somebody else sent, with a signature area, a date and a line of one's own laid over its last page and an annex added after it, every byte of the agreement left where it was.
A supply agreement standing on three templates the customer sent: a headed page under the front page, a plain page under every page the schedule runs to, and a page of conditions that goes in whole.
What you get before you pay anything: a watermark across every page, and the same pages under it, laid out exactly as a paid copy lays them out. This is also the document that says what a licence key changes, and why every figure on this site is measured with one.
A form a reader fills in: text boxes, a check box, a drop-down, radio buttons.
A form that is also a PDF/A-3 file: every field already drawn, with a visible frame, expecting nothing from reading software.