From 29ac821248fcabddb58b2527b5b55660a4fb1e52 Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Tue, 10 Jun 2025 16:54:20 -0400 Subject: [PATCH 1/2] factor out repetition more DRY --- bpb/src/main.rs | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/bpb/src/main.rs b/bpb/src/main.rs index 2bdf235..ce56efa 100644 --- a/bpb/src/main.rs +++ b/bpb/src/main.rs @@ -105,26 +105,24 @@ fn generate_keypair(userid: String) -> Result<(), Error> { Ok(()) } -fn print_public_key() -> Result<(), Error> { +fn get_keypair() -> Result { let config = Config::load()?; let service = config.service(); let account = config.user_id(); let secret_str = get_keychain_item(service, account)?; let secret = to_32_bytes(&secret_str)?; - let keypair = KeyData::load(&config, secret)?; + KeyData::load(&config, secret) +} + +fn print_public_key() -> Result<(), Error> { + let keypair = get_keypair()?; println!("{}", keypair.public()); Ok(()) } fn get_fingerprint() -> Result { - let config = Config::load()?; - let service = config.service(); - let account = config.user_id(); - let secret_str = get_keychain_item(service, account)?; - let secret = to_32_bytes(&secret_str)?; - - let keypair = KeyData::load(&config, secret)?; + let keypair = get_keypair()?; Ok(keypair.fingerprint()) } @@ -147,14 +145,7 @@ fn verify_commit() -> Result<(), Error> { let mut stdin = std::io::stdin(); stdin.read_to_string(&mut commit)?; - let config = Config::load()?; - let service = config.service(); - let account = config.user_id(); - let secret_str = get_keychain_item(service, account)?; - let secret = to_32_bytes(&secret_str)?; - - let config = Config::load()?; - let keypair = KeyData::load(&config, secret)?; + let keypair = get_keypair()?; let sig = keypair.sign(commit.as_bytes())?; @@ -165,13 +156,7 @@ fn verify_commit() -> Result<(), Error> { // Signs a hex string and prints the signature fn sign_from_hex(hex: String) -> Result<(), Error> { - let config = Config::load()?; - let service = config.service(); - let account = config.user_id(); - let secret_str = get_keychain_item(service, account)?; - let secret = to_32_bytes(&secret_str)?; - - let keypair = KeyData::load(&config, secret)?; + let keypair = get_keypair()?; // remove any leading 0x prefix let hex = hex.trim().to_lowercase(); let hex = hex.trim_start_matches("0x"); From e48856c5aa6cfe8784c545166deb0c8c79acdfa6 Mon Sep 17 00:00:00 2001 From: Jacob Heider Date: Tue, 10 Jun 2025 17:09:30 -0400 Subject: [PATCH 2/2] comments never hurt anyone --- bpb/src/main.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bpb/src/main.rs b/bpb/src/main.rs index ce56efa..c428359 100644 --- a/bpb/src/main.rs +++ b/bpb/src/main.rs @@ -105,6 +105,11 @@ fn generate_keypair(userid: String) -> Result<(), Error> { Ok(()) } +// Does most of the initial setup +// used for quite a few of the subcommands +// +// - Loads the config +// - Gets the keypair from the keychain fn get_keypair() -> Result { let config = Config::load()?; let service = config.service();