获取DER编码的公钥

时间:2012-06-09 19:02:42

标签: c# encryption bouncycastle

使用BounceCastle我有以下代码可以使用。 它生成密钥对并返回ASN.1 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类型的对象。

1 个答案:

答案 0 :(得分:4)

感谢this answer我收到了以下代码:

        AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(req.PublicKey);
        RsaKeyParameters key = (RsaKeyParameters) asymmetricKeyParameter;