我很难从文档和源代码中找出 Esig DSS java 套件。(eu.europa.esig.dss.* 树)我们连接到瑞典银行 ID 来签署 PDF 和简单的纯文本。响应是带有签名和 OCSP 响应字段的 SOAP XML。最终目标是将这两个部分组合成一个单一的对象“有效签名”,可以嵌入到 PDF 中(使用 DSS 和 PDFbox)。BankID Soap 字段的内容似乎具有适用于 DSS 工具的正确格式:签名可以加载DSSDocument sigDoc = new InMemoryDocument(xmlSignature)SignedDocumentValidator documentValidator = SignedDocumentValidator.fromDocument(sigDoc);// ...AdvancedSignature advancedSignature = documentValidator.getSignatures().get(0);并且可以读取 OCSP 响应ExternalResourcesOCSPSource source = new ExternalResourcesOCSPSource(ocspBytes);BasicOCSPResp basicOCSPResp = source.getContainedOCSPResponses().get(0);我可以从对象中打印出各种信息,找到嵌入的证书等,因此格式似乎是合法的。问题:如何从 ExternalResourcesOCSPSource 获取有效的 OCSPToken?我一直在兜圈子,试图将两者组合成一个 AdvancedSignature(如果这是我可以用来嵌入 PDF 的)。
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
第三方系统提供的高级数字签名不能用于创建有效的签名 PDF
PAdES 签名始终封装在 PDF 文档中,因此签名服务不可能返回 DSS 认为有效的分离的 PAdES 签名。
它可能将分离的 CAdES 或 XAdES 签名提供到可由 DSS 处理的 SOAP 消息中(DSS 提供高级 API 以使用 XAdES、CAdES、PAdES 和 aSiCS 格式对文档进行签名)。
两种格式都支持嵌入 OCSP 响应,但也需要添加时间戳,这使得构建最终格式更加困难。这可能是在 SOAP 消息中使用自定义字段以返回 OCSP 响应的原因
XAdES 和 PAdES 在概念上相似但在结构上不同。XAdES 签名是 XML,PAdES 是二进制。XML 签名无法转换为 PAdES
PAdES 和 CAdES 使用 CMS,都是二进制的,它们使用 ASN.1 语法。但签名消息不同,CAdES 签名是在整个文档(以及一些其他属性)上计算的,PAdes 使用PDF 文档的某些数据。因此,cades 签名也无法转换为 PAdes。
添加回答
举报
0/150
提交
取消