Есть проблемы при инициализации движка (с динамическими библиотеками).
Не подскажете, как можно решить?
Пример работает, если брать движок по id "gost".
Код:
#include <stdlib.h>
#include <stdio.h>
#include <openssl/engine.h>
#include <openssl/ssl.h>
int main() {
ENGINE_load_builtin_engines();
int rc = 0, digest_len, i;
unsigned long err = 0;
EVP_MD_CTX *ctx;
const EVP_MD *md;
ENGINE *eng = ENGINE_by_id("kncagost");
rc = ENGINE_init(eng);
if (0 == rc) {
fprintf(stderr, "ENGINE_set_default failed, err = 0x%lx\n", err);
abort();
}
ENGINE_set_default_digests(eng);
return 0;
}
Команда компиляции:
gcc -g -o example example.c -I/home/user/Linux/dynamic/x64/include -L/home/Linux/dynamic/x64 -lcrypto -lssl -ldl -lz -L/home/Linux/dynamic/x64/engines -lkncagost
Устанавливаю содержимое $LD_LIBRARY_PATH командой:
export LD_LIBRARY_PATH=/home/user/Linux/dynamic/x64:/home/user/Linux/dynamic/x64/engines:$LD_LIBRARY_PATH
Вывод:
./example
ENGINE_set_default failed, err = 0x0
Aborted (core dumped)