encryption - 加载 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
)文件加载数据。
我从( https://holtstrom.com/michael/tools/hextopem.php)将 PEM 文件转换为十六进制数据。
所以似乎我没有以正确的格式提供数据。谁能建议出了什么问题?
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;很难从文档中找出这个功能是什么时候引入的。
推荐阅读
- java - IntelliJ 中 Java 类的命令行选项
- python - 使用 os 命令在 tupe 中分配它的 greping 想要删除 /t
- android - 如何以编程方式在 TextView 中设置文本的对齐(右或左)
- random - NetLogo:将海龟随机但平等地分配给不同的组
- git - gitignore 无法忽略带有空格的文件/文件夹
- c# - 如何在tabcontrol C#上执行多个保存功能
- visual-studio-code - 重新处理 - VSCode 原因 Refmt 中断项目
- java - 即使消息在消费者端的rabbitmq队列中也得到NULL
- matlab - 如何在matlab中围绕对象中心旋转图像?
- debugging - VS Code:Python 3:调试时如何更改变量?