Une facture posée sur un modèle à en-tête
Une facture posée sur un papier à en-tête fourni sous forme de fichier PDF.
Un contrat arrive souvent sous la forme d’un fichier terminé, écrit par quelqu’un d’autre, sans emplacement prévu pour la signature. Deux personnes doivent pourtant le signer — l’une approuve, l’autre relit — et la seconde signature ne doit pas casser la première. Réécrire le fichier ferait exactement cela : une signature est calculée à partir des octets du fichier, et un seul octet déplacé la casse.
Cet exemple ne réécrit jamais le fichier qu’il reçoit. Il ajoute les deux cadres de signature dans une section écrite après le dernier octet du fichier, puis signe l’approbation, puis la relecture, chacune de nouveau dans une section à elle. La relecture couvre tout le fichier ; l’approbation couvre toujours exactement les octets qu’elle couvrait, et reste valide. Les deux signatures utilisent un certificat fait uniquement pour cet exemple, et la page donne la commande OpenSSL qui vérifie chacune d’elles sans cette bibliothèque.
Enfin, le certificat sur lequel reposent les deux signatures est conservé dans le fichier, rattaché à chacune d’elles, dans une section à part. Des années plus tard, une fois le certificat expiré, le fichier contient encore de quoi montrer que les deux signatures étaient valides le jour où elles ont été apposées.
Rien n’est omis et rien n’est simplifié : c’est le programme exactement tel qu’il tourne, pour le développeur qui utilise cette bibliothèque.
Voir le code Rust Voir le code Python
Ouvrir le document en anglais Ouvrir le document en français Ouvrir le document en allemand Ouvrir le document en espagnol Ouvrir le document en italien Ouvrir le document en portugais
Une facture posée sur un papier à en-tête fourni sous forme de fichier PDF.
Un contrat de maintenance reçu d’un tiers. Sur sa dernière page s’ajoutent un emplacement de signature, une date et une ligne de texte ; après elle, une annexe ; sur l’emplacement de signature, un espace vide où signer. Chaque octet du contrat reste à sa place.
Un contrat d’approvisionnement posé sur trois modèles envoyés par le client : une page à en-tête sous la première page, une page nue sous chaque page de l’annexe, et une page de conditions qui entre entière.
Une étiquette de livraison dont le graphiste a nommé quatre rectangles dans le fichier même de l’étiquette ; le programme les relit, pose l’étiquette quatre fois et remplit chaque zone en la désignant par son nom : une adresse, un numéro de commande, un logo tiré d’un fichier SVG et un bon de retour.
Ce que vous obtenez avant de payer quoi que ce soit : un filigrane en travers de chaque page, et sous lui les mêmes pages, mises en page exactement comme une copie payée les met en page. C’est aussi le document qui dit ce qu’une clé de licence change, et pourquoi chaque chiffre de ce site est mesuré avec une clé.
Un formulaire que le lecteur remplit : champs de texte, case à cocher, liste déroulante, boutons radio.