Подтвердите документ XFA, используя iTextSharp
Я использую 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 не может успешно подтвердить... Что мне не хватает?