我有 B 的 PGP 公钥。现在 A 想使用 PGP 方法,使用他的 PGP 公钥向 B 发送加密消息。如何使用 OpenSSL 执行此操作?
编辑
我看过 PGP 方法的 wiki 页面,其中使用随机密钥加密消息,然后再次使用发送方的 PGP 公钥加密该随机密钥,然后接收方将使用其私钥解密加密密钥,然后使用该解密密钥解密消息。但我无法在 openssl 中执行该过程。
它可以在 gpg 中完成,但我想知道如何在 OpenSSL 中完成?
答案1
OpenPGP 是 OpenSSL 未实现的协议,包括对称加密的派生模式。虽然您可以将 OpenSSL 用于实际的加密算法,但要使用 OpenSSL 命令实现 OpenPGP,您必须:
- 编写一个解析器OpenPGP 消息格式
- 编写自己的实现OpenPGP CFB 模式
- 处理一些关于安全和兼容性
- 把所有东西放在一起
不要编写自己的加密代码(这实际上不是一个小的项目在这里),而是依赖可用的库。有可以与 GPGME 交互的 GnuPG,以及几乎所有(或多或少)重要的编程语言的大量 GPGME 接口和本机库。
答案2
不能。虽然 OpenSSL 实现了大多数相同的加密算法,但它既不能理解也不能生成 OpenPGP 数据包格式。