Réponse partielle :
Le processus de la signature X.509 est le suivant décrit par Adobe en détail : Une signature est juste un objet supplémentaire dans le fichier PDF, qui contient, entre autres éléments, la plage d'octets pour laquelle la signature est faite. Ensuite,
Le processus de signature est le suivant :
- Un document à signer est transformé en un flux d'octets.
- L'ensemble du fichier PDF est écrit sur le disque en laissant un espace de taille appropriée pour la valeur de la signature ainsi qu'avec les valeurs les plus défavorables dans le tableau ByteRange. ByteRange est un tableau de quatre nombres. Le premier nombre de chaque paire est le décalage dans le fichier (à partir du début, en partant de 0) du début d'un flux d'octets à inclure dans le hachage. Le second nombre est la longueur de ce flux. Les deux paires définissent deux séquences d'octets qui définissent ce qui doit être haché. La valeur réelle de la signature est stockée dans la clé /Contents entre la fin de la première séquence et le début de la seconde. Dans la figure 4, le hachage est calculé pour les octets 0 à 839, et 960 à 1200.
- Une fois que l'emplacement de la valeur de la signature est connu en termes de décalages dans le fichier, le tableau ByteRange est écrasé en utilisant les valeurs correctes. Comme les décalages d'octets ne doivent pas changer, les octets supplémentaires qui suivent la nouvelle instruction du tableau sont écrasés par des zéros.
- Le hachage du fichier entier est calculé, en utilisant les octets spécifiés par la valeur ByteRange réelle, à l'aide d'un algorithme de hachage tel que SHA-256. Acrobat calcule toujours le hachage pour une signature de document sur l'ensemble du fichier PDF, en commençant par l'octet 0 et en terminant par le dernier octet du fichier physique, mais en excluant les octets de la valeur de signature.
- La valeur de hachage est chiffrée avec la clé privée du signataire et un objet de signature PKCS#7 codé en hexadécimal est généré.
- L'objet de la signature est placé dans le fichier sur le disque, en écrasant la valeur du placeholder /Contents. Tout espace non utilisé pour l'objet de signature est remplacé par des zéros.
- Le fichier PDF est rechargé dans Acrobat pour s'assurer que les versions en mémoire et sur disque sont identiques.
Il n'y a aucune raison pour que l'on ne puisse pas faire cela avec une signature calculée par gpg.
Il devrait également être maintenant évident que l'intégration de la signature ne "contourne pas l'idée générale de la signature et de la vérification des documents", comme mentionné dans une autre réponse.
Cependant, je ne connais pas d'outils où un tel processus (et la vérification de signature correspondante) est déjà implémenté et facilement disponible. Donc, pour des raisons pratiques (pour l'instant), il n'est probablement pas recommandé d'essayer ceci, si vous envoyez la signature à d'autres personnes qui doivent s'en occuper.