当前位置: 首页 > 知识库问答 >
问题:

PDF/A一致性问题

洪梓
2023-03-14

所以我已经设置了ItextSharp,签名过程在一定程度上正常工作,嵌入图像和字体也正常工作,但我在签名文档(未认证)时出现以下验证错误:“字符串长度超过65535字节。”这导致我的文档不符合PDF/A-1a标准。我已经检查了代码,似乎问题在于MakeSignature。ITextSharp(5.5.6)的方法是否有任何特殊原因会发生这种情况?

签名文件错误: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

共有1个答案

江佐
2023-03-14

你的MakeSignature。信号分离呼叫

MakeSignature.SignDetached(appearance, externalSignature, SignDocumentSigningBlockBuildChain(x509Certificate), null, null, new TSAClientBouncyCastle(_settingManager["DocumentSigningTimestampingServiceAddress"]), Int32.Parse(_settingManager["DocumentSigningEstimatedTimestampSize"]), CryptoStandard.CMS);

明确要求iTextSharp为

Int32.Parse(_settingManager["DocumentSigningEstimatedTimestampSize"])

许多字节来嵌入签名。

因此,请减少\u settingManager[“DocumentSigningEstimatedTimestampSize”]值。

0要求iTextSharp进行粗略估计。这样的估计可能会超出某些限制,因此不应在您的情况下使用。

顺便说一下,名称DocumentSigning估计时间戳大小在这里具有误导性。

附言:如果你在签名中嵌入了额外的材料,比如CRL、OCSP响应或时间戳,那么签名的大小就会增加。对于PDF/A-1a合规性,请尽可能少地在签名中添加此类附加信息。

 类似资料:
  • 一致性问题 在分布式系统中,一致性(Consistency,早期也叫 Agreement)是指对于系统中的多个服务节点,给定一系列操作,在协议(往往通过某种共识算法)保障下,试图使得它们对处理结果达成某种程度的一致。 如果分布式系统能实现“一致”,对外就可以呈现为一个功能正常的,且性能和稳定性都要好很多的“虚处理节点”。 举个例子,某影视公司旗下有西单和中关村的两个电影院,都出售某电影票,票一共就

  • 我正在为我的应用程序创建一个cassandra会话对象,并为它创建一些准备好的语句。对每个准备好的语句设置不同的一致性级别。 我们之前只有statement1,cassandra读取延迟小于10ms。当我们添加statement2并从代码的一部分开始使用它时,每次cassandra调用的延迟都会增加到250ms。 这是datastax中的错误吗?有没有可能 正在将一致性级别设置为? 我错过了一些愚

  • 使用CQRS和事件存储,微服务之间的编排提供了最终的一致性,其中一个微服务中的更改需要一点时间传播到其他相关的下游系统(本质上是其他微服务)。如果数据非常关键,以至于两个微服务都应该具有很强的数据一致性,那么有什么选择呢?我能想到的一个选择是像数据网格那样的直写缓存,但这非常脆弱,特别是在分布式系统中。

  • 在jasper-report中生成PDF/A包含许多缺陷,并且在某些版本的jasper-report中不受支持。这就是为什么我决定传递这篇问答文章的原因,它指出了将一个带有图形的简单报表导出到PDF/a所必需的步骤和库版本 示例数据(usersrep.csv) 如果将报告导出为pdf,我需要做什么来生成pdf/A-1A?

  • 目前线程模型 非一致性场景 1,客户端请求加锁写入db和binlog文件 2,将结果返回客户端 3,通过发送BinlogSync请求向从库同步 4,从库返回BinlogSyncAck报告同步状况 一致性场景 1,客户端请求先写入binlog文件 2,通过发送BinlogSync请求向从库同步 3,从库返回BinlogSyncAck报告同步状况 4,将相应的请求写入db 5,将结果返回客户端 Bin

  • 问题内容: protocol BasePresenterProtocol : class {} protocol DashboardPresenterProtocol : BasePresenterProtocol {} 在上面的代码中,我在下一行收到错误 ,但未确认协议,但我已在中声明。虽然我已经宣布 为什么会出现此错误?请让我知道我在这段代码中做错了什么。 问题答案: 您不能使用type 属性