![Die Nettle-Pakete scheinen keine RSA-Funktionen auf Ubuntu zu installieren](https://rvso.com/image/1072208/Die%20Nettle-Pakete%20scheinen%20keine%20RSA-Funktionen%20auf%20Ubuntu%20zu%20installieren.png)
Vom Paketmanager aus habe ich die Nettle-Bibliotheken installiertlibnettle7,libhogweed5,Brennnessel-Behälter, UndBrennnessel-Entwickler, die auf Nettle 3.5.1 zu basieren scheinen. Ich verwende Ubuntu 20.04. Danach konnte ich zwei Programme mit AES- und SHA-Algorithmen schreiben, die einwandfrei funktionierten. Ich weiß also, dass die Header-Pfade korrekt sind.
Ich konnte jedoch keine RSA-Funktionen aufrufen, ohne Compilerfehler zu erhalten.
$ 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
Hier ist der minimale Code, der den Fehler erzeugt:
#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);
}
Die Datei rsa.h befindet sich in /usr/include/nettle und enthält die Funktionen rsa_public_key_init und rsa_public_key_init. Wie kann ich die RSA-Funktionen installieren und aufrufen?