Expand description
An encrypted key-value store used for storing keyshares and other private data
Modules§
- Wrap a layer of encryption around sled. We use chacha20poly1305 to encrypt/decrypt values. Specifically, use chacha20poly1305::XChaCha20Poly1305 because the nonces are generated randomly. To create an new Db, an key to use as entropy for the stream cipher needs to be provided.
- Key-Value Store service. We use sled for the underlying db implementation. For every kvstore initialized, a daemon is spawned that serves basic database functionality using the “actor” pattern (
kv::Kv
is the “handle”): https://ryhl.io/blog/actors-with-tokio/ See https://tokio.rs/tokio/tutorial/channels for tokio channels Seekv
module for the public API.