Crate lair_keystore_api[−][src]
Expand description
Secret lair private keystore API library.
This library crate contains most of the logic for dealing with lair.
- If you wish to run an in-process / in-memory keystore, or connect to an external lair keystore as a client, this is the library for you.
- If you want to run the canonical lair-keystore, you need the lair_keystore crate.
- If you want to run a canonical lair-keystore in-process, but using the canonical sqlcipher database, you also the lair_keystore crate.
- See the lair_api module for information about the lair_keystore_api protocol.
- See LairClient for the client struct api.
Establishing a client connection to a canonical ipc keystore binary:
use lair_keystore_api::prelude::*;
use lair_keystore_api::ipc_keystore::*;
// create a client connection
let client =
ipc_keystore_connect(connection_url, passphrase)
.await
.unwrap();
// create a new seed
let seed_info = client.new_seed("test-seed".into(), None).await.unwrap();
// sign some data
let sig = client.sign_by_pub_key(
seed_info.ed25519_pub_key.clone(),
None,
b"test-data".to_vec().into(),
).await.unwrap();
// verify the signature
assert!(seed_info.ed25519_pub_key.verify_detached(
sig,
b"test-data".to_vec(),
).await.unwrap());
Modules
Lair Configuration Types
re-exported dependencies
Helper types for dealing with serialization.
an in-process keystore that manages the entire lair server life-cycle without needing to call out to an external process.
Internal utility functions - note, the api for anything in this module is unstable and may change even for patch versions of this library.
client / server keystore items for dealing with ipc keystores, both unix domain sockets and windows named pipes.
Lair api serialization types
interact with a lair keystore
host a lair keystore
lair persistance
Lair in-memory store - usually for testing
re-export module of types generally used with lair
libsodium secretstream Async reader / writer wrappers.
Constants
Lair Version
Type Definitions
Lair Result Type