如何将 Bouncy Castle PGP 密钥存储在 Java 密钥库中?
How can I store a Bouncy Castle PGP key in a Java Keystore?
我有一个 JKS 密钥库,它在我的应用程序中保存了几个 private/public 密钥对。这已经使用密钥库的密码进行了保护。我正在添加用于使用 Bouncy Castle 执行 OpenPGP 的密钥,并且我需要生成几个密钥以用于 Bouncy Castle PGP。我知道我可以将这些密钥存储为单独的文件,但这些文件需要使用密码单独保护,这让用户很头疼。我只想将 PGP 密钥存储在现有的密钥库中。我已经阅读了关于 Whosebug 的几个回复,暗示它是可能的,但没有关于如何的明确答案。那么我可以将 PGP 密钥存储在现有的密钥库中吗?
这就是我的想法。 Bouncy Castle 的 类 for PGP 未实现密钥或证书。它确实有 JcaPGPKeyPair 可以包装一个 PrivateKey/PublicKey 实例。所以我可以在 JCE 中创建密钥,然后 "import" 使用 JcaPGPKeyPair 将 JCE 密钥放入 BC PGP 基础结构中。完成后,我会丢弃所有 BC PGP 实例,并在我再次需要它们时重新创建。可能使用 JcaPGPKeyConverter 来完成 JCE 密钥和 PGP 密钥之间的繁重转换?
我可以将 2 个 JCE RSA 或 DSA 密钥对用于 PGP 想要使用的签名和加密密钥吗?将它们保存在密钥库中,并在我想使用这些密钥时按需重建 PGP 基础结构?
I'd like to simply store the PGP keys in the existing Keystore. I've read several responses on Whosebug alluding to it being possible, but no definitive answer about how. So can I store the PGP keys in the existing Keystore?
Java 密钥库不支持 OpenPGP 密钥。 OpenPGP 是另一个与 X.509 不兼容的标准。
Bouncy Castle's classes for PGP do not implement Key or Certificate. It does have JcaPGPKeyPair which can wrap a PrivateKey/PublicKey instance. So I could create keys within JCE, then "import" the JCE keys into the BC PGP infrastructure using JcaPGPKeyPair. Once I'm done I throw away all of the BC PGP instances and recreate when I need them again. Possibly using JcaPGPKeyConverter to do the heavy lifting of converting between JCE keys and PGP keys?
Could I use 2 JCE RSA or DSA keypairs for both signature and encryption keys PGP wants to use? Keep those in the Keystore and simply reconstruct the PGP infrastructure on demand when I want to use those keys?
您可能可以提取构成 public 和私钥的纯数字,但会丢失有关用户 ID、时间戳等的所有信息,您每次都必须重建这些信息。我不会走这样一条脆弱且容易出错的道路。 OpenPGP 和 X.509 密钥属性没有真正的映射,证书(密钥上的签名)变得更糟。
我有一个 JKS 密钥库,它在我的应用程序中保存了几个 private/public 密钥对。这已经使用密钥库的密码进行了保护。我正在添加用于使用 Bouncy Castle 执行 OpenPGP 的密钥,并且我需要生成几个密钥以用于 Bouncy Castle PGP。我知道我可以将这些密钥存储为单独的文件,但这些文件需要使用密码单独保护,这让用户很头疼。我只想将 PGP 密钥存储在现有的密钥库中。我已经阅读了关于 Whosebug 的几个回复,暗示它是可能的,但没有关于如何的明确答案。那么我可以将 PGP 密钥存储在现有的密钥库中吗?
这就是我的想法。 Bouncy Castle 的 类 for PGP 未实现密钥或证书。它确实有 JcaPGPKeyPair 可以包装一个 PrivateKey/PublicKey 实例。所以我可以在 JCE 中创建密钥,然后 "import" 使用 JcaPGPKeyPair 将 JCE 密钥放入 BC PGP 基础结构中。完成后,我会丢弃所有 BC PGP 实例,并在我再次需要它们时重新创建。可能使用 JcaPGPKeyConverter 来完成 JCE 密钥和 PGP 密钥之间的繁重转换?
我可以将 2 个 JCE RSA 或 DSA 密钥对用于 PGP 想要使用的签名和加密密钥吗?将它们保存在密钥库中,并在我想使用这些密钥时按需重建 PGP 基础结构?
I'd like to simply store the PGP keys in the existing Keystore. I've read several responses on Whosebug alluding to it being possible, but no definitive answer about how. So can I store the PGP keys in the existing Keystore?
Java 密钥库不支持 OpenPGP 密钥。 OpenPGP 是另一个与 X.509 不兼容的标准。
Bouncy Castle's classes for PGP do not implement Key or Certificate. It does have JcaPGPKeyPair which can wrap a PrivateKey/PublicKey instance. So I could create keys within JCE, then "import" the JCE keys into the BC PGP infrastructure using JcaPGPKeyPair. Once I'm done I throw away all of the BC PGP instances and recreate when I need them again. Possibly using JcaPGPKeyConverter to do the heavy lifting of converting between JCE keys and PGP keys?
Could I use 2 JCE RSA or DSA keypairs for both signature and encryption keys PGP wants to use? Keep those in the Keystore and simply reconstruct the PGP infrastructure on demand when I want to use those keys?
您可能可以提取构成 public 和私钥的纯数字,但会丢失有关用户 ID、时间戳等的所有信息,您每次都必须重建这些信息。我不会走这样一条脆弱且容易出错的道路。 OpenPGP 和 X.509 密钥属性没有真正的映射,证书(密钥上的签名)变得更糟。