【发布时间】:2018-05-03 00:07:39
【问题描述】:
我有 2 个文件:一个 PKCS#7 签名和一个已由该签名签名的文件。我的问题是如何正确验证此签名?为了做到这一点,我应该使用和从 PKCS7 中提取哪些数据?我听说动作的顺序是这样的:
- 检查证书是否过期
- 检查 CA 是否过期
- 检查此公钥是否仍然有效
- 或许还可以从 PKCS7 文件中的属性中提取哈希值,并检查与已签名的哈希文件是否相等
我说的对吗?以及如何使用 Bouncy Castle 来做到这一点?我遇到过这个
CMSSignedData data = new CMSSignedData(bytesArray)
但是如果有的话,我怎样才能只使用一种方法来检查有效性呢?这看起来过于复杂了 - 我应该获取每个证书,检查它的到期日期,编写自定义方法来完成它..并以某种方式检查公钥是否仍然有效..有可能更容易吗?
【问题讨论】:
-
验证数字签名很复杂。你可以从这样的例子开始stackoverflow.com/a/9261365/6371459
标签: java digital-signature bouncycastle pkcs#7