我正在尝试将RFC 6637集成到Bouncy Castle C#中,这比最初想象的更具挑战性,因为必须同时存在私钥和公钥才能计算共享秘密:那些不适合充气城堡 API 的。
无论如何,RFC 的第 10 节定义了一个公钥将被编码到公钥加密会话密钥包中。这是发送方还是接收方的公钥?无论哪种方式,为什么 OID 不是它的一部分,因为没有 OID,该点或多或少是无用的。
更新: 我刚刚使用 Symantec Pgp 命令行工具转储 ecc 加密文件的数据包。现在我明白了一点:对于每次加密,发送者都会生成一个新的 ECDH 密钥,它与接收者的曲线相匹配,并将新的公钥作为包的一部分发送。
更新 2:
现在完全支持 RFC 6637。检查存储库。