~~NOTOC~~ {{wvds:title>Instalacija}} ===== Instalacija: 3-Koračna OEM Integracija ===== WvdS Crypto Service je **gotova crna kutija**. Ne trebate ništa kompajlirati ili konfigurirati. Jednostavno slijedite ova tri koraka. ---- ==== Korak 1: Uključite Daemon u L4Re Image ==== Dodajte Crypto Service u vašu ''modules.list'': -- modules.list module wvds_crypto_service module libcrypto.so.3 module libssl.so.3 ---- ==== Korak 2: Pokrenite Daemon (Ned-Script) ==== Pokrenite daemon u vašem Ned-scriptu: local L4 = require("L4") -- Kreiraj dijeljenu memoriju za komunikaciju local crypto_ds = L4.Env.ram:create(64 * 1024, L4.Dataspace.ALL):m("rw") -- Pokreni Crypto Daemon local crypto_daemon = L4.default_loader:start( { caps = { crypto_ep = crypto_ds:svr() } }, "rom/wvds_crypto_service" ) -- Vaš Gateway dobiva klijentsku stranu local gateway = L4.default_loader:start( { caps = { crypto_ep = crypto_ds } }, "rom/iss_gateway" ) **Objašnjenje:** * ''crypto_ds'' - Dijeljena memorija Dataspace (64 KB) * ''crypto_ep = crypto_ds:svr()'' - Serverska strana za daemon * ''crypto_ep = crypto_ds'' - Klijentska strana za vaš Gateway ---- ==== Korak 3: Komunicirajte iz Vašeg Koda ==== Uključite header i koristite 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); // Izgradi zahtjev int rc = wvds_build_aes_encrypt_request( request, &request_len, 1, // Key-ID "sensor", 6, // AAD data, len // Čisti tekst ); if (rc == 0) { // Kopiraj zahtjev u dijeljenu memoriju memcpy(shared_memory, request, request_len); // Signaliziraj daemon signal_crypto_daemon(); // Čekaj na odgovor wait_for_response(); // Parsiraj 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 sve!** ---- ==== Opcionalna Konfiguracija ==== Ako želite promijeniti zadane postavke, možete pružiti ''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" } } === Opcije Pohrane Ključeva === | Tip | Opis | | ''file'' | Ključevi u datotečnom sustavu (zadano) | | ''tpm'' | Ključevi u TPM 2.0 | | ''hsm'' | Ključevi u vanjskom HSM | ---- ==== Verifikacija ==== Provjerite radi li daemon ispravno: # L4Re Console l4> ps ... wvds_crypto_service ... # Pošalji testni zahtjev l4> crypto_test encrypt "Hello World" OK: Ciphertext = 0x... ---- ==== Rješavanje Problema ==== | Problem | Rješenje | | Daemon se ne pokreće | ''libcrypto.so.3'' u modules.list? | | Greška dijeljene memorije | Dataspace dovoljno velik (min 64 KB)? | | Greška mogućnosti | ''crypto_ep'' ispravno mapiran? | | FIPS greška | ''fipsmodule.cnf'' prisutan? | Vidi također [[.:sicherheit#troubleshooting|Sigurnost > Rješavanje problema]] za dodatne greške. ---- [[.:start|< Natrag na pregled]] | [[.:integration|Dalje: Primjeri koda >]]