Bauen und testen
Diese Anleitung führt vom frischen Klon zu zwei gebauten und geprüften Bauformen und zu einem laufenden Windows-Dienst, der eine erste Anfrage beantwortet. Rechnen Sie beim ersten Mal mit 10 bis 20 Minuten, den größten Teil davon für den Bau von OpenSSL.
Voraussetzung: Die Werkzeuge aus Voraussetzungen sind installiert.
1. L4Re-Bauform bauen und testen
Wechseln Sie in das Verzeichnis der Bauform. Aus der Wurzel des Repositorys heraus greift die
.cargo/config.toml der Bauform nicht.
cd l4re
cargo test
Unter Windows muss Strawberry Perl im Suchpfad vor anderen Perl-Fassungen stehen, etwa mit
$env:PATH = "C:\Strawberry\perl\bin;" + $env:PATH.
Am Ende meldet jede Testgruppe test result: ok. Die Tests prüfen unter anderem, dass das gebundene
OpenSSL ML-DSA kennt, dass eine manipulierte Signatur abgelehnt wird und dass die Testvektoren die
tatsächlichen Größen von Signaturen und Chiffraten haben.
Für die Linux-Ziele:
cd l4re cargo build --release --target x86_64-unknown-linux-gnu cargo build --release --target aarch64-unknown-linux-gnu # Querübersetzung
Ein so gebautes Programm führt außerhalb von L4Re eine Vorführung aus und endet; es nimmt keine Anfragen an.
2. Windows-Bauform bauen und testen
Geben Sie das OpenSSL an, gegen das gebaut werden soll, und bauen Sie aus dem Verzeichnis win:
$env:OPENSSL_DIR = "C:\OpenSSL-3.6" # Ihr Installationsverzeichnis cd win cargo test cargo build --release
Enthält lib\ nur statische Bibliotheken, setzen Sie zusätzlich $env:OPENSSL_STATIC = "1". Das
Programm liegt danach unter win\target\release\wvds_crypto_service.exe.
3. Windows-Dienst starten
.\target\release\wvds_crypto_service.exe --no-tui --single
Das Startbanner nennt die tatsächlich gebundene OpenSSL-Fassung, etwa OpenSSL 3.5.4 30 Sep 2025.
Danach meldet der Dienst Starting gateway: Default Gateway on \\.\pipe\wvds_crypto und wartet auf
Verbindungen.
4. Erste Anfrage senden
Öffnen Sie eine zweite PowerShell und fragen Sie den Dienst nach seinem Zustand:
$pipe = [System.IO.Pipes.NamedPipeClientStream]::new('.', 'wvds_crypto', 'InOut') $pipe.Connect(5000) $utf8 = [System.Text.UTF8Encoding]::new($false) $reader = [System.IO.StreamReader]::new($pipe, $utf8) $writer = [System.IO.StreamWriter]::new($pipe, $utf8) $writer.NewLine = "`n"; $writer.AutoFlush = $true $writer.WriteLine('{"operation":"info","request_id":"i1"}') $reader.ReadLine() $pipe.Dispose()
Die Antwort ist eine JSON-Zeile mit "success":true, "status":"running" und der Liste der Verfahren.
Wie Sie Schlüssel erzeugen, signieren und verschlüsseln, zeigt
Den Windows-Dienst ansprechen.
5. Testvektoren unabhängig prüfen
Die Testvektoren der L4Re-Bauform lassen sich gegen ein beliebiges OpenSSL ab 3.5 nachrechnen:
python tools/verify-test-vectors.py l4re/crypto_test_vectors.json "C:\Program Files\OpenSSL\bin\libcrypto-3-x64.dll"
Das Skript meldet 8 vectors, 0 failures, wenn jeder Vektor stimmt. Einzelheiten:
Testvektoren prüfen.