使用iTextSharp验证XFA文档

时间:2014-07-27 21:34:03

标签: pdf itextsharp digital-signature xfa certify

我正在使用iTextSharp 5.5.2,我想用数字证书认证XFA文档。 我的代码如下:

PdfReader reader = new PdfReader(path);
FileStream os = new FileStream(dest, FileMode.Create);
PdfStamper stamper = PdfStamper.createXmlSignature(reader, os);
XmlSignatureAppearance appearance = stamper.XmlSignatureAppearance;
appearance.SetXmlLocator(new XfaXmlLocator(stamper));
appearance.SetXpathConstructor(new XfaXpathConstructor(XfaXpathConstructor.XdpPackage.Datasets)); // Optional Line
appearance.SetCertificate(myCert);
var pk = Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(myCert.PrivateKey).Private;
IExternalSignature pks = new PrivateKeySignature(pk, DigestAlgorithms.SHA1);
MakeXmlSignature.SignXmlDSig(appearance, pks, GenerateKeyInfo(myChain));

不幸的是,当我在认证后打开PDF时,会弹出“验证操作失败”。 如果我注释掉与XfaXpathConstructor相关的可选行,我会在PDF类型中看到“至少有一个数据签名无效”的横幅消息。

无论哪种方式,我无法打开签名面板,PDF无法成功验证......我缺少什么?

0 个答案:

没有答案