BouncyCastle-按特定顺序从CMSSignedData获取证书

问题描述

我正在从签名的PDF文档中提取CMS(又名PKCS#7)数据,并且我正尝试根据以下答案从中获取证书链:https://stackoverflow.com/a/44048288/7111805

我有以下代码:

CMSSignedData signedData = new CMSSignedData( signedContent,signatureBytes ); // From PDF data.
Collection <X509CertificateHolder> certificates = signedData.getCertificates().getMatches( null );

for ( X509CertificateHolder certificate : certificates )
    System.out.println( certificate.getSubject().toString() );

经过几个PDF文档的测试,该代码通常打印出三行,分别带有签名者,中间证书和根证书的主题。但是,顺序并不总是相同的:在某些文档中,它打印签名者,中间者和根,在其他文档中它打印根,中间者和签名者。我不需要特定的命令,但是我需要保持一致。

我可以通过比较主题和发行者的名称来手动排序列表,但我想知道是否存在使用BouncyCastle和/或纯Java进行此操作的正确,经过测试的方法,以及是否需要进行验证只是订购清单。我的任务是通过OCSP验证证书。

预先感谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...