enclavia
Client SDK for the Enclavia enclave runtime. Opens an end-to-end-encrypted channel through the host-side router and exposes it as an http-compatible client to your application.
use ;
# async
For a debug/QEMU enclave (self-signed attestation), or to follow a signed upgrade chain, use the builder:
use ;
# async
Under the hood the SDK does:
- WebSocket connection to the host-side router (the router is what binds the public hostname; the SDK does not need to know the enclave's vsock CID).
Noise_NN_25519_ChaChaPoly_BLAKE2shandshake; the responder isenclavia-serverinside the EIF.- Attestation: the SDK pulls the Nitro attestation document over the encrypted channel and verifies it against the PCRs you pinned (
Client::connect(.., pcrs)/ClientBuilder::pcrs). On a mismatch,connect/buildreturns an error and no client is handed back, so you can never send plaintext to an unattested enclave. Production documents are validated against the AWS Nitro certificate chain;debug_mode(true)accepts the self-signed QEMU/debug document instead. - Plaintext HTTP request/response framed inside the Noise tunnel.
Use enclavia-protocol directly if you need finer control or want to build a non-HTTP transport.
License
Dual-licensed under Apache-2.0 OR MIT. See LICENSE-APACHE and LICENSE-MIT.