Eigenes OpenSSL einbinden
Diese Anleitung zeigt, wie Sie beide Bauformen gegen ein OpenSSL Ihrer Wahl bauen, etwa eine geprüfte Fassung 3.6 Ihres Hauses statt des mitgebauten OpenSSL 3.5.4. Das ist der übliche Weg für ausgelieferte Pakete, weil Sie dann Sicherheitsupdates von OpenSSL selbst einspielen können.
Was das OpenSSL mitbringen muss
- Fassung 3.5 oder neuer.
include\openssl\*.hund die Bibliothekenlibcryptoundlibsslfür die Zielarchitektur, unter Windows alslib\libcrypto.libundlib\libssl.lib.- Für dynamisches Binden die passenden Laufzeitbibliotheken, unter Windows
libcrypto-3-x64.dllundlibssl-3-x64.dll, die zur Laufzeit im Suchpfad des Programms liegen müssen.
Windows-Bauform
$env:OPENSSL_DIR = "C:\OpenSSL-3.6" cd win cargo build --release
Enthält das Verzeichnis nur statische Bibliotheken, setzen Sie vorher $env:OPENSSL_STATIC = "1".
OPENSSL_DIR aus der Umgebung geht dem Vorgabewert in win/.cargo/config.toml immer vor.
L4Re-Bauform
Schalten Sie das mitgebaute OpenSSL ab und nennen Sie das eigene:
export OPENSSL_DIR=/opt/openssl-3.6 cd l4re cargo build --release --target x86_64-unknown-linux-gnu \ --no-default-features --features pqc,openssl-system
Für Querübersetzung mit vorgebauten Bibliotheken je Architektur gibt es stattdessen
L4RE_OPENSSL_DIR; siehe Bauoptionen und Konfiguration.
Prüfen, welches OpenSSL wirkt
- Windows-Bauform: Das Startbanner zeigt die gebundene Fassung, etwa
OpenSSL: OpenSSL 3.6.0 …. - L4Re-Bauform: Beim Start schreibt der Dienst
OpenSSL version: …ins Protokoll. - Beide:
cargo testenthält einen Test, der scheitert, wenn das gebundene OpenSSL kein ML-DSA kennt.
Unter Linux lädt ein dynamisch gebundenes Programm gern das libcrypto des Systems statt des eigenen,
wenn der Suchpfad nicht stimmt. Ist das System-OpenSSL älter als 3.5, scheitern dann alle
Post-Quanten-Anfragen. Prüfen Sie mit ldd, welche Bibliothek tatsächlich geladen wird, oder binden Sie
statisch mit OPENSSL_STATIC=1.