3

使用 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 类型的对象。

4

1 回答 1

4

感谢这个答案,我得到了以下代码:

        AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(req.PublicKey);
        RsaKeyParameters key = (RsaKeyParameters) asymmetricKeyParameter;
于 2012-06-09T20:06:39.037 回答