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)

// 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(

// verify the signature


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.


Lair Version

Type Definitions

Lair Result Type