Пакеты Nettle, похоже, не устанавливают функции RSA в Ubuntu.

Пакеты Nettle, похоже, не устанавливают функции RSA в Ubuntu.

Из менеджера пакетов я установил библиотеки Nettlelibnettle7,libhogweed5,крапивница, икрапива-dev, которые, по-видимому, основаны на Nettle 3.5.1. Я использую Ubuntu 20.04. После этого я смог написать две программы с использованием алгоритмов AES и SHA, которые работали нормально, поэтому я знаю, что путь заголовка правильный.

Однако мне не удалось вызвать функции RSA, не получив ошибок компиляции.

$ make rsa_test
/usr/bin/ld: /tmp/ccaqGeCe.o: in function `main':
rsa_test.cc:(.text+0x36): undefined reference to `nettle_rsa_public_key_init'
/usr/bin/ld: rsa_test.cc:(.text+0x42): undefined reference to `nettle_rsa_private_key_init'
collect2: error: ld returned 1 exit status
make: *** [Makefile:9: rsa_test] Error 1

Вот минимальный код, который приводит к ошибке:

#include <stdlib.h>
#include <stdio.h>
#include <nettle/rsa.h>
using namespace std;
int main(int argc, char **argv) {
  struct rsa_public_key pub;
  struct rsa_private_key priv;
  rsa_public_key_init(&pub);
  rsa_private_key_init(&priv);
}

Файл rsa.h находится в /usr/include/nettle и содержит функции rsa_public_key_init и rsa_public_key_init. Как установить функции RSA и вызывать их?

Связанный контент