EC_KEY_set_public_key的调用demo
时间: 2023-09-08 11:17:18 浏览: 144
IPbox_ec.zip易语言项目例子源码下载
可以给你一个示例代码:
```
#include <openssl/ec.h>
int set_public_key(EC_KEY *key, const unsigned char *pub_key, size_t pub_key_len)
{
EC_GROUP *group = EC_KEY_get0_group(key);
BIGNUM *x = BN_bin2bn(pub_key, pub_key_len, NULL);
BIGNUM *y = BN_new();
EC_POINT *point = EC_POINT_new(group);
int ret = 0;
if (!EC_POINT_set_affine_coordinates_GFp(group, point, x, y, NULL)) {
ret = -1;
goto end;
}
if (!EC_KEY_set_public_key(key, point)) {
ret = -1;
goto end;
}
end:
BN_free(y);
BN_free(x);
EC_POINT_free(point);
return ret;
}
```
这是一个用于设置 EC_KEY 公钥的函数,其中 pub_key 是公钥的二进制数据,pub_key_len 是公钥数据的长度,key 是一个已经初始化的 EC_KEY 对象。
阅读全文