关于c#:获取DER编码的公钥

Get DER-encoded public key

使用bouncecastle,我可以使用以下代码。它生成一个密钥对并返回ASN.1 der编码格式。

1
2
3
4
5
6
7
8
9
10
11
//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 ();

它已经过测试,并与第三方软件一起工作。

我的问题是:我如何才能使上述编码的倒数。有了已编码的公钥,如何将公钥获取到rsakey参数中。

我想我要做类似的事情。

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

所以如果这很接近,我需要知道放什么?????,它需要AlgorithmIdentifier类型的对象。


由于这个答案,我得到了以下代码:

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