Bob*_*man 17 c openssl pki elliptic-curve diffie-hellman
我正在使用OpenSSL的c库生成椭圆曲线Diffie-Hellman(ECDH)密钥对,遵循此处的第一个代码示例.它掩盖了这一行的实际公钥交换:
peerkey = get_peerkey(pkey);
Run Code Online (Sandbox Code Playgroud)
所述pkey变量和返回值的类型都是的EVP *.pkey包含先前生成的公钥,私钥和参数,返回值仅包含对等方的公钥.所以这提出了三个问题:
get_peerkey()实际提取公钥pkey以便发送给对等方?pKey密钥交换后提取私钥和params 来存储它们以供以后使用?get_peerkey()生成新EVP_PKEY结构?我已经看到了OpenSSL的功能EVP_PKEY_print_public(),EVP_PKEY_print_private()和EVP_PKEY_print_params()但这些是用于产生人类可读输出.我还没有找到任何将人类可读的公钥转换回EVP_PKEY结构的等价物.
Bob*_*man 36
为了回答我自己的问题,私钥和公钥有不同的路径.
要序列化公钥:
要反序列化公钥:
要序列化私钥:
要反序列化私钥:
也可以将BIGNUM转换为十六进制,十进制或"bin",尽管我认为mpi使用的字节最少.
| 归档时间: |
|
| 查看次数: |
7020 次 |
| 最近记录: |