问题描述
我正在从签名的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 (将#修改为@)