2012-06-09 5 views
2

Использование BounceCastle У меня работает следующий код. Он генерирует пару ключей и возвращает формат ASN.1 DER-encoded.Получить открытый ключ DER-кода

//Generate new key 
var generator = new RsaKeyPairGenerator(); 
generator.Init (new KeyGenerationParameters (new SecureRandom(), 1024)); 
var keyPair = generator.GenerateKeyPair(); 

//Save private key for later use 
keyParameters = (RsaKeyParameters)keyPair.Private; 

//Export ASN.1 DER-encoded 
SubjectPublicKeyInfo info = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(keyPair.Public); 
return info.GetEncoded(); 

Он был протестирован и работает со сторонним программным обеспечением.

Мой вопрос: как я могу сделать инверсию вышеуказанной кодировки. Имея закодированный открытый ключ, как получить открытый ключ в RsaKeyParameters.

Я думаю, я собираюсь сделать что-то похожее на это.

SubjectPublicKeyInfo s = new SubjectPublicKeyInfo(????, publicKeyBytes); 
RsaKeyParameters key = (RsaKeyParameters)PublicKeyFactory.CreateKey(s); 

Так что, если это близко мне нужно знать, что положить в ????, он ожидает, что объект типа AlgorithmIdentifier.

ответ

3

Благодаря this answer я получил следующий код:

 AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(req.PublicKey); 
     RsaKeyParameters key = (RsaKeyParameters) asymmetricKeyParameter; 
Смежные вопросы