如何解决加载 ECIES 公钥
[生成的公钥如下 (https://jameshfisher.com/2017/04/14/openssl-ecc/)
Alice 生成她的私钥:
openssl ecparam -name secp256k1 -genkey -noout -out alice_priv_key.pem
Alice 从她的私钥中提取她的公钥:
openssl ec -in alice_priv_key.pem -pubout -out alice_pub_key.pem
当我需要使用公钥发送加密数据时,我有一个 C 语言的应用程序。我正在尝试从公共 (alice_pub_key.pem
) 文件加载数据。
我将 PEM 文件转换为来自 (https://holtstrom.com/michael/tools/hextopem.php) 的十六进制数据。
看来我没有以正确的格式提供数据。任何人都可以建议出了什么问题吗?
key = EC_KEY_new_by_curve_name(NID_secp256k1)
group = EC_KEY_get0_group(key)
pub_key = EC_POINT_new(group)
EC_POINT * point = EC_POINT_hex2point(group,ptr,pub_key,NULL)
此时返回null
。
解决方法
您可以尝试 PEM_read_EC_PUBKEY 读取公钥。这避免了解析或重新编码公钥本身。
请注意,为此您可能需要最近的 OpenSSL;这个功能是什么时候引入的,从文档中很难知道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。