160 releases

new 0.4.0-dev.7 Jun 6, 2024
0.4.0-dev.5 May 29, 2024
0.3.0-beta-dev.32 Mar 27, 2024
0.3.0-beta-dev.21 Dec 22, 2023
0.0.2 Jul 29, 2021

#237 in Magic Beans

Download history 225/week @ 2024-02-14 276/week @ 2024-02-21 640/week @ 2024-02-28 612/week @ 2024-03-06 513/week @ 2024-03-13 601/week @ 2024-03-20 363/week @ 2024-03-27 738/week @ 2024-04-03 603/week @ 2024-04-10 636/week @ 2024-04-17 1091/week @ 2024-04-24 834/week @ 2024-05-01 629/week @ 2024-05-08 694/week @ 2024-05-15 786/week @ 2024-05-22 1065/week @ 2024-05-29

3,318 downloads per month
Used in 26 crates (9 directly)

Apache-2.0 and AGPL-3.0 WITH mif-exception

620KB
14K SLoC

holochain_keystore

A Keystore is a secure repository of private keys. MetaLairClient is a reference to a Keystore. MetaLairClient allows async generation of keypairs, and usage of those keypairs, reference by the public AgentPubKey.

Examples

use holo_hash::AgentPubKey;
use holochain_keystore::*;
use holochain_serialized_bytes::prelude::*;

#[tokio::main(flavor = "multi_thread")]
async fn main() {
    tokio::task::spawn(async move {
        let keystore = holochain_keystore::spawn_test_keystore().await.unwrap();
        let agent_pubkey = AgentPubKey::new_random(&keystore).await.unwrap();

        #[derive(Debug, serde::Serialize, serde::Deserialize, SerializedBytes)]
        struct MyData(Vec<u8>);

        let my_data_1 = MyData(b"signature test data 1".to_vec());

        let signature = agent_pubkey.sign(&keystore, &my_data_1).await.unwrap();

        assert!(agent_pubkey.verify_signature(&signature, &my_data_1).await.unwrap());
    }).await.unwrap();
}

License: CAL-1.0

Dependencies

~57–94MB
~1.5M SLoC