use ais_keystore_lib::{
generate_key, get_key,
grpc::keystore::key_store_client::KeyStoreClient,
migrate_key,
shared::consts::{ADDR, PORT},
store_key,
};
use tonic::transport::Channel;
#[tokio::main]
async fn main() {
let addr = format!("http://{}:{}", ADDR, PORT);
let mut client: KeyStoreClient<Channel> = KeyStoreClient::connect(addr).await.unwrap();
let key = generate_key(&mut client, None).await.unwrap();
println!("Generated key: {}", hex::encode(&key));
store_key(&mut client, "example".to_string(), key.clone(), Some(120))
.await
.unwrap();
println!("Key stored under ID 'example'");
let fetched = get_key(&mut client, "example".to_string(), None)
.await
.unwrap();
println!("Retrieved key: {}", hex::encode(&fetched));
migrate_key(&mut client, "example".to_string())
.await
.unwrap();
println!("Key migrated");
}