Bouncy Castle でユーザーの公開鍵から発行者文字列を読み取りたい。サンプルコードまたは学習できるものはありますか?
2 に答える
証明書オブジェクトを取得できる場合は、次の操作を実行できます。
((X509Certificate) certificate).getIssuerX500Principal().getName();
公開鍵自体には発行者はありません。証明書だけが発行者を持っています。また、証明書から公開鍵を取得することはできますが、その逆はできません。
更新:ユーザーの有効性を確認したいように思われるため、公開鍵だけではこの情報は提供されません。公開鍵は暗号化/デジタル署名の検証に使用されますが、残りのPKIには証明書が必要です。実際、証明書に記載されている発行者を確認しても、何の保証もありません。以下を確認する必要があります。
- 証明書失効リスト-つまり、証明書が取り消されていないかどうか。これは、提供されているCRLまたはocspプロトコルを介して行われます。
- 証明書の有効期限
公開鍵オブジェクトは、誰がそれを生成したかを示していません。公開鍵で暗号化 (または検証) するために必要なものだけが含まれています。
証明書 (java.security.cert.X509Certificate) から公開鍵を取得した場合は、getIssuerX500Principal() を使用して証明書発行者を取得できます。
証明書は、ID を公開鍵にバインドしたものです。その一環として、証明書は発行元を示します。したがって、その発行者を信頼しているかどうか、つまりバインディングを信頼しているかどうかを確認できます。
また、キー ペアは、証明書の発行者によって生成されたものではない可能性が非常に高いです。サブジェクトは、関連付けられた秘密鍵を所有していることを発行者に証明しました。