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; |