我很难从文档和源代码中找到Esig java套件。(eu.europa.esig.dss.* tree)
我们连接到瑞典BankID签署PDF和简单的纯文本。response是带有签名字段和OCSP响应的SOAP。
最终目标是将这两个部分组合成一个单独的对象“一个有效的签名”,可以嵌入到PDF中(使用DSS和PDFbox)。
BankID Soap字段的内容似乎为决策支持系统工具提供了正确的格式:
可以将签名加载到
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);我可以打印各种信息,从对象,找到嵌入式证书等,所以格式似乎是合法的。
问:如何从OCSPToken中获得有效的ExternalResourcesOCSPSource?
我一直在循环运行,试图将两者合并到一个AdvancedSignature中(如果这就是我可以用来嵌入到一个PDF中的话)。
发布于 2018-09-12 19:59:08
由第三个系统提供的高级数字签名不能用于创建有效的签名PDF。
PAdES签名总是被封装在PDF文档中,因此签名服务不可能返回被决策支持系统认为有效的独立PAdES签名。
它可能在SOAP消息中提供了一个独立的CAdES或XAdES签名,可以由决策支持系统处理(决策支持系统提供了一个高级API来使用XAdES、CAdES、PAdES和aSiCS格式对文档进行签名)。
这两种格式都支持嵌入OCSP响应,但它也需要添加一个TimeStamp,这使得构建最终格式更加困难。这可能是在SOAP消息中使用自定义字段返回OCSP响应的原因。
XAdES和PAdES在概念上相似,但在结构上不同。XAdES签名是XML,PAdES是二进制签名。XML签名不能转换为PAdES。
PAdES和CAdES使用CMS,它们都是二进制的,并且使用ASN.1语法。但是签名消息是不同的,CAdES签名是在整个文档(和一些属性)上计算的,而PAdes使用的是PDF文档的某些数据。因此,cades签名也不能转换为PAdes。
https://stackoverflow.com/questions/52275630
复制相似问题