Gradnja in testiranje
Ta vodnik vas od svežega klona pripelje do obeh zgrajenih in preverjenih izvedb ter do delujoče storitve v sistemu Windows, ki odgovori na prvo zahtevo. Prvič računajte z 10 do 20 minutami, večino tega časa porabi gradnja OpenSSL.
Pogoj: orodja iz Predpogoji so nameščena.
1. Zgradite in preizkusite izvedbo L4Re
Preklopite v mapo izvedbe. Iz korena repozitorija datoteka .cargo/config.toml izvedbe ne učinkuje.
cd l4re
cargo test
V sistemu Windows mora biti Strawberry Perl na iskalni poti pred drugimi različicami Perla, na primer z
$env:PATH = "C:\Strawberry\perl\bin;" + $env:PATH.
Na koncu vsaka skupina testov izpiše test result: ok. Testi med drugim preverijo, da povezani OpenSSL
pozna ML-DSA, da je spremenjen podpis zavrnjen in da imajo testni vektorji dejanske velikosti podpisov in
šifriranih besedil.
Za cilje Linux:
cd l4re cargo build --release --target x86_64-unknown-linux-gnu cargo build --release --target aarch64-unknown-linux-gnu # navzkrižno prevajanje
Tako zgrajen program zunaj L4Re izvede predstavitev in se konča; zahtev ne sprejema.
2. Zgradite in preizkusite izvedbo Windows
Navedite OpenSSL, s katerim naj se program poveže, in gradite iz mape win:
$env:OPENSSL_DIR = "C:\OpenSSL-3.6" # vaša namestitvena mapa cd win cargo test cargo build --release
Če mapa lib\ vsebuje le statične knjižnice, nastavite še $env:OPENSSL_STATIC = "1". Program je nato
v win\target\release\wvds_crypto_service.exe.
3. Zaženite storitev v sistemu Windows
.\target\release\wvds_crypto_service.exe --no-tui --single
Zagonska pasica navede dejansko povezano različico OpenSSL, na primer OpenSSL 3.5.4 30 Sep 2025. Nato
storitev izpiše Starting gateway: Default Gateway on \\.\pipe\wvds_crypto in čaka na povezave.
4. Pošljite prvo zahtevo
Odprite drugo okno PowerShell in storitev vprašajte po stanju:
$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()
Odgovor je ena vrstica JSON s "success":true, "status":"running" in seznamom algoritmov. Kako ustvarite
ključe, podpisujete in šifrirate, opisuje Klicanje storitve v sistemu Windows.
5. Neodvisno preverite testne vektorje
Testne vektorje izvedbe L4Re lahko preračunate s katerimkoli OpenSSL 3.5 ali novejšim:
python tools/verify-test-vectors.py l4re/crypto_test_vectors.json "C:\Program Files\OpenSSL\bin\libcrypto-3-x64.dll"
Če je vsak vektor pravilen, skripta izpiše 8 vectors, 0 failures. Podrobnosti:
Preverjanje testnih vektorjev.