Как прочитать строку эмитента из открытого ключа пользователя? - PullRequest
1 голос
/ 02 августа 2010

Я хочу прочитать строку эмитента из открытого ключа пользователя с помощью Bouncy Castle. Есть пример кода или что-то, из чего я могу научиться?

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

Если вы можете получить объект сертификата, то вы можете сделать следующее:

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

У самого открытого ключа нет эмитента - только сертификат.И вы можете получить открытый ключ из сертификата, но не наоборот.

Обновление: Поскольку выясняется, что вы хотите проверить достоверность ваших пользователей, только открытый ключне предоставлять эту информацию.Открытые ключи используются для шифрования / проверки цифровой подписи, но для остальной части PKI вам необходим сертификат.На самом деле, проверка эмитента, который указан в сертификате, не дает вам никакой гарантии.Вам необходимо проверить:

  • списки отзыва сертификатов, т. Е. Не отозван ли сертификат.Это делается либо через предоставленные CRL, либо через протокол ocsp.
  • истечение срока действия сертификата
1 голос
/ 02 августа 2010

Объект открытого ключа не говорит, кто его сгенерировал.Он просто содержит то, что вам нужно зашифровать (или проверить) с открытым ключом.

Если вы получили открытый ключ из сертификата (java.security.cert.X509Certificate), вы можете получить сертификат от него с помощью getIssuerX500Principal ().

привязка личности к открытому ключу.Как часть этого, свидетельство указывает, кому это было выпущено.Таким образом, вы можете проверить, доверяете ли вы этому издателю и, следовательно, привязке.

Кроме того, пара ключей, скорее всего, не была сгенерирована эмитентом сертификата.Субъект только что доказал эмитенту, что у него есть соответствующий закрытый ключ.

...