Ce lien (Document) contient un fichier PDF signé numériquement qui a été correctement vérifié par IText (version 5.5.12) mais pas par Adobe Reader DC qui émet le message suivant:PDF signé numériquement correctement vérifié par ItextSharp 5.5.12 mais pas par Adobe Reader DC
Erreur lors de la vérification de la signature.
Valeurs de plage d'octets inattendues définissant la portée des données signées. Détails: La plage d'octets de signature est invalide
Qui est-ce correct? Adobe DC ou IText? IText Bug?
Exemple de code iTextSharp utilisé pour la vérification des signes PDF numérique:
using System;
using System.Collections.Generic;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.security;
namespace ClassLibrary1
{
public class Class1
{
public Boolean PDFVerify(String file)
{
PdfReader pdfr = new PdfReader(file);
AcroFields af = pdfr.AcroFields;
List<String> names = af.GetSignatureNames();
foreach (String name in names)
{
PdfPKCS7 pk = af.VerifySignature(name);
if (!pk.Verify()) return false;
}
return true;
}
}
}
Merci pour la réponse rapide! Comment puis-je détecter la corruption de PDF première révision avec IText? C'est possible? Je veux reproduire le message semblable d'Adobe DC à l'utilisateur ... –
@MarcosMonteiro Si vous voulez vérifier pour ce type spécifique de dossier, vérifiez simplement si le fichier commence par '% PDF-1.4 Marvell Semiconductor'. Une solution générale est cependant difficile, car vous devez vous plaindre dans les mêmes situations qu'Adobe Reader. Malheureusement, il existe de nombreuses façons de créer un fichier PDF en ne suivant pas les spécifications qu'Adobe Reader ignore, et AFAIK il n'y a pas de liste complète de cela. Ainsi, imiter le comportement d'Adobe est difficile. – mkl
Cette réponse a terminé la question. Merci encore. –