~~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 >]]