~~NOTOC~~ {{wvds:title>Namestitev}} ===== Namestitev: 3-Koračna OEM Integracija ===== WvdS Crypto Service je **končna črna škatla**. Ničesar vam ni treba kompilirati ali konfigurirati. Preprosto sledite tem trem korakom. ---- ==== Korak 1: Vključitev Daemona v L4Re Image ==== Dodajte Crypto Service v vašo ''modules.list'': -- modules.list module wvds_crypto_service module libcrypto.so.3 module libssl.so.3 ---- ==== Korak 2: Zagon Daemona (Ned-Script) ==== Zaženite daemon v vašem Ned-scriptu: local L4 = require("L4") -- Ustvari skupni pomnilnik za komunikacijo local crypto_ds = L4.Env.ram:create(64 * 1024, L4.Dataspace.ALL):m("rw") -- Zaženi Crypto Daemon local crypto_daemon = L4.default_loader:start( { caps = { crypto_ep = crypto_ds:svr() } }, "rom/wvds_crypto_service" ) -- Vaš Gateway dobi odjemalčevo stran local gateway = L4.default_loader:start( { caps = { crypto_ep = crypto_ds } }, "rom/iss_gateway" ) **Razlaga:** * ''crypto_ds'' - Skupni pomnilnik Dataspace (64 KB) * ''crypto_ep = crypto_ds:svr()'' - Strežniška stran za daemon * ''crypto_ep = crypto_ds'' - Odjemalčeva stran za vaš Gateway ---- ==== Korak 3: Komunikacija iz Vaše Kode ==== Vključite header in uporabite pomožne funkcije: #include "wvds_crypto.h" void encrypt_sensor_data(const uint8_t* data, size_t len) { uint8_t request[1024]; size_t request_len = sizeof(request); // Zgradi zahtevo int rc = wvds_build_aes_encrypt_request( request, &request_len, 1, // Key-ID "sensor", 6, // AAD data, len // Čistopis ); if (rc == 0) { // Kopiraj zahtevo v skupni pomnilnik memcpy(shared_memory, request, request_len); // Signaliziraj daemon signal_crypto_daemon(); // Počakaj na odgovor wait_for_response(); // Razčleni odgovor uint8_t nonce[12], tag[16], ciphertext[1024]; size_t ct_len; wvds_parse_aes_encrypt_response( shared_memory, response_len, nonce, tag, ciphertext, &ct_len ); } } **To je vse!** ---- ==== Opcijska Konfiguracija ==== Če želite spremeniti privzete nastavitve, lahko zagotovite ''config.json'': { "version": "0.2.0", "key_storage": { "type": "file", "path": "/data/keys", "encryption": "aes-256-gcm" }, "rate_limit": { "max_requests_per_second": 1000, "burst": 100 }, "logging": { "level": "info", "destination": "syslog" } } === Možnosti Shranjevanja Ključev === | Tip | Opis | | ''file'' | Ključi v datotečnem sistemu (privzeto) | | ''tpm'' | Ključi v TPM 2.0 | | ''hsm'' | Ključi v zunanjem HSM | ---- ==== Preverjanje ==== Preverite, ali daemon pravilno teče: # L4Re Console l4> ps ... wvds_crypto_service ... # Pošlji testno zahtevo l4> crypto_test encrypt "Hello World" OK: Ciphertext = 0x... ---- ==== Odpravljanje Težav ==== | Problem | Rešitev | | Daemon se ne zažene | ''libcrypto.so.3'' v modules.list? | | Napaka skupnega pomnilnika | Dataspace dovolj velik (min 64 KB)? | | Napaka zmožnosti | ''crypto_ep'' pravilno mapiran? | | FIPS napaka | ''fipsmodule.cnf'' prisoten? | Glejte tudi [[.:sicherheit#troubleshooting|Varnost > Odpravljanje težav]] za dodatne napake. ---- [[.:start|< Nazaj na pregled]] | [[.:integration|Naprej: Primeri kode >]]