openssl api 函数参考问题

openssl api funtion reference issue

我正在尝试生成并使用 openssl 椭圆曲线。 运行 这个:来自文档

EC_GROUP *curve;
if(NULL == (curve = EC_GROUP_new_by_curve_name(NID_secp224r1)))
      handleErrors(); 
EC_KEY *key;
if(NULL == (key = EC_KEY_new_by_curve_name(NID_secp224r1)))
     handleErrors();
if(1 != EC_KEY_generate_key(key)) handleErrors();

这些包括:

#include <openssl/obj_mac.h>
#include <openssl/ec.h>
#include <openssl/bn.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

我查看了 ec.h 文件,其中包含我正在调用的函数。我的错误是:

key_gen.c:(.text+0x15): undefined reference to `EC_GROUP_new_by_curve_name'
key_gen.c:(.text+0x2a): undefined reference to `handleErrors'
key_gen.c:(.text+0x34): undefined reference to `EC_KEY_new_by_curve_name'
key_gen.c:(.text+0x49): undefined reference to `handleErrors'
key_gen.c:(.text+0x55): undefined reference to `EC_KEY_generate_key'
key_gen.c:(.text+0x64): undefined reference to `handleErrors'

我需要更多的内容吗?

编译时需要在OpenSSL加密库中link:

gcc -g -Wall -Wextra -o key_gen key_gen.c -lcrypto

您需要定义handleErrors();你自己。