Verifyier isn't your problem – it's the signer.
Did you write the code that signed this PDF? Was it originally an XFA-based
PDF and you tried to sign it as a regular PDF?
Leonard
From: "Marco Barbi (SATA)" <[email protected]<mailto:[email protected]>>
Reply-To: Post here
<[email protected]<mailto:[email protected]>>
Date: Mon, 19 Dec 2011 08:31:35 -0800
To: Post here
<[email protected]<mailto:[email protected]>>
Subject: [iText-questions] PDF signature fails in Adobe Reader
Hi,
I have a signed PDF document (see attachment) that iText libraries correctly
verify but Adobe Reader doesn't since "Dict. object is expected". Please find
below the code I use to validate the PDF with iText:
KeyStore kall = PdfPKCS7.loadCacertsKeyStore();
PdfReader reader = new PdfReader("C:/Documents and Settings/marco/My
Documents/Temp/pdf_signed.pdf");
AcroFields af = reader.getAcroFields();
ArrayList names = af.getSignatureNames();
for (int k = 0; k < names.size(); ++k) {
String name = (String) names.get(k);
System.out.println("Signature name: " + name);
System.out.println("Signature covers whole document: " +
af.signatureCoversWholeDocument(name));
System.out.println("Document revision: " + af.getRevision(name) + " of "
+ af.getTotalRevisions());
// Start revision extraction
FileOutputStream out = new FileOutputStream("revision_" +
af.getRevision(name) + ".pdf");
byte bb[] = new byte[8192];
InputStream ip = af.extractRevision(name);
int n = 0;
while ((n = ip.read(bb)) > 0)
out.write(bb, 0, n);
out.close();
ip.close();
// End revision extraction
PdfPKCS7 pk = af.verifySignature(name);
Calendar cal = pk.getSignDate();
Certificate pkc[] = pk.getCertificates();
System.out.println("Subject: " +
PdfPKCS7.getSubjectFields(pk.getSigningCertificate()));
System.out.println("Document modified: " + !pk.verify());
Object fails[] = PdfPKCS7.verifyCertificates(pkc, kall, null, cal);
if (fails == null)
System.out.println("Certificates verified against the KeyStore");
else
System.out.println("Certificate failed: " + fails[1]);
}
Any hint?
Thank you.
Marco Barbi
--
Marco Barbi
S A T A srl
via Notari, 103 - 41126 Modena (ITALY)
Skype: marcobarbi
Tel: +39 059 343299 / +39 059 2928134
Fax: +39 059 2928134
Web: http://www.satanet.it
------------------------------------------------------------------------------
Learn Windows Azure Live! Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for
developers. It will provide a great way to learn Windows Azure and what it
provides. You can attend the event by watching it streamed LIVE online.
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php