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 次 |
最近记录: |