我想用 Bouncy Castle 从用户的公钥中读取颁发者字符串。是否有示例代码或我可以从中学习的东西?
问问题
4765 次
2 回答
3
如果您可以获得证书对象,那么您可以执行以下操作:
((X509Certificate) certificate).getIssuerX500Principal().getName();
公钥本身没有颁发者——只有证书有。您可以从证书中获取公钥,反之则不行。
更新:由于您似乎想验证用户的有效性,因此仅公钥不提供此信息。公钥用于加密/数字签名验证,但对于 PKI 的其余部分,您需要证书。实际上,验证写在证书中的颁发者并不能给您任何保证。您需要检查:
- 证书吊销列表 - 即证书是否未被吊销。这是通过提供的 CRL 或通过 ocsp 协议完成的。
- 证书到期
于 2010-08-02T09:21:56.750 回答
1
公钥对象没有说明是谁生成的。它只包含您需要使用公钥加密(或验证)的内容。
如果您从证书 (java.security.cert.X509Certificate) 中获取了公钥,那么您可以使用 getIssuerX500Principal() 从中获取证书颁发者。
证书是身份与公钥的绑定。作为其中的一部分,证书表明它是由谁颁发的。因此,您可以验证您是否信任该发行者以及因此是否信任该绑定。
此外,密钥对很可能不是由证书颁发者生成的。该主题刚刚向发行人证明它确实拥有相关的私钥。
于 2010-08-02T14:54:24.743 回答