如何从用户的公钥读取issuer String?

时间:2010-08-02 09:15:15

标签: java security certificate bouncycastle x509

我想从Bouncy Castle的用户公钥中读取issuer String。是否有示例代码或我可以学习的东西?

2 个答案:

答案 0 :(得分:3)

如果您可以获取证书对象,则可以执行以下操作:

((X509Certificate) certificate).getIssuerX500Principal().getName();

公钥本身没有发卡行 - 只有证书具有。您可以从证书中获取公钥,但反之亦然。

更新:由于您似乎要验证用户的有效性,因此仅公钥不会提供此信息。公钥用于加密/数字签名验证,但对于PKI的其余部分,您需要证书。实际上,验证证书中写的发行人不会给您任何保证。你需要检查:

  • 证书撤销列表 - 即证书是否未被撤销。这可以通过提供的CRL或通过ocsp协议完成。
  • 证书到期

答案 1 :(得分:1)

公钥对象没有说明是谁生成的。它只包含使用公钥加密(或验证)所需的内容。

如果您从证书(java.security.cert.X509Certificate)获得了公钥,那么您可以使用getIssuerX500Principal()从中获取证书颁发者。

证书是身份与公钥的绑定。作为其中的一部分,证书表明它是由谁发出的。因此,您可以验证您是否信任该发行人,从而确认是否具有约束力。

此外,密钥对很可能不是证书颁发者生成。该主题刚向发行人证明它确实拥有相关的私钥。