Eine auf eine Briefkopfvorlage gelegte Rechnung
Eine Rechnung, über einen als PDF-Datei gelieferten Briefkopf gelegt.
Ein Vertrag kommt oft als fertige Datei an, die jemand anderes geschrieben hat, ohne Platz zum Unterschreiben. Zwei Personen müssen ihn trotzdem unterschreiben — eine genehmigt, eine prüft —, und die zweite Signatur darf die erste nicht brechen. Die Datei neu zu schreiben würde genau das tun: Eine Signatur wird aus den Bytes der Datei berechnet, und ein einziges verschobenes Byte bricht sie.
Dieses Beispiel schreibt die erhaltene Datei nie neu. Es fügt die beiden umrahmten Unterschriftsstellen in einem Abschnitt hinter dem letzten Byte der Datei hinzu, signiert dann die Genehmigung, dann die Prüfung, jede wieder in einem eigenen Abschnitt. Die Prüfung deckt die ganze Datei ab; die Genehmigung deckt weiterhin genau die Bytes ab, die sie abgedeckt hat, und lässt sich weiterhin prüfen. Beide Signaturen verwenden ein nur für dieses Beispiel erstelltes Zertifikat, und die Seite druckt den OpenSSL-Befehl, der jede davon ohne diese Bibliothek prüft.
Zuletzt wird das Zertifikat, auf dem beide Signaturen beruhen, in der Datei aufbewahrt, unter jeder von ihnen abgelegt, in einem eigenen Abschnitt. Jahre später, wenn das Zertifikat abgelaufen ist, enthält die Datei weiterhin den Nachweis, dass beide Signaturen am Tag ihrer Erstellung gültig waren.
Nichts ist weggelassen und nichts vereinfacht: Das ist das Programm genau so, wie es läuft, für den Entwickler, der diese Bibliothek nutzt.
Den Rust-Quellcode lesen Den Python-Quellcode lesen
Das Dokument auf Englisch öffnen Das Dokument auf Französisch öffnen Das Dokument auf Deutsch öffnen Das Dokument auf Spanisch öffnen Das Dokument auf Italienisch öffnen Das Dokument auf Portugiesisch öffnen
Eine Rechnung, über einen als PDF-Datei gelieferten Briefkopf gelegt.
Ein Wartungsvertrag, den jemand anderes geschickt hat, mit einem Unterschriftsbereich, einem Datum und einer eigenen Zeile über seiner letzten Seite, einem danach angefügten Anhang und einer leeren Unterschriftsstelle über dem Unterschriftsbereich, wobei jedes Byte des Vertrags an seinem Platz bleibt.
Ein Liefervertrag auf drei Vorlagen, die der Kunde geschickt hat: eine Seite mit Briefkopf unter der ersten Seite, eine leere Seite unter jeder Seite, über die der Lieferplan läuft, und eine Bedingungsseite, die vollständig hineinkommt.
Ein Lieferetikett, auf dem ein Gestalter vier Rechtecke benannt hat, aus seiner eigenen Datei zurückgelesen, viermal platziert und allein über diese Namen gefüllt: eine Anschrift, eine Bestellnummer, ein aus einer SVG-Datei gezeichnetes Logo und ein Rücksendeschein.
Was Sie erhalten, bevor Sie etwas zahlen: ein Wasserzeichen quer über jeder Seite und darunter dieselben Seiten, genau so gesetzt, wie eine bezahlte Kopie sie setzt. Das ist auch das Dokument, das sagt, was ein Lizenzschlüssel ändert und warum jede Zahl auf dieser Website mit einem gemessen ist.
Ein Formular, das ein Leser ausfüllt: Textfelder, ein Kontrollkästchen, eine Dropdown-Liste, Optionsfelder.