问题描述
给定如下所示的 PGP 公钥块,如何使用该密钥实例化 BouncyCastle PGPPrivateKey 对象?
-----BEGIN PGP PRIVATE KEY BLOCK----
mQIlNBGBBZ2nr0M7Dlw9s7u8MlbZvkPviVQF4lNzQ5tSmGNT0QV/QuC8a/gQ
...
...
...
Bhn0TfXYINgO0fIj4CjIduDn1aoUcQ5gF2XuA==
=3U0p
-----END PGP PRIVATE KEY BLOCK-----
我发现了许多关于如何从 PGPSecretKeyRing 获取 PGPPrivateKey 的示例,但不幸的是,我是从上述格式的私钥开始的。我无法找到使用该数据实例化 PGPPrivateKey 或将数据放入 PGPSecretKeyRing 以便于提取的方法。
BouncyCastle 似乎不支持从 PRIVATE KEY BLOCK 格式转换为 Java 表示的一种方法,但我也不知道从哪里开始将它们转换为可用的格式.我已经使用 PGPObjectFactory 尝试了以下和类似版本的许多排列,但一直无法找到一种方法以 PGP 库知道如何使用的格式传递私钥块。
privateKeyInputStream = PGPUtil.getDecoderStream(new ByteArrayInputStream(privateKeyBytes));
PGPSecretKeyRingCollection pgpSecretKeyRingCollection =
new PGPSecretKeyRingCollection(privateKeyInputStream,new JcaKeyFingerprintCalculator() );
Iterator keyRingIterator = pgpSecretKeyRingCollection.getKeyRings();
while(keyRingIterator.hasNext()) {
String className = keyRingIterator.next().getClass().getSimpleName();
System.out.println("keyRingIterator object : " + className); // never called
}
如何使用 PGP PRIVATE KEY BLOCK 提供的私钥解密 Java 代码中的文件?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)