subgraph/cli_args/generate_keypair/
mod.rs

1use base64::{engine::general_purpose, Engine as _};
2use biscuit_auth::KeyPair;
3
4use super::CliArgs;
5
6impl CliArgs {
7    /// If the generate_keypair flag is passed, generate a new keypair and print it to the console.
8    pub fn generate_keypair(&self) -> Result<(), Box<dyn std::error::Error>> {
9        if self.generate_keypair {
10            let keypair = KeyPair::new();
11            let private_key = general_purpose::URL_SAFE_NO_PAD.encode(keypair.private().to_bytes());
12            let public_key = general_purpose::URL_SAFE_NO_PAD.encode(keypair.public().to_bytes());
13
14            println!("Base64 Key Pair Generated");
15            println!("Private Key: {:?}", private_key);
16            println!("Public Key: {:?}", public_key);
17        }
18        Ok(())
19    }
20}