Справочная информация о функциях OpenSSL API - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь создать и поэкспериментировать с эллиптическими кривыми 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'

мне нужно больше включений?

1 Ответ

0 голосов
/ 26 июня 2018

При компиляции необходимо ссылаться в криптографической библиотеке OpenSSL:

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