首先请注意,所有代码都已经在我的 linux 机器上测试过了。有相关的单元测试来确认。但是该代码不适用于android。
我在我的项目中包含了我自己的bouncycastle v1.48库。我不确定android是否已经嵌入了这个库,我希望这不会带来任何冲突(?)
我将其用作公钥算法标签,RSA_GENERAL
这在创建这样的密钥时很有用:
new PGPSecretKey(
PGPSignature.DEFAULT_CERTIFICATION,
publicKeyAlgorithmTag,
publicKey,
privateKey,
new Date,
identity.toString,
symmetricKeyAlgorithmTag,
passPhrase,
null,
null,
new SecureRandom(),
BC_PROVIDER_NAME
);
但是在创建密钥对时我没有使用这个标签,因为创建是从 java.security 发生的,而不是从 bouncycastle 发生的。这是相关代码的一部分(在 Scala 中):
val generator = KeyPairGenerator.getInstance(PUBLIC_KEY_ALGORITHM_STRING, BC_PROVIDER_NAME);
generator.initialize(KEY_SIZE_IN_BITS, new SecureRandom());
generator.generateKeyPair();
您在上面看到的公钥算法字符串就是字符串“RSA”
注意:我已经使用对称密钥算法遇到了 NoSuchAlgorithmException,但我通过从 CAST5 切换到 BLOWFISH 轻松克服了它。
您对我可以从哪里开始寻找解决方案或问题是什么有什么建议?谢谢