为什么Bouncycastle的PEMReader不能读取这个M2Crypto生成的PEM?
我使用以下Python代码,使用M2Crypto,以PEM格式生成RSA密钥对:
bio = BIO.MemoryBuffer()
key_pair = RSA.gen_key(1024, 65537)
key_pair.save_key_bio(bio, cipher=None)
return bio.read()
以下使用Bouncycastle的Java代码尝试阅读它:
String signPem = ...;
PEMReader pemReader = new PEMReader(new StringReader(signPem));
Object signingKey = pemReader.readObject();
signPem
字符串与bio.read()
返回的字符串相同;没有我能看到的数据是在两个程序之间传播的;它是-----BEGIN RSA PRIVATE KEY-----n
等。
但是,readObject()调用会抛出ClassCastException:
java.lang.ClassCastException: org.bouncycastle.asn1.DERSequence
at org.bouncycastle.asn1.ASN1Object.fromByteArray(Unknown Source)
at org.bouncycastle.openssl.PEMReader.readKeyPair(Unknown Source)
at org.bouncycastle.openssl.PEMReader.readObject(Unknown Source)
所以很明显,BC错误地认定PEM中的数据由于某种原因不是关键对 - 但为什么呢?
没有找到相关结果
已邀请:
1 个回复
妒垮