将SubjectPublicKeyInfo格式的公钥转换为RSAPublicKey格式的java


问题内容

PublicKey.getEncoded(),返回一个包含SubjectPublicKeyInfo(x.509)格式的公共密钥的字节数组,如何将其转换为RSA公共密钥编码?


问题答案:

使用Bouncy Castle’s
SubjectPublicKeyInfo,如下所示:

byte[] encoded = publicKey.getEncoded();
SubjectPublicKeyInfo subjectPublicKeyInfo = new SubjectPublicKeyInfo(
    ASN1Sequence.getInstance(encoded));
byte[] otherEncoded = subjectPublicKeyInfo.parsePublicKey().getEncoded();