Maison >Java >Plusieurs prolongations de contrat

Plusieurs prolongations de contrat

WBOY
WBOYavant
2024-02-12 17:15:05807parcourir

Contenu de la question

Je souhaite pouvoir signer des fichiers PDF plusieurs fois en utilisant itext. Mais je n'ai pas la clé privée. Je génère un hachage que le client doit signer, et après avoir re-signé, j'appelle signDeferred(). Est-il possible de créer plusieurs conteneurs vides, de générer un hachage avec tous les conteneurs vides, puis d'ajouter des signatures au fur et à mesure qu'elles apparaissent ?

J'ai essayé d'ajouter plus d'un conteneur vide, généré le hachage, le client a signé et renvoyé le hachage, j'ai essayé d'ajouter mais j'ai eu l'erreur indiquant que ce n'est pas le dernier champ. Vous ne pouvez appeler signDeferred 。但我不知道如何修复它,因为 signDetached que sur le dernier champ, ce qui n'est pas une option car je n'ai pas la clé privée.

Solution de contournement

Non, cela n'est pas possible, du moins pas pour les signatures PDF interopérables.

La raison est qu'il n'y a pas de véritable concept de signatures parallèles (ou contre-signatures) spécifié pour le PDF, seulement le concept de signatures en série, une signature après l'autre, chaque nouvelle signature écrasant également toutes les signatures précédentes :

(Voir cette réponse pour plus de détails.)

À proprement parler, la spécification PDF n'exige pas que les signatures couvrent toutes les révisions entières, à l'exception des espaces réservés intégrés dans le conteneur de signature lui-même, elle le recommande simplement. Par conséquent, il est théoriquement possible de créer un PDF avec plusieurs signatures, chacune couvrant l'intégralité du PDF à l'exception de toutes les valeurs de signature intégrées. Mais en pratique, les validateurs de signature PDF rejettent de telles constructions. De plus, les profils de signature plus modernes (en particulier le profil de base PAdES)

nécessitent

signatures pour couvrir toutes les révisions entières, à l'exception des espaces réservés de conteneur signés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer