【发布时间】:2016-01-25 04:06:37
【问题描述】:
所以我已经设置了 ItextSharp,并且我的签名过程可以在一定程度上工作,嵌入图像和字体正在工作,但是当我签署文档时出现以下验证错误(未认证), “字符串长度超过 65535 个字节。”这导致我的文档不符合 PDF/A-1a 标准。我检查了代码,似乎问题出在 ITextSharp(5.5.6) 的 MakeSignature.SignDetached 方法中,有什么特殊原因会发生这种情况吗?
签名文件出错:https://drive.google.com/file/d/0B9RyqgJoa6W8Q1ZySkhjUS1iTmM/view?usp=sharing
private void SignDocumentSigningBlock(Certificate certificate, SigningInformation information, SigningBlock block, PdfSignatureAppearance appearance, PdfStamper stamper, byte[] signatureImage)
{
X509Certificate2 x509Certificate = new X509Certificate2(certificate.Bytes, certificate.Password, X509KeyStorageFlags.Exportable);
appearance.SetVisibleSignature(block.Name);
SignDocumentSigningBlockWithImage(signatureImage, appearance);
SignDocumentSigningBlockWithText(appearance, x509Certificate);
using (RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)x509Certificate.PrivateKey)
{
IExternalSignature externalSignature = new PrivateKeySignature(DotNetUtilities.GetRsaKeyPair(rsa).Private, _settingManager["DocumentSigningEncryptionHashAlgorithm"]);
MakeSignature.SignDetached(appearance, externalSignature, SignDocumentSigningBlockBuildChain(x509Certificate), null, null, new TSAClientBouncyCastle(_settingManager["DocumentSigningTimestampingServiceAddress"]), Int32.Parse(_settingManager["DocumentSigningEstimatedTimestampSize"]), CryptoStandard.CMS);
}
}
任何建议或帮助将不胜感激。 亲切的问候
更新
我已经签署了将估计大小减少到 20400 的文件,但在进行合规性检查时我仍然收到同样的警告。 链接到新文档: https://drive.google.com/file/d/0B9RyqgJoa6W8UkpGODhLWHl5bTQ/view?usp=sharing
【问题讨论】:
标签: c# pdf itextsharp itext