2013-09-12 3 views
1

Я использую библиотеку Bouncy Castle в Java для чтения CSR. Мне нужно извлечь информацию открытого ключа из КСО. Я вижу, что openssl может извлекать необходимую информацию из CSR.BouncyCastle: Извлечь информацию о открытых ключах из запроса на подписание сертификата

Я не могу найти способ сделать это в BouncyCastle. Я смог прочитать объект PKCS10CertificationRequest из CSR. Я видел примеры с использованием SubjectPublicKeyInfo для извлечения открытого ключа. Но код опирается на тот факт, что алгоритм открытого ключа уже известен. Я могу выполнить операцию «instanceof» для различных параметров алгоритма и совместить, но я думаю, что будет что-то лучше. Я хочу получить алгоритм из самой CSR. Я попытался найти эту информацию, но не смог найти ничего подобного. Спасибо за помощь.

+0

Я также ищу, чтобы разрешить тип PublicKey из CertificateSigningRequest, обработанного с помощью экземпляра Pkcs10CertificateRequest. Фактически SubjectPublicKeyInfo содержит AlgorithmID (ASI.1 ObjectIdetifier (OID)), а в пространстве имен Org.BouncyCastle.Asn1.Pkcs - это класс PkcsObjectIdentifiers, содержащий ObjectID и их соответствующие значения, но не структура, позволяющая разрешить тип алгоритма! !? Очень расстраивает. – MaRk

ответ

2

Решение заключается в создании новой обертки вокруг PKCS10CertificateRequest как это:

JcaPKCS10CertificationRequest jcaCertRequest = 
     new JcaPKCS10CertificationRequest(pkcs10CertRequest.getEncoded()).setProvider("BC"); 

Этот класс имеет метод getPublicKey().

PublicKey publicKey = jcaCertRequest.getPublicKey(); 
Смежные вопросы