devops_armory/crypt/
keystore.rs1use libsodium_rs::{self, ensure_init};
2use libsodium_rs::crypto_box;
3
4use std::fs;
5use std::path::Path;
6
7pub fn keystore(
10 server_pub_key_path: &Path,
11 server_priv_key_path: &Path,
12 client_pub_key: &Path,
13 client_priv_key: &Path,
14 nonce_key: &Path
15) {
16 ensure_init().expect("Failed to initialize libsodium");
18
19 let server_keypair = crypto_box::KeyPair::generate();
20 let server_pk = server_keypair.public_key;
21 let server_sk = server_keypair.secret_key;
22 let client_keypair = crypto_box::KeyPair::generate();
23 let client_pk = client_keypair.public_key;
24 let client_sk = client_keypair.secret_key;
25
26 let a = server_pk.as_bytes();
28 let b = server_sk.as_bytes();
29 fs::write(server_pub_key_path, a).unwrap();
30 fs::write(server_priv_key_path, b).unwrap();
31
32 let c = client_pk.as_bytes();
34 let d = client_sk.as_bytes();
35 fs::write(client_pub_key, c).unwrap();
36 fs::write(client_priv_key, d).unwrap();
37
38 let nonce = crypto_box::Nonce::generate();
40 fs::write(nonce_key, &nonce).unwrap();
41
42}