From 141ebddf52c6997e34b8c13c68616668f2873c45 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:54:05 +0100 Subject: [PATCH 01/30] feat: test all curves Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- Cargo.lock | 7 +- crates/cli/src/cfg.rs | 7 + crates/cli/src/main.rs | 38 +-- crates/common/src/transaction_builder.rs | 29 ++- crates/common/src/tree/mod.rs | 227 ++++++++++++++---- crates/da/Cargo.toml | 2 +- crates/da/src/lib.rs | 12 +- crates/keys/src/lib.rs | 15 +- crates/keys/src/signatures.rs | 2 +- crates/keys/src/signing_keys.rs | 11 +- crates/keys/src/verifying_keys.rs | 17 +- crates/node_types/lightclient/Cargo.toml | 2 +- .../node_types/lightclient/src/lightclient.rs | 4 +- crates/node_types/prover/Cargo.toml | 2 - crates/node_types/prover/src/prover/mod.rs | 29 ++- crates/node_types/prover/src/prover/tests.rs | 174 +++++++++++--- crates/tests/Cargo.toml | 1 + crates/tests/src/lib.rs | 14 +- elf/riscv32im-succinct-zkvm-elf | Bin 1928632 -> 1927388 bytes 19 files changed, 439 insertions(+), 154 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 77ac9086..cb4d57fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4844,10 +4844,10 @@ dependencies = [ "async-trait", "celestia-rpc", "celestia-types", - "ed25519-consensus", "log", "prism-common", "prism-errors", + "prism-keys", "prism-serde", "serde", "sp1-sdk", @@ -4882,11 +4882,11 @@ name = "prism-lightclient" version = "0.1.0" dependencies = [ "anyhow", - "ed25519-consensus", "log", "prism-common", "prism-da", "prism-errors", + "prism-keys", "sp1-sdk", "tokio", ] @@ -4897,9 +4897,7 @@ version = "0.1.0" dependencies = [ "anyhow", "axum 0.6.20", - "ed25519-consensus", "jmt", - "keystore-rs", "log", "prism-common", "prism-da", @@ -4961,6 +4959,7 @@ dependencies = [ "pretty_env_logger", "prism-common", "prism-da", + "prism-keys", "prism-lightclient", "prism-prover", "prism-storage", diff --git a/crates/cli/src/cfg.rs b/crates/cli/src/cfg.rs index cea3ab63..e0b4fccf 100644 --- a/crates/cli/src/cfg.rs +++ b/crates/cli/src/cfg.rs @@ -36,6 +36,10 @@ pub struct CommandArgs { #[arg(long)] verifying_key: Option, + /// Can be one of: ed25519, secp256k1, secp256r1 + #[arg(long, default_value = "ed25519")] + verifying_key_algorithm: Option, + #[arg(long)] config_path: Option, @@ -97,6 +101,7 @@ pub struct Config { pub da_layer: DALayerOption, pub redis_config: Option, pub verifying_key: Option, + pub verifying_key_algorithm: String, } impl Default for Config { @@ -107,6 +112,7 @@ impl Default for Config { da_layer: DALayerOption::default(), redis_config: Some(RedisConfig::default()), verifying_key: None, + verifying_key_algorithm: "ed25519".to_string(), } } } @@ -201,6 +207,7 @@ fn apply_command_line_args(config: Config, args: CommandArgs) -> Config { }), da_layer: config.da_layer, verifying_key: args.verifying_key.or(config.verifying_key), + verifying_key_algorithm: args.verifying_key_algorithm.unwrap_or(config.verifying_key_algorithm), } } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index b1a84552..4cee4684 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -4,7 +4,7 @@ mod node_types; use cfg::{initialize_da_layer, load_config, Cli, Commands}; use clap::Parser; use keystore_rs::{KeyChain, KeyStore, KeyStoreType}; -use prism_keys::VerifyingKey; +use prism_keys::{SigningKey, VerifyingKey}; use node_types::NodeType; use prism_lightclient::LightClient; @@ -37,14 +37,9 @@ async fn main() -> std::io::Result<()> { ) })?; - let prover_vk = config.verifying_key.and_then(|s| s.try_into().ok()).and_then( - |vk: VerifyingKey| match vk { - VerifyingKey::Ed25519(key) => Some(key), - _ => None, - }, - ); + let prover_vk = VerifyingKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), config.verifying_key.unwrap().as_bytes()).unwrap(); - Arc::new(LightClient::new(da, celestia_config, prover_vk)) + Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } Commands::Prover(args) => { let config = load_config(args.clone()) @@ -63,22 +58,25 @@ async fn main() -> std::io::Result<()> { let redis_connections = RedisConnection::new(&redis_config) .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let signing_key = KeyStoreType::KeyChain(KeyChain) + let signing_key_chain = KeyStoreType::KeyChain(KeyChain) .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + let signing_key = SigningKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), signing_key_chain.as_bytes()).unwrap(); + let verifying_key = signing_key.verifying_key(); + let prover_cfg = prism_prover::Config { prover: true, batcher: true, webserver: config.webserver.unwrap_or_default(), signing_key: signing_key.clone(), - verifying_key: signing_key.verification_key(), + verifying_key: verifying_key.clone(), start_height: config.celestia_config.unwrap_or_default().start_height, }; info!( "prover verifying key: {}", - VerifyingKey::from(prover_cfg.verifying_key) + VerifyingKey::from(prover_cfg.verifying_key.clone()) ); Arc::new( @@ -107,23 +105,13 @@ async fn main() -> std::io::Result<()> { let redis_connections = RedisConnection::new(&redis_config) .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let signing_key = KeyStoreType::KeyChain(KeyChain) + let signing_key_chain = KeyStoreType::KeyChain(KeyChain) .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let prover_vk = config - .verifying_key - .and_then(|s| s.try_into().ok()) - .and_then(|vk: VerifyingKey| match vk { - VerifyingKey::Ed25519(key) => Some(key), - _ => None, - }) - .ok_or_else(|| { - std::io::Error::new( - std::io::ErrorKind::NotFound, - "prover verifying key not found", - ) - })?; + let signing_key = SigningKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), signing_key_chain.as_bytes()).unwrap(); + + let prover_vk = VerifyingKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), config.verifying_key.unwrap().as_bytes()).unwrap(); let prover_cfg = prism_prover::Config { prover: false, diff --git a/crates/common/src/transaction_builder.rs b/crates/common/src/transaction_builder.rs index 8cba3807..38f4e20e 100644 --- a/crates/common/src/transaction_builder.rs +++ b/crates/common/src/transaction_builder.rs @@ -84,9 +84,13 @@ impl TransactionBuilder { self.hashchains.get(id) } - pub fn register_service_with_random_keys(&mut self, id: &str) -> UncommittedTransaction { - let random_service_challenge_key = SigningKey::new_ed25519(); - let random_service_signing_key = SigningKey::new_ed25519(); + pub fn register_service_with_random_keys( + &mut self, + algorithm: &str, + id: &str, + ) -> UncommittedTransaction { + let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm); + let random_service_signing_key = SigningKey::new_with_algorithm(algorithm); self.register_service(id, random_service_challenge_key, random_service_signing_key) } @@ -116,10 +120,11 @@ impl TransactionBuilder { pub fn create_account_with_random_key_signed( &mut self, + algorithm: &str, id: &str, service_id: &str, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_ed25519(); + let account_signing_key = SigningKey::new_with_algorithm(algorithm); self.create_account_signed(id, service_id, account_signing_key) } @@ -138,11 +143,12 @@ impl TransactionBuilder { pub fn create_account_with_random_key( &mut self, + algorithm: &str, id: &str, service_id: &str, service_signing_key: &SigningKey, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_ed25519(); + let account_signing_key = SigningKey::new_with_algorithm(algorithm); self.create_account(id, service_id, service_signing_key, account_signing_key) } @@ -176,21 +182,22 @@ impl TransactionBuilder { } } - pub fn add_random_key_verified_with_root(&mut self, id: &str) -> UncommittedTransaction { + pub fn add_random_key_verified_with_root(&mut self, algorithm: &str, id: &str) -> UncommittedTransaction { let Some(account_signing_key) = self.account_keys.get(id).cloned() else { panic!("No existing account key for {}", id) }; - self.add_random_key(id, &account_signing_key, 0) + self.add_random_key(algorithm, id, &account_signing_key, 0) } pub fn add_random_key( &mut self, + algorithm: &str, id: &str, signing_key: &SigningKey, key_idx: usize, ) -> UncommittedTransaction { - let random_key = SigningKey::new_ed25519().into(); + let random_key = SigningKey::new_with_algorithm(algorithm).into(); self.add_key(id, random_key, signing_key, key_idx) } @@ -262,21 +269,23 @@ impl TransactionBuilder { pub fn add_randomly_signed_data( &mut self, + algorithm: &str, id: &str, value: Vec, signing_key: &SigningKey, key_idx: usize, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_ed25519(); + let value_signing_key = SigningKey::new_with_algorithm(algorithm); self.add_signed_data(id, value, &value_signing_key, signing_key, key_idx) } pub fn add_randomly_signed_data_verified_with_root( &mut self, + algorithm: &str, id: &str, value: Vec, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_ed25519(); + let value_signing_key = SigningKey::new_with_algorithm(algorithm); self.add_signed_data_verified_with_root(id, value, &value_signing_key) } diff --git a/crates/common/src/tree/mod.rs b/crates/common/src/tree/mod.rs index f53806a3..bb5da3ef 100644 --- a/crates/common/src/tree/mod.rs +++ b/crates/common/src/tree/mod.rs @@ -28,19 +28,18 @@ mod tests { use super::{HashchainResponse::*, *}; use crate::{digest::Digest, hasher::Hasher, transaction_builder::TransactionBuilder}; - #[test] - fn test_insert_and_get() { + fn test_insert_and_get(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let Proof::Insert(insert_proof) = tree.process_transaction(service_tx).unwrap() else { panic!("Processing transaction did not return the expected insert proof"); }; assert!(insert_proof.verify().is_ok()); let account_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); let Proof::Insert(insert_proof) = tree.process_transaction(account_tx).unwrap() else { panic!("Processing transaction did not return the expected insert proof"); @@ -61,14 +60,29 @@ mod tests { } #[test] - fn test_insert_for_nonexistent_service_fails() { + fn test_insert_and_get_ed25519() { + test_insert_and_get("ed25519"); + } + + #[test] + fn test_insert_and_get_secp256k1() { + test_insert_and_get("secp256k1"); + } + + #[test] + fn test_insert_and_get_secp256r1() { + test_insert_and_get("secp256r1"); + } + + fn test_insert_for_nonexistent_service_fails(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_signing_key = SigningKey::new_ed25519(); + let service_signing_key = SigningKey::new_with_algorithm(algorithm); let invalid_account_tx = tx_builder .create_account_with_random_key( + algorithm, "acc_1", "service_id_that_does_not_exist", &service_signing_key, @@ -80,17 +94,31 @@ mod tests { } #[test] - fn test_insert_with_invalid_service_challenge_fails() { + fn test_insert_for_nonexistent_service_fails_ed25519() { + test_insert_for_nonexistent_service_fails("ed25519"); + } + + #[test] + fn test_insert_for_nonexistent_service_fails_secp256k1() { + test_insert_for_nonexistent_service_fails("secp256k1"); + } + + #[test] + fn test_insert_for_nonexistent_service_fails_secp256r1() { + test_insert_for_nonexistent_service_fails("secp256r1"); + } + + fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); // The correct way was to use the key from service registration, // but here we want things to break - let incorrect_service_signing_key = SigningKey::new_ed25519(); + let incorrect_service_signing_key = SigningKey::new_with_algorithm(algorithm); - let initial_acc_signing_key = SigningKey::new_ed25519(); + let initial_acc_signing_key = SigningKey::new_with_algorithm(algorithm); let acc_with_invalid_challenge_tx = tx_builder .create_account( @@ -111,15 +139,29 @@ mod tests { } #[test] - fn test_insert_duplicate_key() { + fn test_insert_with_invalid_service_challenge_fails_ed25519() { + test_insert_with_invalid_service_challenge_fails("ed25519"); + } + + #[test] + fn test_insert_with_invalid_service_challenge_fails_secp256k1() { + test_insert_with_invalid_service_challenge_fails("secp256k1"); + } + + #[test] + fn test_insert_with_invalid_service_challenge_fails_secp256r1() { + test_insert_with_invalid_service_challenge_fails("secp256r1"); + } + + fn test_insert_duplicate_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let account_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); let account_with_same_id_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").build(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").build(); let Proof::Insert(insert_proof) = tree.process_transaction(service_tx).unwrap() else { panic!("Processing service registration failed") @@ -136,18 +178,32 @@ mod tests { } #[test] - fn test_update_existing_key() { + fn test_insert_duplicate_key_ed25519() { + test_insert_duplicate_key("ed25519"); + } + + #[test] + fn test_insert_duplicate_key_secp256k1() { + test_insert_duplicate_key("secp256k1"); + } + + #[test] + fn test_insert_duplicate_key_secp256r1() { + test_insert_duplicate_key("secp256r1"); + } + + fn test_update_existing_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let acc_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); tree.process_transaction(acc_tx).unwrap(); - let key_tx = tx_builder.add_random_key_verified_with_root("acc_1").commit(); + let key_tx = tx_builder.add_random_key_verified_with_root(algorithm, "acc_1").commit(); let Proof::Update(update_proof) = tree.process_transaction(key_tx).unwrap() else { panic!("Processing key update failed") @@ -161,23 +217,52 @@ mod tests { } #[test] - fn test_update_non_existing_key() { + fn test_update_existing_key_ed25519() { + test_update_existing_key("ed25519"); + } + + #[test] + fn test_update_existing_key_secp256k1() { + test_update_existing_key("secp256k1"); + } + + #[test] + fn test_update_existing_key_secp256r1() { + test_update_existing_key("secp256r1"); + } + + fn test_update_non_existing_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); tree.process_transaction(service_tx).unwrap(); // This is a signing key not known to the storage yet - let random_signing_key = SigningKey::new_ed25519(); + let random_signing_key = SigningKey::new_with_algorithm(algorithm); // This transaction shall be invalid, because it is signed with an unknown key - let invalid_key_tx = tx_builder.add_random_key("acc_1", &random_signing_key, 0).build(); + let invalid_key_tx = tx_builder.add_random_key(algorithm, "acc_1", &random_signing_key, 0).build(); let result = tree.process_transaction(invalid_key_tx); assert!(result.is_err()); } + #[test] + fn test_update_non_existing_key_ed25519() { + test_update_non_existing_key("ed25519"); + } + + #[test] + fn test_update_non_existing_key_secp256k1() { + test_update_non_existing_key("secp256k1"); + } + + #[test] + fn test_update_non_existing_key_secp256r1() { + test_update_non_existing_key("secp256r1"); + } + #[test] fn test_get_non_existing_key() { let tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); @@ -190,17 +275,16 @@ mod tests { assert!(non_membership_proof.verify().is_ok()); } - - #[test] - fn test_multiple_inserts_and_updates() { + + fn test_multiple_inserts_and_updates(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let acc1_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); let acc2_tx = - tx_builder.create_account_with_random_key_signed("acc_2", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); @@ -208,7 +292,7 @@ mod tests { tree.process_transaction(acc2_tx).unwrap(); // Do insert and update accounts using the correct key indices - let key_1_tx = tx_builder.add_random_key_verified_with_root("acc_1").commit(); + let key_1_tx = tx_builder.add_random_key_verified_with_root(algorithm, "acc_1").commit(); tree.process_transaction(key_1_tx).unwrap(); let data_1_tx = @@ -216,7 +300,7 @@ mod tests { tree.process_transaction(data_1_tx).unwrap(); let data_2_tx = tx_builder - .add_randomly_signed_data_verified_with_root("acc_2", b"signed".to_vec()) + .add_randomly_signed_data_verified_with_root(algorithm, "acc_2", b"signed".to_vec()) .commit(); tree.process_transaction(data_2_tx).unwrap(); @@ -231,25 +315,39 @@ mod tests { } #[test] - fn test_interleaved_inserts_and_updates() { + fn test_multiple_inserts_and_updates_ed25519() { + test_multiple_inserts_and_updates("ed25519"); + } + + #[test] + fn test_multiple_inserts_and_updates_secp256k1() { + test_multiple_inserts_and_updates("secp256k1"); + } + + #[test] + fn test_multiple_inserts_and_updates_secp256r1() { + test_multiple_inserts_and_updates("secp256r1"); + } + + fn test_interleaved_inserts_and_updates(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let acc1_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); let acc2_tx = - tx_builder.create_account_with_random_key_signed("acc_2", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); tree.process_transaction(acc1_tx).unwrap(); - let add_key_to_1_tx = tx_builder.add_random_key_verified_with_root("acc_1").commit(); + let add_key_to_1_tx = tx_builder.add_random_key_verified_with_root(algorithm, "acc_1").commit(); tree.process_transaction(add_key_to_1_tx).unwrap(); tree.process_transaction(acc2_tx).unwrap(); - let add_key_to_2_tx = tx_builder.add_random_key_verified_with_root("acc_2").commit(); + let add_key_to_2_tx = tx_builder.add_random_key_verified_with_root(algorithm, "acc_2").commit(); let last_proof = tree.process_transaction(add_key_to_2_tx).unwrap(); // Update account_2 using the correct key index @@ -272,13 +370,27 @@ mod tests { } #[test] - fn test_root_hash_changes() { + fn test_interleaved_inserts_and_updates_ed25519() { + test_interleaved_inserts_and_updates("ed25519"); + } + + #[test] + fn test_interleaved_inserts_and_updates_secp256k1() { + test_interleaved_inserts_and_updates("secp256k1"); + } + + #[test] + fn test_interleaved_inserts_and_updates_secp256r1() { + test_interleaved_inserts_and_updates("secp256r1"); + } + + fn test_root_hash_changes(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let account1_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); @@ -290,15 +402,29 @@ mod tests { } #[test] - fn test_batch_writing() { + fn test_root_hash_changes_ed25519() { + test_root_hash_changes("ed25519"); + } + + #[test] + fn test_root_hash_changes_secp256k1() { + test_root_hash_changes("secp256k1"); + } + + #[test] + fn test_root_hash_changes_secp256r1() { + test_root_hash_changes("secp256r1"); + } + + fn test_batch_writing(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_tx = tx_builder.register_service_with_random_keys("service_1").commit(); + let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); let account1_tx = - tx_builder.create_account_with_random_key_signed("acc_1", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); let account2_tx = - tx_builder.create_account_with_random_key_signed("acc_2", "service_1").commit(); + tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); @@ -329,4 +455,19 @@ mod tests { assert!(matches!(get_result1, Found(hc, _) if &hc == test_hashchain_acc1)); assert!(matches!(get_result2, Found(hc, _) if &hc == test_hashchain_acc2)); } + + #[test] + fn test_batch_writing_ed25519() { + test_batch_writing("ed25519"); + } + + #[test] + fn test_batch_writing_secp256k1() { + test_batch_writing("secp256k1"); + } + + #[test] + fn test_batch_writing_secp256r1() { + test_batch_writing("secp256r1"); + } } diff --git a/crates/da/Cargo.toml b/crates/da/Cargo.toml index 75499582..44cde2a0 100644 --- a/crates/da/Cargo.toml +++ b/crates/da/Cargo.toml @@ -13,7 +13,6 @@ readme.workspace = true [dependencies] async-trait = { workspace = true } serde = { workspace = true } -ed25519-consensus = { workspace = true } tokio = { workspace = true } log = { workspace = true } celestia-rpc = { workspace = true } @@ -22,4 +21,5 @@ anyhow = { workspace = true } prism-common = { workspace = true } prism-errors = { workspace = true } prism-serde = { workspace = true } +prism-keys = { workspace = true } sp1-sdk = { workspace = true } diff --git a/crates/da/src/lib.rs b/crates/da/src/lib.rs index c39c6209..999c57f8 100644 --- a/crates/da/src/lib.rs +++ b/crates/da/src/lib.rs @@ -1,6 +1,6 @@ use anyhow::Result; use async_trait::async_trait; -use ed25519_consensus::{Signature, SigningKey, VerificationKey as VerifyingKey}; +use prism_keys::{SigningKey, VerifyingKey, Signature}; use prism_common::{digest::Digest, transaction::Transaction}; use prism_serde::{ binary::ToBinary, @@ -50,16 +50,10 @@ impl FinalizedEpoch { let signature_bytes = Vec::::from_hex(signature) .map_err(|e| anyhow::anyhow!("Failed to decode signature: {}", e))?; - if signature_bytes.len() != 64 { - return Err(anyhow::anyhow!("Invalid signature length")); - } - - let signature: Signature = signature_bytes - .as_slice() - .try_into() + let signature: Signature = Signature::from_algorithm_and_bytes(vk.algorithm(), signature_bytes.as_slice()) .map_err(|_| anyhow::anyhow!("Invalid signature length"))?; - vk.verify(&signature, &message) + vk.verify_signature(&message, &signature) .map_err(|e| anyhow::anyhow!("Signature verification failed: {}", e))?; Ok(()) } diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index 80ce882f..0d402e2e 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -13,7 +13,7 @@ mod tests { use prism_serde::base64::ToBase64; use rand::rngs::OsRng; use secp256k1::SecretKey as Secp256k1SigningKey; - + use p256::ecdsa::SigningKey as Secp256r1SigningKey; #[test] fn test_reparsed_verifying_keys_are_equal_to_original() { let verifying_key_ed25519 = SigningKey::new_ed25519().verifying_key(); @@ -123,6 +123,19 @@ mod tests { assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); } + #[test] + fn test_verifying_key_from_string_secp256r1() { + let original_key: VerifyingKey = + SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)).into(); + let encoded = original_key.to_bytes().to_base64(); + + let result = VerifyingKey::try_from(encoded); + assert!(result.is_ok()); + + let decoded_key = result.unwrap(); + assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); + } + #[test] fn test_verifying_key_from_string_invalid_length() { let invalid_bytes: [u8; 31] = [1; 31]; diff --git a/crates/keys/src/signatures.rs b/crates/keys/src/signatures.rs index 54ce3fc4..4c0812a7 100644 --- a/crates/keys/src/signatures.rs +++ b/crates/keys/src/signatures.rs @@ -38,7 +38,7 @@ impl Signature { "secp256r1" => { Secp256r1Signature::from_der(bytes).map(Signature::Secp256r1).map_err(|e| e.into()) } - _ => bail!("Unexpected algorithm for Signature"), + _ => bail!("Unexpected algorithm for Signature: {}", algorithm), } } diff --git a/crates/keys/src/signing_keys.rs b/crates/keys/src/signing_keys.rs index 5153ba3c..d7bb74b8 100644 --- a/crates/keys/src/signing_keys.rs +++ b/crates/keys/src/signing_keys.rs @@ -31,6 +31,15 @@ impl SigningKey { SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)) } + pub fn new_with_algorithm(algorithm: &str) -> Self { + match algorithm { + "ed25519" => SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng))), + "secp256k1" => SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng)), + "secp256r1" => SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)), + _ => panic!("Unexpected key algorithm for SigningKey: {}", algorithm), + } + } + pub fn verifying_key(&self) -> VerifyingKey { self.clone().into() } @@ -54,7 +63,7 @@ impl SigningKey { "secp256r1" => Secp256r1SigningKey::from_slice(bytes) .map(SigningKey::Secp256r1) .map_err(|e| e.into()), - _ => bail!("Unexpected algorithm for VerifyingKey"), + _ => bail!("Unexpected algorithm for SigningKey: {}", algorithm), } } diff --git a/crates/keys/src/verifying_keys.rs b/crates/keys/src/verifying_keys.rs index df3b493f..5b2a92f2 100644 --- a/crates/keys/src/verifying_keys.rs +++ b/crates/keys/src/verifying_keys.rs @@ -74,7 +74,7 @@ impl VerifyingKey { "secp256r1" => Secp256r1VerifyingKey::from_sec1_bytes(bytes) .map(VerifyingKey::Secp256r1) .map_err(|e| e.into()), - _ => bail!("Unexpected algorithm for VerifyingKey"), + _ => bail!("Unexpected algorithm for VerifyingKey: {}", algorithm), } } @@ -86,6 +86,7 @@ impl VerifyingKey { } } + pub fn verify_signature(&self, message: &[u8], signature: &Signature) -> Result<()> { match self { VerifyingKey::Ed25519(vk) => { @@ -195,8 +196,8 @@ impl FromBase64 for VerifyingKey { /// /// Depending on the length of the input string, the function will attempt to /// decode it and create a `VerifyingKey` instance. According to the specifications, - /// the input string should be either [32 bytes (Ed25519)](https://datatracker.ietf.org/doc/html/rfc8032#section-5.1.5) or [33/65 bytes (Secp256k1)](https://www.secg.org/sec1-v2.pdf). - /// The secp256k1 key can be either compressed (33 bytes) or uncompressed (65 bytes). + /// the input string should be either [32 bytes (Ed25519)](https://datatracker.ietf.org/doc/html/rfc8032#section-5.1.5) or [33/65 bytes (Secp256k1 or Secp256r1)](https://www.secg.org/sec1-v2.pdf). + /// The secp256k1 and secp256r1 keys can be either compressed (33 bytes) or uncompressed (65 bytes). /// /// # Returns /// @@ -212,9 +213,13 @@ impl FromBase64 for VerifyingKey { Ok(VerifyingKey::Ed25519(vk)) } 33 | 65 => { - let vk = Secp256k1VerifyingKey::from_slice(bytes.as_slice()) - .map_err(|e| anyhow!("Invalid Secp256k1 key: {}", e))?; - Ok(VerifyingKey::Secp256k1(vk)) + if let Ok(vk) = Secp256k1VerifyingKey::from_slice(bytes.as_slice()) { + Ok(VerifyingKey::Secp256k1(vk)) + } else if let Ok(vk) = Secp256r1VerifyingKey::from_sec1_bytes(bytes.as_slice()) { + Ok(VerifyingKey::Secp256r1(vk)) + } else { + Err(anyhow!("Invalid curve type")) + } } _ => Err(anyhow!("Invalid public key length")), } diff --git a/crates/node_types/lightclient/Cargo.toml b/crates/node_types/lightclient/Cargo.toml index e1cecfd8..a1ef5f97 100644 --- a/crates/node_types/lightclient/Cargo.toml +++ b/crates/node_types/lightclient/Cargo.toml @@ -13,11 +13,11 @@ test_utils = [] mock_prover = [] [dependencies] -ed25519-consensus = { workspace = true } tokio = { workspace = true } log = { workspace = true } anyhow = { workspace = true } prism-common = { workspace = true, features = ["test_utils"] } prism-errors = { workspace = true } prism-da = { workspace = true } +prism-keys = { workspace = true } sp1-sdk = { workspace = true } diff --git a/crates/node_types/lightclient/src/lightclient.rs b/crates/node_types/lightclient/src/lightclient.rs index ee0ea9a6..d96d7f65 100644 --- a/crates/node_types/lightclient/src/lightclient.rs +++ b/crates/node_types/lightclient/src/lightclient.rs @@ -1,5 +1,5 @@ use anyhow::{Context, Result}; -use ed25519_consensus::VerificationKey as VerifyingKey; +use prism_keys::VerifyingKey; use prism_common::digest::Digest; use prism_da::{celestia::CelestiaConfig, DataAvailabilityLayer}; use prism_errors::{DataAvailabilityError, GeneralError}; @@ -72,7 +72,7 @@ impl LightClient { // TODO: Issue #144 if let Some(pubkey) = &self.prover_pubkey { - match finalized_epoch.verify_signature(*pubkey) { + match finalized_epoch.verify_signature(pubkey.clone()) { Ok(_) => trace!("valid signature for epoch {}", finalized_epoch.height), Err(e) => panic!("invalid signature in epoch {}: {:?}", i, e), } diff --git a/crates/node_types/prover/Cargo.toml b/crates/node_types/prover/Cargo.toml index f2cc323f..799993a6 100644 --- a/crates/node_types/prover/Cargo.toml +++ b/crates/node_types/prover/Cargo.toml @@ -18,10 +18,8 @@ tower-http = { workspace = true } utoipa = { workspace = true } utoipa-swagger-ui = { workspace = true } serde = { workspace = true } -ed25519-consensus = { workspace = true } tokio = { workspace = true } log = { workspace = true } -keystore-rs = { workspace = true } anyhow = { workspace = true } jmt = { workspace = true } prism-common = { workspace = true, features = ["test_utils"] } diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index 65ffae2c..4f92fff1 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -1,7 +1,6 @@ use anyhow::{anyhow, bail, Context, Result}; -use ed25519_consensus::{SigningKey, VerificationKey}; +use prism_keys::{SigningKey, VerifyingKey}; use jmt::KeyHash; -use keystore_rs::create_signing_key; use prism_common::{ digest::Digest, hashchain::Hashchain, @@ -47,7 +46,7 @@ pub struct Config { /// Key used to verify incoming [`FinalizedEpochs`]. /// This is not necessarily the counterpart to signing_key, as fullnodes must use the [`verifying_key`] of the prover. - pub verifying_key: VerificationKey, + pub verifying_key: VerifyingKey, /// DA layer height the prover should start syncing transactions from. pub start_height: u64, @@ -55,14 +54,30 @@ pub struct Config { impl Default for Config { fn default() -> Self { - let signing_key = create_signing_key(); + let signing_key = SigningKey::new_ed25519(); Config { prover: true, batcher: true, webserver: WebServerConfig::default(), signing_key: signing_key.clone(), - verifying_key: signing_key.verification_key(), + verifying_key: signing_key.verifying_key(), + start_height: 1, + } + } +} + +#[cfg(test)] +impl Config { + fn default_with_key_algorithm(algorithm: &str) -> Self { + let signing_key = SigningKey::new_with_algorithm(algorithm); + + Config { + prover: true, + batcher: true, + webserver: WebServerConfig::default(), + signing_key: signing_key.clone(), + verifying_key: signing_key.verifying_key(), start_height: 1, } } @@ -269,8 +284,10 @@ impl Prover { return Ok(()); } + dbg!(self.cfg.verifying_key.clone()); + // TODO: Issue #144 - match epoch.verify_signature(self.cfg.verifying_key) { + match epoch.verify_signature(self.cfg.verifying_key.clone()) { Ok(_) => trace!("valid signature for epoch {}", epoch.height), Err(e) => panic!("invalid signature in epoch {}: {:?}", epoch.height, e), } diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index a136d38b..39c8ec91 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -8,36 +8,35 @@ use prism_da::memory::InMemoryDataAvailabilityLayer; use prism_storage::{inmemory::InMemoryDatabase, Database}; // Helper function to create a test prover instance -async fn create_test_prover() -> Arc { +async fn create_test_prover(algorithm: &str) -> Arc { let (da_layer, _rx, _brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default(); + let cfg = Config::default_with_key_algorithm(algorithm); Arc::new(Prover::new(db.clone(), da_layer, &cfg).unwrap()) } -fn create_mock_transactions(service_id: String) -> Vec { +fn create_mock_transactions(algorithm: &str, service_id: String) -> Vec { let mut transaction_builder = TransactionBuilder::new(); vec![ - transaction_builder.register_service_with_random_keys(&service_id).commit(), + transaction_builder.register_service_with_random_keys(algorithm, &service_id).commit(), transaction_builder - .create_account_with_random_key_signed("user1@example.com", &service_id) + .create_account_with_random_key_signed(algorithm, "user1@example.com", &service_id) .commit(), transaction_builder - .create_account_with_random_key_signed("user2@example.com", &service_id) + .create_account_with_random_key_signed(algorithm, "user2@example.com", &service_id) .commit(), - transaction_builder.add_random_key_verified_with_root("user1@example.com").commit(), + transaction_builder.add_random_key_verified_with_root(algorithm, "user1@example.com").commit(), ] } -#[tokio::test] -async fn test_validate_and_queue_update() { - let prover = create_test_prover().await; +async fn test_validate_and_queue_update(algorithm: &str) { + let prover = create_test_prover(algorithm).await; let mut transaction_builder = TransactionBuilder::new(); let transaction = - transaction_builder.register_service_with_random_keys("test_service").commit(); + transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); prover.clone().validate_and_queue_update(transaction.clone()).await.unwrap(); @@ -48,14 +47,28 @@ async fn test_validate_and_queue_update() { } #[tokio::test] -async fn test_process_transactions() { - let prover = create_test_prover().await; +async fn test_validate_and_queue_update_ed25519() { + test_validate_and_queue_update("ed25519").await; +} + +#[tokio::test] +async fn test_validate_and_queue_update_secp256k1() { + test_validate_and_queue_update("secp256k1").await; +} + +#[tokio::test] +async fn test_validate_and_queue_update_secp256r1() { + test_validate_and_queue_update("secp256r1").await; +} + +async fn test_process_transactions(algorithm: &str) { + let prover = create_test_prover(algorithm).await; let mut transaction_builder = TransactionBuilder::new(); let register_service_transaction = - transaction_builder.register_service_with_random_keys("test_service").commit(); + transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); let create_account_transaction = transaction_builder - .create_account_with_random_key_signed("test_account", "test_service") + .create_account_with_random_key_signed(algorithm, "test_account", "test_service") .commit(); let proof = prover.process_transaction(register_service_transaction).await.unwrap(); @@ -64,7 +77,7 @@ async fn test_process_transactions() { let proof = prover.process_transaction(create_account_transaction.clone()).await.unwrap(); assert!(matches!(proof, Proof::Insert(_))); - let new_key = SigningKey::new_ed25519(); + let new_key = SigningKey::new_with_algorithm(algorithm); let add_key_transaction = transaction_builder .add_key_verified_with_root("test_account", new_key.clone().into()) .commit(); @@ -87,24 +100,38 @@ async fn test_process_transactions() { } #[tokio::test] -async fn test_execute_block_with_invalid_tx() { - let prover = create_test_prover().await; +async fn test_process_transactions_ed25519() { + test_process_transactions("ed25519").await; +} + +#[tokio::test] +async fn test_process_transactions_secp256k1() { + test_process_transactions("secp256k1").await; +} + +#[tokio::test] +async fn test_process_transactions_secp256r1() { + test_process_transactions("secp256r1").await; +} + +async fn test_execute_block_with_invalid_tx(algorithm: &str) { + let prover = create_test_prover(algorithm).await; let mut tx_builder = TransactionBuilder::new(); - let new_key_1 = SigningKey::new_ed25519(); + let new_key_1 = SigningKey::new_with_algorithm(algorithm); let new_key_vk: VerifyingKey = new_key_1.clone().into(); let transactions = vec![ - tx_builder.register_service_with_random_keys("service_id").commit(), - tx_builder.create_account_with_random_key_signed("account_id", "service_id").commit(), - // add new key, so it will be index = 1 + tx_builder.register_service_with_random_keys(algorithm, "service_id").commit(), + tx_builder.create_account_with_random_key_signed(algorithm, "account_id", "service_id").commit(), + // add new key, so it will be index = 1 tx_builder.add_key_verified_with_root("account_id", new_key_vk.clone()).commit(), // revoke new key again tx_builder.revoke_key_verified_with_root("account_id", new_key_vk).commit(), // and adding in same block. // both of these transactions are valid individually, but when processed together it will fail. - tx_builder.add_random_key("account_id", &new_key_1, 1).build(), + tx_builder.add_random_key(algorithm, "account_id", &new_key_1, 1).build(), ]; let proofs = prover.execute_block(transactions).await.unwrap(); @@ -112,19 +139,47 @@ async fn test_execute_block_with_invalid_tx() { } #[tokio::test] -async fn test_execute_block() { - let prover = create_test_prover().await; +async fn test_execute_block_with_invalid_tx_ed25519() { + test_execute_block_with_invalid_tx("ed25519").await; +} + +#[tokio::test] +async fn test_execute_block_with_invalid_tx_secp256k1() { + test_execute_block_with_invalid_tx("secp256k1").await; +} - let transactions = create_mock_transactions("test_service".to_string()); +#[tokio::test] +async fn test_execute_block_with_invalid_tx_secp256r1() { + test_execute_block_with_invalid_tx("secp256r1").await; +} + +async fn test_execute_block(algorithm: &str) { + let prover = create_test_prover(algorithm).await; + + let transactions = create_mock_transactions(algorithm, "test_service".to_string()); let proofs = prover.execute_block(transactions).await.unwrap(); assert_eq!(proofs.len(), 4); } #[tokio::test] -async fn test_finalize_new_epoch() { - let prover = create_test_prover().await; - let transactions = create_mock_transactions("test_service".to_string()); +async fn test_execute_block_ed25519() { + test_execute_block("ed25519").await; +} + +#[tokio::test] +async fn test_execute_block_secp256k1() { + test_execute_block("secp256k1").await; +} + +#[tokio::test] +async fn test_execute_block_secp256r1() { + test_execute_block("secp256r1").await; +} + +async fn test_finalize_new_epoch(algorithm: &str) { + let prover = create_test_prover(algorithm).await; + let transactions = create_mock_transactions(algorithm, "test_service".to_string()); let prev_commitment = prover.get_commitment().await.unwrap(); prover.finalize_new_epoch(0, transactions).await.unwrap(); @@ -134,12 +189,26 @@ async fn test_finalize_new_epoch() { } #[tokio::test] -async fn test_restart_sync_from_scratch() { +async fn test_finalize_new_epoch_ed25519() { + test_finalize_new_epoch("ed25519").await; +} + +#[tokio::test] +async fn test_finalize_new_epoch_secp256k1() { + test_finalize_new_epoch("secp256k1").await; +} + +#[tokio::test] +async fn test_finalize_new_epoch_secp256r1() { + test_finalize_new_epoch("secp256r1").await; +} + +async fn test_restart_sync_from_scratch(algorithm: &str) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db1: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); let db2: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default(); + let cfg = Config::default_with_key_algorithm(algorithm); let prover = Arc::new(Prover::new(db1.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover.clone(); @@ -147,7 +216,7 @@ async fn test_restart_sync_from_scratch() { runner.run().await.unwrap(); }); - let transactions = create_mock_transactions("test_service".to_string()); + let transactions = create_mock_transactions(algorithm, "test_service".to_string()); for transaction in transactions { prover.clone().validate_and_queue_update(transaction).await.unwrap(); @@ -158,7 +227,9 @@ async fn test_restart_sync_from_scratch() { } } - assert_eq!(prover.clone().db.get_epoch().unwrap(), 4); + let epoch = prover.clone().db.get_epoch().unwrap(); + dbg!("Prover 1 reached epoch: {}", epoch); + assert_eq!(epoch, 4); let prover2 = Arc::new(Prover::new(db2.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover2.clone(); @@ -166,11 +237,13 @@ async fn test_restart_sync_from_scratch() { loop { let epoch = prover2.clone().db.get_epoch().unwrap(); + dbg!("Prover 2 current epoch: {}", epoch); if epoch == 4 { assert_eq!( prover.get_commitment().await.unwrap(), prover2.get_commitment().await.unwrap() ); + dbg!("Prover 2 reached epoch 4 and commitments match."); break; } tokio::time::sleep(Duration::from_millis(200)).await; @@ -178,11 +251,25 @@ async fn test_restart_sync_from_scratch() { } #[tokio::test] -async fn test_load_persisted_state() { +async fn test_restart_sync_from_scratch_ed25519() { + test_restart_sync_from_scratch("ed25519").await; +} + +#[tokio::test] +async fn test_restart_sync_from_scratch_secp256k1() { + test_restart_sync_from_scratch("secp256k1").await; +} + +#[tokio::test] +async fn test_restart_sync_from_scratch_secp256r1() { + test_restart_sync_from_scratch("secp256r1").await; +} + +async fn test_load_persisted_state(algorithm: &str) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default(); + let cfg = Config::default_with_key_algorithm(algorithm); let prover = Arc::new(Prover::new(db.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover.clone(); @@ -190,7 +277,7 @@ async fn test_load_persisted_state() { runner.run().await.unwrap(); }); - let transactions = create_mock_transactions("test_service".to_string()); + let transactions = create_mock_transactions(algorithm, "test_service".to_string()); for transaction in transactions { prover.clone().validate_and_queue_update(transaction).await.unwrap(); @@ -213,3 +300,18 @@ async fn test_load_persisted_state() { prover2.get_commitment().await.unwrap() ); } + +#[tokio::test] +async fn test_load_persisted_state_ed25519() { + test_load_persisted_state("ed25519").await; +} + +#[tokio::test] +async fn test_load_persisted_state_secp256k1() { + test_load_persisted_state("secp256k1").await; +} + +#[tokio::test] +async fn test_load_persisted_state_secp256r1() { + test_load_persisted_state("secp256r1").await; +} diff --git a/crates/tests/Cargo.toml b/crates/tests/Cargo.toml index 01e1cd9b..1a3fc30a 100644 --- a/crates/tests/Cargo.toml +++ b/crates/tests/Cargo.toml @@ -21,6 +21,7 @@ keystore-rs.workspace = true prism-common = { workspace = true, features = ["test_utils"] } prism-storage.workspace = true prism-prover = { workspace = true, features = ["mock_prover"] } +prism-keys = { workspace = true } prism-lightclient.workspace = true prism-da.workspace = true rand.workspace = true diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index b6027b43..595fb937 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -4,7 +4,6 @@ extern crate log; use anyhow::Result; -use keystore_rs::create_signing_key; use prism_common::transaction_builder::TransactionBuilder; use prism_da::{ celestia::{CelestiaConfig, CelestiaConnection}, @@ -12,6 +11,7 @@ use prism_da::{ }; use prism_lightclient::LightClient; use prism_prover::Prover; +use prism_keys::SigningKey; use prism_storage::{rocksdb::RocksDBConnection, Database}; use rand::{rngs::StdRng, Rng, SeedableRng}; use std::sync::Arc; @@ -42,11 +42,13 @@ async fn test_light_client_prover_talking() -> Result<()> { ..CelestiaConfig::default() }; + let algorithm = "secp256r1"; + let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); let db = setup_db(); - let signing_key = create_signing_key(); - let pubkey = signing_key.verification_key(); + let signing_key = SigningKey::new_with_algorithm(algorithm); + let pubkey = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { signing_key, @@ -78,7 +80,7 @@ async fn test_light_client_prover_talking() -> Result<()> { let mut transaction_builder = TransactionBuilder::new(); let register_service_req = - transaction_builder.register_service_with_random_keys("test_service").commit(); + transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); let mut i = 0; @@ -91,7 +93,7 @@ async fn test_light_client_prover_talking() -> Result<()> { for _ in 0..num_new_accounts { let random_user_id = format!("{}@gmail.com", i); let new_acc = transaction_builder - .create_account_with_random_key_signed(random_user_id.as_str(), "test_service") + .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service") .commit(); match prover.clone().validate_and_queue_update(new_acc).await { Ok(_) => { @@ -110,7 +112,7 @@ async fn test_light_client_prover_talking() -> Result<()> { .map_or("Could not find random account id", |id| id.as_str()); let update_acc = - transaction_builder.add_random_key_verified_with_root(acc_id).commit(); + transaction_builder.add_random_key_verified_with_root(algorithm, acc_id).commit(); match prover.clone().validate_and_queue_update(update_acc).await { Ok(_) => (), diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index ccb2b931fe455d1070ae2e941a6451392a28fd93..711dc8053e3024c1475fdf2082c568000739abc0 100755 GIT binary patch delta 239747 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 delta 240836 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

PzG}(M@ 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 Yz5M&Q@88i|@U^eYk?a4-=g9y4e?&Gi6#xJL From 9aa437b6b3e954f82b6b7cf3a890e45daf791e8a Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:06:01 +0100 Subject: [PATCH 02/30] feat: config checks Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 53 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 4cee4684..a4eee750 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -37,7 +37,17 @@ async fn main() -> std::io::Result<()> { ) })?; - let prover_vk = VerifyingKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), config.verifying_key.unwrap().as_bytes()).unwrap(); + let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); + + if verifying_key_algorithm.is_empty() { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); + } + + if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); + } + + let prover_vk = VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, config.verifying_key.unwrap().as_bytes()).unwrap(); Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } @@ -62,7 +72,16 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let signing_key = SigningKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), signing_key_chain.as_bytes()).unwrap(); + let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); + if verifying_key_algorithm.is_empty() { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); + } + + if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); + } + + let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -109,9 +128,33 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let signing_key = SigningKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), signing_key_chain.as_bytes()).unwrap(); - - let prover_vk = VerifyingKey::from_algorithm_and_bytes(config.verifying_key_algorithm.as_str(), config.verifying_key.unwrap().as_bytes()).unwrap(); + // error if config.verifying_key_algorithm.as_str() is not present in config or invalid + if config.verifying_key_algorithm.is_empty() { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); + } + + let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); + + if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); + } + + let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); + + let prover_vk = config + .verifying_key + .ok_or_else(|| { + std::io::Error::new( + std::io::ErrorKind::NotFound, + "prover verifying key not found", + ) + }) + .and_then(|vk| VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, vk.as_bytes()).map_err(|_| { + std::io::Error::new( + std::io::ErrorKind::InvalidData, + "invalid prover verifying key", + ) + }))?; let prover_cfg = prism_prover::Config { prover: false, From 9c63742a63dabf97edca7111128111a2e0eefd66 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:06:23 +0100 Subject: [PATCH 03/30] feat: build Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- elf/riscv32im-succinct-zkvm-elf | Bin 1927388 -> 1927816 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index 711dc8053e3024c1475fdf2082c568000739abc0..5ca57022805c3dfca7a14f99e67607d0927f74ad 100755 GIT binary patch delta 165401 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 g?jChq-1DwE^?0~f<5fB*mh delta 164779 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

egd;0izw2_?<_%zd_i*0>APp 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�stF{biHoRV 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 Date: Thu, 19 Dec 2024 13:11:06 +0100 Subject: [PATCH 04/30] fix: remove debug message Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/node_types/prover/src/prover/mod.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index 4f92fff1..13edc885 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -284,8 +284,6 @@ impl Prover { return Ok(()); } - dbg!(self.cfg.verifying_key.clone()); - // TODO: Issue #144 match epoch.verify_signature(self.cfg.verifying_key.clone()) { Ok(_) => trace!("valid signature for epoch {}", epoch.height), From 9e31143a9e8fdfb8a59415f4ce042ac5e8f3f6eb Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:12:00 +0100 Subject: [PATCH 05/30] fix: intentation Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/node_types/prover/src/prover/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 39c8ec91..790b57a3 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -125,7 +125,7 @@ async fn test_execute_block_with_invalid_tx(algorithm: &str) { let transactions = vec![ tx_builder.register_service_with_random_keys(algorithm, "service_id").commit(), tx_builder.create_account_with_random_key_signed(algorithm, "account_id", "service_id").commit(), - // add new key, so it will be index = 1 + // add new key, so it will be index = 1 tx_builder.add_key_verified_with_root("account_id", new_key_vk.clone()).commit(), // revoke new key again tx_builder.revoke_key_verified_with_root("account_id", new_key_vk).commit(), From bacc54e55bdcd88e5c80b6a51633f6db598d83ff Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:13:09 +0100 Subject: [PATCH 06/30] fix: test output as before Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/node_types/prover/src/prover/tests.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 790b57a3..2343da20 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -227,9 +227,7 @@ async fn test_restart_sync_from_scratch(algorithm: &str) { } } - let epoch = prover.clone().db.get_epoch().unwrap(); - dbg!("Prover 1 reached epoch: {}", epoch); - assert_eq!(epoch, 4); + assert_eq!(prover.clone().db.get_epoch().unwrap(), 4); let prover2 = Arc::new(Prover::new(db2.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover2.clone(); @@ -237,13 +235,11 @@ async fn test_restart_sync_from_scratch(algorithm: &str) { loop { let epoch = prover2.clone().db.get_epoch().unwrap(); - dbg!("Prover 2 current epoch: {}", epoch); if epoch == 4 { assert_eq!( prover.get_commitment().await.unwrap(), prover2.get_commitment().await.unwrap() ); - dbg!("Prover 2 reached epoch 4 and commitments match."); break; } tokio::time::sleep(Duration::from_millis(200)).await; From 8223b707ae3bdef747a0e0cf725937f19ce284fb Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:40:32 +0100 Subject: [PATCH 07/30] fix: wrong usage of function Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/tree/src/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index 7eccee8a..51f41f75 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -288,7 +288,7 @@ fn test_multiple_inserts_and_updates(algorithm: &str) { tree.process_transaction(key_1_tx).unwrap(); let data_1_tx = - tx_builder.add_unsigned_data_verified_with_root(algorithm, "acc_2", b"unsigned".to_vec()).commit(); + tx_builder.add_unsigned_data_verified_with_root("acc_2", b"unsigned".to_vec()).commit(); tree.process_transaction(data_1_tx).unwrap(); let data_2_tx = tx_builder From db1b9e88dd4199960a0a0238959939f5c7b5057c Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:48:04 +0100 Subject: [PATCH 08/30] feat: apply coderabbit review 1st round Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 53 ++++++++++------------ crates/keys/src/signing_keys.rs | 10 ++-- crates/node_types/prover/src/prover/mod.rs | 7 ++- crates/tests/src/lib.rs | 8 ++-- 4 files changed, 35 insertions(+), 43 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index a4eee750..efac8965 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -37,17 +37,14 @@ async fn main() -> std::io::Result<()> { ) })?; - let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); + let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - if verifying_key_algorithm.is_empty() { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); - } - - if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); - } - - let prover_vk = VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, config.verifying_key.unwrap().as_bytes()).unwrap(); + let prover_vk = VerifyingKey::from_algorithm_and_bytes( + verifying_key_algorithm, + config.verifying_key.unwrap().as_bytes(), + ).map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, format!("invalid prover verifying key: {}", e), + ))?; Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } @@ -72,14 +69,7 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); - if verifying_key_algorithm.is_empty() { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); - } - - if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); - } + let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); let verifying_key = signing_key.verifying_key(); @@ -128,16 +118,7 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - // error if config.verifying_key_algorithm.as_str() is not present in config or invalid - if config.verifying_key_algorithm.is_empty() { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); - } - - let verifying_key_algorithm = config.verifying_key_algorithm.as_str(); - - if !["ed25519", "secp256k1", "secp256r1"].contains(&verifying_key_algorithm) { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); - } + let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); @@ -149,10 +130,10 @@ async fn main() -> std::io::Result<()> { "prover verifying key not found", ) }) - .and_then(|vk| VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, vk.as_bytes()).map_err(|_| { + .and_then(|vk| VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, vk.as_bytes()).map_err(|e| { std::io::Error::new( std::io::ErrorKind::InvalidData, - "invalid prover verifying key", + format!("invalid prover verifying key: {}", e), ) }))?; @@ -178,3 +159,15 @@ async fn main() -> std::io::Result<()> { node.start().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string())) } + +fn validate_algorithm(algorithm: &str) -> Result<&str, std::io::Error> { + if algorithm.is_empty() { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); + } + + if !["ed25519", "secp256k1", "secp256r1"].contains(&algorithm) { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); + } + + Ok(algorithm) +} diff --git a/crates/keys/src/signing_keys.rs b/crates/keys/src/signing_keys.rs index d7bb74b8..7b3f511b 100644 --- a/crates/keys/src/signing_keys.rs +++ b/crates/keys/src/signing_keys.rs @@ -31,12 +31,12 @@ impl SigningKey { SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)) } - pub fn new_with_algorithm(algorithm: &str) -> Self { + pub fn new_with_algorithm(algorithm: &str) -> Result { match algorithm { - "ed25519" => SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng))), - "secp256k1" => SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng)), - "secp256r1" => SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)), - _ => panic!("Unexpected key algorithm for SigningKey: {}", algorithm), + "ed25519" => Ok(SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng)))), + "secp256k1" => Ok(SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng))), + "secp256r1" => Ok(SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng))), + _ => bail!("Unexpected key algorithm for SigningKey: '{}'. Expected one of: ed25519, secp256k1, secp256r1", algorithm), } } diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index a7a5b7c4..eb2fabf6 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -282,10 +282,9 @@ impl Prover { } // TODO: Issue #144 - match epoch.verify_signature(self.cfg.verifying_key.clone()) { - Ok(_) => trace!("valid signature for epoch {}", epoch.height), - Err(e) => panic!("invalid signature in epoch {}: {:?}", epoch.height, e), - } + epoch.verify_signature(&self.cfg.verifying_key) + .with_context(|| format!("Invalid signature in epoch {}", epoch.height))?; + trace!("valid signature for epoch {}", epoch.height); let prev_commitment = self.db.get_commitment(¤t_epoch)?; diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index 595fb937..e82f222e 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -47,7 +47,7 @@ async fn test_light_client_prover_talking() -> Result<()> { let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); let db = setup_db(); - let signing_key = SigningKey::new_with_algorithm(algorithm); + let signing_key = SigningKey::new_with_algorithm(algorithm)?; let pubkey = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -80,7 +80,7 @@ async fn test_light_client_prover_talking() -> Result<()> { let mut transaction_builder = TransactionBuilder::new(); let register_service_req = - transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); + transaction_builder.register_service_with_random_keys(algorithm, "test_service")?.commit(); let mut i = 0; @@ -93,7 +93,7 @@ async fn test_light_client_prover_talking() -> Result<()> { for _ in 0..num_new_accounts { let random_user_id = format!("{}@gmail.com", i); let new_acc = transaction_builder - .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service") + .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service")? .commit(); match prover.clone().validate_and_queue_update(new_acc).await { Ok(_) => { @@ -112,7 +112,7 @@ async fn test_light_client_prover_talking() -> Result<()> { .map_or("Could not find random account id", |id| id.as_str()); let update_acc = - transaction_builder.add_random_key_verified_with_root(algorithm, acc_id).commit(); + transaction_builder.add_random_key_verified_with_root(algorithm, acc_id)?.commit(); match prover.clone().validate_and_queue_update(update_acc).await { Ok(_) => (), From efb146c029ef0456e19e46c0dcce6de3add8a436 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:57:16 +0100 Subject: [PATCH 09/30] fix: errors Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/common/src/transaction_builder.rs | 14 +++++----- crates/node_types/prover/src/prover/mod.rs | 4 +-- crates/node_types/prover/src/prover/tests.rs | 4 +-- crates/tests/src/lib.rs | 6 ++--- crates/tree/src/tests.rs | 26 +++++-------------- elf/riscv32im-succinct-zkvm-elf | Bin 1960384 -> 1960384 bytes 6 files changed, 20 insertions(+), 34 deletions(-) diff --git a/crates/common/src/transaction_builder.rs b/crates/common/src/transaction_builder.rs index 38f4e20e..d5062a7e 100644 --- a/crates/common/src/transaction_builder.rs +++ b/crates/common/src/transaction_builder.rs @@ -89,8 +89,8 @@ impl TransactionBuilder { algorithm: &str, id: &str, ) -> UncommittedTransaction { - let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm); - let random_service_signing_key = SigningKey::new_with_algorithm(algorithm); + let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create challenge key"); + let random_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); self.register_service(id, random_service_challenge_key, random_service_signing_key) } @@ -124,7 +124,7 @@ impl TransactionBuilder { id: &str, service_id: &str, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_with_algorithm(algorithm); + let account_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); self.create_account_signed(id, service_id, account_signing_key) } @@ -148,7 +148,7 @@ impl TransactionBuilder { service_id: &str, service_signing_key: &SigningKey, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_with_algorithm(algorithm); + let account_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); self.create_account(id, service_id, service_signing_key, account_signing_key) } @@ -197,7 +197,7 @@ impl TransactionBuilder { signing_key: &SigningKey, key_idx: usize, ) -> UncommittedTransaction { - let random_key = SigningKey::new_with_algorithm(algorithm).into(); + let random_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create random key").into(); self.add_key(id, random_key, signing_key, key_idx) } @@ -275,7 +275,7 @@ impl TransactionBuilder { signing_key: &SigningKey, key_idx: usize, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_with_algorithm(algorithm); + let value_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); self.add_signed_data(id, value, &value_signing_key, signing_key, key_idx) } @@ -285,7 +285,7 @@ impl TransactionBuilder { id: &str, value: Vec, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_with_algorithm(algorithm); + let value_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); self.add_signed_data_verified_with_root(id, value, &value_signing_key) } diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index eb2fabf6..c45f41e2 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -67,7 +67,7 @@ impl Default for Config { #[cfg(test)] impl Config { fn default_with_key_algorithm(algorithm: &str) -> Self { - let signing_key = SigningKey::new_with_algorithm(algorithm); + let signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); Config { prover: true, @@ -282,7 +282,7 @@ impl Prover { } // TODO: Issue #144 - epoch.verify_signature(&self.cfg.verifying_key) + epoch.verify_signature(self.cfg.verifying_key.clone()) .with_context(|| format!("Invalid signature in epoch {}", epoch.height))?; trace!("valid signature for epoch {}", epoch.height); diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index f5209711..15c59f38 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -77,7 +77,7 @@ async fn test_process_transactions(algorithm: &str) { let proof = prover.process_transaction(create_account_transaction.clone()).await.unwrap(); assert!(matches!(proof, Proof::Insert(_))); - let new_key = SigningKey::new_with_algorithm(algorithm); + let new_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create new key"); let add_key_transaction = transaction_builder .add_key_verified_with_root("test_account", new_key.clone().into()) .commit(); @@ -119,7 +119,7 @@ async fn test_execute_block_with_invalid_tx(algorithm: &str) { let mut tx_builder = TransactionBuilder::new(); - let new_key_1 = SigningKey::new_with_algorithm(algorithm); + let new_key_1 = SigningKey::new_with_algorithm(algorithm).expect("Failed to create new key"); let new_key_vk: VerifyingKey = new_key_1.clone().into(); let transactions = vec![ diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index e82f222e..b9d60eee 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -80,7 +80,7 @@ async fn test_light_client_prover_talking() -> Result<()> { let mut transaction_builder = TransactionBuilder::new(); let register_service_req = - transaction_builder.register_service_with_random_keys(algorithm, "test_service")?.commit(); + transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); let mut i = 0; @@ -93,7 +93,7 @@ async fn test_light_client_prover_talking() -> Result<()> { for _ in 0..num_new_accounts { let random_user_id = format!("{}@gmail.com", i); let new_acc = transaction_builder - .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service")? + .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service") .commit(); match prover.clone().validate_and_queue_update(new_acc).await { Ok(_) => { @@ -112,7 +112,7 @@ async fn test_light_client_prover_talking() -> Result<()> { .map_or("Could not find random account id", |id| id.as_str()); let update_acc = - transaction_builder.add_random_key_verified_with_root(algorithm, acc_id)?.commit(); + transaction_builder.add_random_key_verified_with_root(algorithm, acc_id).commit(); match prover.clone().validate_and_queue_update(update_acc).await { Ok(_) => (), diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index 51f41f75..522e7679 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -59,7 +59,7 @@ fn test_insert_for_nonexistent_service_fails(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_signing_key = SigningKey::new_with_algorithm(algorithm); + let service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); let invalid_account_tx = tx_builder .create_account_with_random_key( @@ -97,9 +97,9 @@ fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { // The correct way was to use the key from service registration, // but here we want things to break - let incorrect_service_signing_key = SigningKey::new_with_algorithm(algorithm); + let incorrect_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); - let initial_acc_signing_key = SigningKey::new_with_algorithm(algorithm); + let initial_acc_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); let acc_with_invalid_challenge_tx = tx_builder .create_account( @@ -220,7 +220,7 @@ fn test_update_non_existing_key(algorithm: &str) { tree.process_transaction(service_tx).unwrap(); // This is a signing key not known to the storage yet - let random_signing_key = SigningKey::new_with_algorithm(algorithm); + let random_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create random signing key"); // This transaction shall be invalid, because it is signed with an unknown key let invalid_key_tx = tx_builder.add_random_key(algorithm, "acc_1", &random_signing_key, 0).build(); @@ -243,7 +243,8 @@ fn test_update_non_existing_key_secp256r1() { test_update_non_existing_key("secp256r1"); } -fn test_get_non_existing_key(algorithm: &str) { +#[test] +fn test_get_non_existing_key() { let tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let result = tree.get(KeyHash::with::("non_existing_id")).unwrap(); @@ -255,21 +256,6 @@ fn test_get_non_existing_key(algorithm: &str) { assert!(non_membership_proof.verify().is_ok()); } -#[test] -fn test_get_non_existing_key_ed25519() { - test_get_non_existing_key("ed25519"); -} - -#[test] -fn test_get_non_existing_key_secp256k1() { - test_get_non_existing_key("secp256k1"); -} - -#[test] -fn test_get_non_existing_key_secp256r1() { - test_get_non_existing_key("secp256r1"); -} - fn test_multiple_inserts_and_updates(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index 5a5a797843a8b36ca0bfe09239e03943f58b8bc9..922729e0f5c328a28125f9049b8139a231c35810 100755 GIT binary patch delta 89 zcmX?bx%|N8@`e`17N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw r7O@ub7Ks+g7O5@Lss3yR3@RylM$F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw s7O@ub7Ks+g7O5@Lss8MS3@RylMn=;=`bjIb_xVc$vCQ^9e_5kh0Cxl(zyJUM From c2740afe4b8120d195f025e6386dd358fe9a285b Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:11:36 +0100 Subject: [PATCH 10/30] feat: apply coderabbit review 2nd round Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- Cargo.lock | 2 + Cargo.toml | 1 + crates/cli/src/main.rs | 6 +- crates/node_types/prover/Cargo.toml | 1 + crates/node_types/prover/src/prover/tests.rs | 126 +++--------- crates/tree/Cargo.toml | 1 + crates/tree/src/tests.rs | 196 ++++--------------- 7 files changed, 73 insertions(+), 260 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef9b1bc7..47768c63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4896,6 +4896,7 @@ dependencies = [ "axum 0.6.20", "jmt", "log", + "paste", "prism-common", "prism-da", "prism-errors", @@ -4974,6 +4975,7 @@ dependencies = [ "anyhow", "jmt", "log", + "paste", "prism-common", "prism-errors", "prism-keys", diff --git a/Cargo.toml b/Cargo.toml index c018660c..79ee4bb5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -108,6 +108,7 @@ jmt = { git = "https://github.com/deltadevsde/jmt", branch = "rehashing-circuit" sha2 = "0.10.8" tempfile = "3.14.0" auto_impl = "1.2.0" +paste = "1.0.15" # prism prism-common = { path = "crates/common" } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index efac8965..bb36e3ed 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -71,7 +71,8 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); + let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -120,7 +121,8 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()).unwrap(); + let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; let prover_vk = config .verifying_key diff --git a/crates/node_types/prover/Cargo.toml b/crates/node_types/prover/Cargo.toml index 0d4e330d..c15c3e43 100644 --- a/crates/node_types/prover/Cargo.toml +++ b/crates/node_types/prover/Cargo.toml @@ -13,6 +13,7 @@ test_utils = [] mock_prover = [] [dependencies] +paste = { workspace = true } axum = { workspace = true } tower-http = { workspace = true } utoipa = { workspace = true } diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 15c59f38..23621312 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -46,21 +46,6 @@ async fn test_validate_and_queue_update(algorithm: &str) { assert_eq!(pending_transactions.len(), 2); } -#[tokio::test] -async fn test_validate_and_queue_update_ed25519() { - test_validate_and_queue_update("ed25519").await; -} - -#[tokio::test] -async fn test_validate_and_queue_update_secp256k1() { - test_validate_and_queue_update("secp256k1").await; -} - -#[tokio::test] -async fn test_validate_and_queue_update_secp256r1() { - test_validate_and_queue_update("secp256r1").await; -} - async fn test_process_transactions(algorithm: &str) { let prover = create_test_prover(algorithm).await; @@ -99,21 +84,6 @@ async fn test_process_transactions(algorithm: &str) { assert!(matches!(proof, Proof::Update(_))); } -#[tokio::test] -async fn test_process_transactions_ed25519() { - test_process_transactions("ed25519").await; -} - -#[tokio::test] -async fn test_process_transactions_secp256k1() { - test_process_transactions("secp256k1").await; -} - -#[tokio::test] -async fn test_process_transactions_secp256r1() { - test_process_transactions("secp256r1").await; -} - async fn test_execute_block_with_invalid_tx(algorithm: &str) { let prover = create_test_prover(algorithm).await; @@ -138,21 +108,6 @@ async fn test_execute_block_with_invalid_tx(algorithm: &str) { assert_eq!(proofs.len(), 4); } -#[tokio::test] -async fn test_execute_block_with_invalid_tx_ed25519() { - test_execute_block_with_invalid_tx("ed25519").await; -} - -#[tokio::test] -async fn test_execute_block_with_invalid_tx_secp256k1() { - test_execute_block_with_invalid_tx("secp256k1").await; -} - -#[tokio::test] -async fn test_execute_block_with_invalid_tx_secp256r1() { - test_execute_block_with_invalid_tx("secp256r1").await; -} - async fn test_execute_block(algorithm: &str) { let prover = create_test_prover(algorithm).await; @@ -162,21 +117,6 @@ async fn test_execute_block(algorithm: &str) { assert_eq!(proofs.len(), 4); } -#[tokio::test] -async fn test_execute_block_ed25519() { - test_execute_block("ed25519").await; -} - -#[tokio::test] -async fn test_execute_block_secp256k1() { - test_execute_block("secp256k1").await; -} - -#[tokio::test] -async fn test_execute_block_secp256r1() { - test_execute_block("secp256r1").await; -} - async fn test_finalize_new_epoch(algorithm: &str) { let prover = create_test_prover(algorithm).await; let transactions = create_mock_transactions(algorithm, "test_service".to_string()); @@ -188,21 +128,6 @@ async fn test_finalize_new_epoch(algorithm: &str) { assert_ne!(prev_commitment, new_commitment); } -#[tokio::test] -async fn test_finalize_new_epoch_ed25519() { - test_finalize_new_epoch("ed25519").await; -} - -#[tokio::test] -async fn test_finalize_new_epoch_secp256k1() { - test_finalize_new_epoch("secp256k1").await; -} - -#[tokio::test] -async fn test_finalize_new_epoch_secp256r1() { - test_finalize_new_epoch("secp256r1").await; -} - async fn test_restart_sync_from_scratch(algorithm: &str) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); @@ -246,21 +171,6 @@ async fn test_restart_sync_from_scratch(algorithm: &str) { } } -#[tokio::test] -async fn test_restart_sync_from_scratch_ed25519() { - test_restart_sync_from_scratch("ed25519").await; -} - -#[tokio::test] -async fn test_restart_sync_from_scratch_secp256k1() { - test_restart_sync_from_scratch("secp256k1").await; -} - -#[tokio::test] -async fn test_restart_sync_from_scratch_secp256r1() { - test_restart_sync_from_scratch("secp256r1").await; -} - async fn test_load_persisted_state(algorithm: &str) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); @@ -297,17 +207,31 @@ async fn test_load_persisted_state(algorithm: &str) { ); } -#[tokio::test] -async fn test_load_persisted_state_ed25519() { - test_load_persisted_state("ed25519").await; -} +macro_rules! generate_algorithm_tests { + ($test_fn:ident) => { + paste::paste! { + #[tokio::test] + async fn [<$test_fn _ed25519>]() { + $test_fn("ed25519").await; + } -#[tokio::test] -async fn test_load_persisted_state_secp256k1() { - test_load_persisted_state("secp256k1").await; -} + #[tokio::test] + async fn [<$test_fn _secp256k1>]() { + $test_fn("secp256k1").await; + } -#[tokio::test] -async fn test_load_persisted_state_secp256r1() { - test_load_persisted_state("secp256r1").await; + #[tokio::test] + async fn [<$test_fn _secp256r1>]() { + $test_fn("secp256r1").await; + } + } + }; } + +generate_algorithm_tests!(test_validate_and_queue_update); +generate_algorithm_tests!(test_process_transactions); +generate_algorithm_tests!(test_execute_block_with_invalid_tx); +generate_algorithm_tests!(test_execute_block); +generate_algorithm_tests!(test_finalize_new_epoch); +generate_algorithm_tests!(test_restart_sync_from_scratch); +generate_algorithm_tests!(test_load_persisted_state); diff --git a/crates/tree/Cargo.toml b/crates/tree/Cargo.toml index 0005baf8..30381979 100644 --- a/crates/tree/Cargo.toml +++ b/crates/tree/Cargo.toml @@ -11,6 +11,7 @@ keywords.workspace = true readme.workspace = true [dependencies] +paste = { workspace = true } jmt.workspace = true sha2.workspace = true serde.workspace = true diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index 522e7679..05bf381e 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -40,21 +40,6 @@ fn test_insert_and_get(algorithm: &str) { assert!(membership_proof.verify().is_ok()); } -#[test] -fn test_insert_and_get_ed25519() { - test_insert_and_get("ed25519"); -} - -#[test] -fn test_insert_and_get_secp256k1() { - test_insert_and_get("secp256k1"); -} - -#[test] -fn test_insert_and_get_secp256r1() { - test_insert_and_get("secp256r1"); -} - fn test_insert_for_nonexistent_service_fails(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -74,21 +59,6 @@ fn test_insert_for_nonexistent_service_fails(algorithm: &str) { assert!(insertion_result.is_err()); } -#[test] -fn test_insert_for_nonexistent_service_fails_ed25519() { - test_insert_for_nonexistent_service_fails("ed25519"); -} - -#[test] -fn test_insert_for_nonexistent_service_fails_secp256k1() { - test_insert_for_nonexistent_service_fails("secp256k1"); -} - -#[test] -fn test_insert_for_nonexistent_service_fails_secp256r1() { - test_insert_for_nonexistent_service_fails("secp256r1"); -} - fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -119,21 +89,6 @@ fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { assert!(create_account_result.is_err()); } -#[test] -fn test_insert_with_invalid_service_challenge_fails_ed25519() { - test_insert_with_invalid_service_challenge_fails("ed25519"); -} - -#[test] -fn test_insert_with_invalid_service_challenge_fails_secp256k1() { - test_insert_with_invalid_service_challenge_fails("secp256k1"); -} - -#[test] -fn test_insert_with_invalid_service_challenge_fails_secp256r1() { - test_insert_with_invalid_service_challenge_fails("secp256r1"); -} - fn test_insert_duplicate_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -158,21 +113,6 @@ fn test_insert_duplicate_key(algorithm: &str) { assert!(create_acc_with_same_id_result.is_err()); } -#[test] -fn test_insert_duplicate_key_ed25519() { - test_insert_duplicate_key("ed25519"); -} - -#[test] -fn test_insert_duplicate_key_secp256k1() { - test_insert_duplicate_key("secp256k1"); -} - -#[test] -fn test_insert_duplicate_key_secp256r1() { - test_insert_duplicate_key("secp256r1"); -} - fn test_update_existing_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -196,21 +136,6 @@ fn test_update_existing_key(algorithm: &str) { assert!(matches!(get_result, Found(hc, _) if &hc == test_hashchain)); } -#[test] -fn test_update_existing_key_ed25519() { - test_update_existing_key("ed25519"); -} - -#[test] -fn test_update_existing_key_secp256k1() { - test_update_existing_key("secp256k1"); -} - -#[test] -fn test_update_existing_key_secp256r1() { - test_update_existing_key("secp256r1"); -} - fn test_update_non_existing_key(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -228,34 +153,6 @@ fn test_update_non_existing_key(algorithm: &str) { assert!(result.is_err()); } -#[test] -fn test_update_non_existing_key_ed25519() { - test_update_non_existing_key("ed25519"); -} - -#[test] -fn test_update_non_existing_key_secp256k1() { - test_update_non_existing_key("secp256k1"); -} - -#[test] -fn test_update_non_existing_key_secp256r1() { - test_update_non_existing_key("secp256r1"); -} - -#[test] -fn test_get_non_existing_key() { - let tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); - - let result = tree.get(KeyHash::with::("non_existing_id")).unwrap(); - - let NotFound(non_membership_proof) = result else { - panic!("Hashchain found for key while it was expected to be missing"); - }; - - assert!(non_membership_proof.verify().is_ok()); -} - fn test_multiple_inserts_and_updates(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -292,21 +189,6 @@ fn test_multiple_inserts_and_updates(algorithm: &str) { assert!(matches!(get_result2, Found(hc, _) if &hc == test_hashchain_acc2)); } -#[test] -fn test_multiple_inserts_and_updates_ed25519() { - test_multiple_inserts_and_updates("ed25519"); -} - -#[test] -fn test_multiple_inserts_and_updates_secp256k1() { - test_multiple_inserts_and_updates("secp256k1"); -} - -#[test] -fn test_multiple_inserts_and_updates_secp256r1() { - test_multiple_inserts_and_updates("secp256r1"); -} - fn test_interleaved_inserts_and_updates(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -342,21 +224,6 @@ fn test_interleaved_inserts_and_updates(algorithm: &str) { assert_eq!(update_proof.new_root, tree.get_commitment().unwrap()); } -#[test] -fn test_interleaved_inserts_and_updates_ed25519() { - test_interleaved_inserts_and_updates("ed25519"); -} - -#[test] -fn test_interleaved_inserts_and_updates_secp256k1() { - test_interleaved_inserts_and_updates("secp256k1"); -} - -#[test] -fn test_interleaved_inserts_and_updates_secp256r1() { - test_interleaved_inserts_and_updates("secp256r1"); -} - fn test_root_hash_changes(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -374,21 +241,6 @@ fn test_root_hash_changes(algorithm: &str) { assert_ne!(root_before, root_after); } -#[test] -fn test_root_hash_changes_ed25519() { - test_root_hash_changes("ed25519"); -} - -#[test] -fn test_root_hash_changes_secp256k1() { - test_root_hash_changes("secp256k1"); -} - -#[test] -fn test_root_hash_changes_secp256r1() { - test_root_hash_changes("secp256r1"); -} - fn test_batch_writing(algorithm: &str) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -429,17 +281,47 @@ fn test_batch_writing(algorithm: &str) { assert!(matches!(get_result2, Found(hc, _) if &hc == test_hashchain_acc2)); } -#[test] -fn test_batch_writing_ed25519() { - test_batch_writing("ed25519"); +macro_rules! generate_algorithm_tests { + ($test_fn:ident) => { + paste::paste! { + #[test] + fn [<$test_fn _ed25519>]() { + $test_fn("ed25519"); + } + + #[test] + fn [<$test_fn _secp256k1>]() { + $test_fn("secp256k1"); + } + + #[test] + fn [<$test_fn _secp256r1>]() { + $test_fn("secp256r1"); + } + } + }; } -#[test] -fn test_batch_writing_secp256k1() { - test_batch_writing("secp256k1"); -} +generate_algorithm_tests!(test_insert_and_get); +generate_algorithm_tests!(test_insert_for_nonexistent_service_fails); +generate_algorithm_tests!(test_insert_with_invalid_service_challenge_fails); +generate_algorithm_tests!(test_insert_duplicate_key); +generate_algorithm_tests!(test_update_existing_key); +generate_algorithm_tests!(test_update_non_existing_key); +generate_algorithm_tests!(test_multiple_inserts_and_updates); +generate_algorithm_tests!(test_interleaved_inserts_and_updates); +generate_algorithm_tests!(test_root_hash_changes); +generate_algorithm_tests!(test_batch_writing); #[test] -fn test_batch_writing_secp256r1() { - test_batch_writing("secp256r1"); +fn test_get_non_existing_key() { + let tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); + + let result = tree.get(KeyHash::with::("non_existing_id")).unwrap(); + + let NotFound(non_membership_proof) = result else { + panic!("Hashchain found for key while it was expected to be missing"); + }; + + assert!(non_membership_proof.verify().is_ok()); } From 06c3c1437e2d5cf9f596c41a00578908fef21155 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:52:40 +0100 Subject: [PATCH 11/30] feat: apply review from jns-ps Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 18 +- crates/common/src/transaction_builder.rs | 18 +- crates/keys/src/lib.rs | 168 ++++--------------- crates/keys/src/signatures.rs | 23 +-- crates/keys/src/signing_keys.rs | 36 ++-- crates/keys/src/tests.rs | 140 ++++++++++++++++ crates/keys/src/verifying_keys.rs | 24 +-- crates/node_types/prover/src/prover/mod.rs | 6 +- crates/node_types/prover/src/prover/tests.rs | 26 +-- crates/tests/src/lib.rs | 4 +- crates/tree/src/tests.rs | 28 ++-- elf/riscv32im-succinct-zkvm-elf | Bin 1960384 -> 1979124 bytes 12 files changed, 273 insertions(+), 218 deletions(-) create mode 100644 crates/keys/src/tests.rs diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index bb36e3ed..e9417ce5 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -4,14 +4,14 @@ mod node_types; use cfg::{initialize_da_layer, load_config, Cli, Commands}; use clap::Parser; use keystore_rs::{KeyChain, KeyStore, KeyStoreType}; -use prism_keys::{SigningKey, VerifyingKey}; +use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm}; use node_types::NodeType; use prism_lightclient::LightClient; use prism_prover::Prover; use prism_storage::RedisConnection; use std::sync::Arc; - +use std::str::FromStr; #[macro_use] extern crate log; @@ -40,7 +40,7 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let prover_vk = VerifyingKey::from_algorithm_and_bytes( - verifying_key_algorithm, + KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), config.verifying_key.unwrap().as_bytes(), ).map_err(|e| std::io::Error::new( std::io::ErrorKind::InvalidData, format!("invalid prover verifying key: {}", e), @@ -71,7 +71,9 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()) + let signing_key = SigningKey::from_algorithm_and_bytes( + KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + signing_key_chain.as_bytes()) .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; let verifying_key = signing_key.verifying_key(); @@ -121,7 +123,9 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes(verifying_key_algorithm, signing_key_chain.as_bytes()) + let signing_key = SigningKey::from_algorithm_and_bytes( + KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + signing_key_chain.as_bytes()) .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; let prover_vk = config @@ -132,7 +136,9 @@ async fn main() -> std::io::Result<()> { "prover verifying key not found", ) }) - .and_then(|vk| VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, vk.as_bytes()).map_err(|e| { + .and_then(|vk| VerifyingKey::from_algorithm_and_bytes( + KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + vk.as_bytes()).map_err(|e| { std::io::Error::new( std::io::ErrorKind::InvalidData, format!("invalid prover verifying key: {}", e), diff --git a/crates/common/src/transaction_builder.rs b/crates/common/src/transaction_builder.rs index d5062a7e..6628ef61 100644 --- a/crates/common/src/transaction_builder.rs +++ b/crates/common/src/transaction_builder.rs @@ -6,7 +6,7 @@ use crate::{ operation::{ServiceChallenge, ServiceChallengeInput, SignatureBundle}, transaction::Transaction, }; -use prism_keys::{SigningKey, VerifyingKey}; +use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm}; enum PostCommitAction { UpdateStorageOnly, RememberServiceKey(String, SigningKey), @@ -86,10 +86,10 @@ impl TransactionBuilder { pub fn register_service_with_random_keys( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, ) -> UncommittedTransaction { - let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create challenge key"); + let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm.clone()).expect("Failed to create challenge key"); let random_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); self.register_service(id, random_service_challenge_key, random_service_signing_key) } @@ -120,7 +120,7 @@ impl TransactionBuilder { pub fn create_account_with_random_key_signed( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, service_id: &str, ) -> UncommittedTransaction { @@ -143,7 +143,7 @@ impl TransactionBuilder { pub fn create_account_with_random_key( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, service_id: &str, service_signing_key: &SigningKey, @@ -182,7 +182,7 @@ impl TransactionBuilder { } } - pub fn add_random_key_verified_with_root(&mut self, algorithm: &str, id: &str) -> UncommittedTransaction { + pub fn add_random_key_verified_with_root(&mut self, algorithm: KeyAlgorithm, id: &str) -> UncommittedTransaction { let Some(account_signing_key) = self.account_keys.get(id).cloned() else { panic!("No existing account key for {}", id) }; @@ -192,7 +192,7 @@ impl TransactionBuilder { pub fn add_random_key( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, signing_key: &SigningKey, key_idx: usize, @@ -269,7 +269,7 @@ impl TransactionBuilder { pub fn add_randomly_signed_data( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, value: Vec, signing_key: &SigningKey, @@ -281,7 +281,7 @@ impl TransactionBuilder { pub fn add_randomly_signed_data_verified_with_root( &mut self, - algorithm: &str, + algorithm: KeyAlgorithm, id: &str, value: Vec, ) -> UncommittedTransaction { diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index 0d402e2e..998202c7 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -6,142 +6,42 @@ pub use signatures::*; pub use signing_keys::*; pub use verifying_keys::*; -#[cfg(test)] -mod tests { - use super::*; - use ed25519_consensus::SigningKey as Ed25519SigningKey; - use prism_serde::base64::ToBase64; - use rand::rngs::OsRng; - use secp256k1::SecretKey as Secp256k1SigningKey; - use p256::ecdsa::SigningKey as Secp256r1SigningKey; - #[test] - fn test_reparsed_verifying_keys_are_equal_to_original() { - let verifying_key_ed25519 = SigningKey::new_ed25519().verifying_key(); - let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( - verifying_key_ed25519.algorithm(), - &verifying_key_ed25519.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_verifying_key, verifying_key_ed25519); - - let verifying_key_secp256k1 = SigningKey::new_secp256k1().verifying_key(); - let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( - verifying_key_secp256k1.algorithm(), - &verifying_key_secp256k1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_verifying_key, verifying_key_secp256k1); - - let verifying_key_secp256r1 = SigningKey::new_secp256r1().verifying_key(); - let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( - verifying_key_secp256r1.algorithm(), - &verifying_key_secp256r1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_verifying_key, verifying_key_secp256r1); - } - - #[test] - fn test_reparsed_signing_keys_are_equal_to_original() { - let signing_key_ed25519 = SigningKey::new_ed25519(); - let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( - signing_key_ed25519.algorithm(), - &signing_key_ed25519.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signing_key, signing_key_ed25519); - - let signing_key_secp256k1 = SigningKey::new_secp256k1(); - let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( - signing_key_secp256k1.algorithm(), - &signing_key_secp256k1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signing_key, signing_key_secp256k1); - - let signing_key_secp256r1 = SigningKey::new_secp256r1(); - let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( - signing_key_secp256r1.algorithm(), - &signing_key_secp256r1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signing_key, signing_key_secp256r1); - } - - #[test] - fn test_reparsed_signatures_are_equal_to_original() { - let message = b"test message"; - - let signature_ed25519 = SigningKey::new_ed25519().sign(message); - let re_parsed_signature = Signature::from_algorithm_and_bytes( - signature_ed25519.algorithm(), - &signature_ed25519.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signature, signature_ed25519); - - let signature_secp256k1 = SigningKey::new_secp256k1().sign(message); - let re_parsed_signature = Signature::from_algorithm_and_bytes( - signature_secp256k1.algorithm(), - &signature_secp256k1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signature, signature_secp256k1); - - let signature_secp256r1 = SigningKey::new_secp256r1().sign(message); - let re_parsed_signature = Signature::from_algorithm_and_bytes( - signature_secp256r1.algorithm(), - &signature_secp256r1.to_bytes(), - ) - .unwrap(); - assert_eq!(re_parsed_signature, signature_secp256r1); - } - - #[test] - fn test_verifying_key_from_string_ed25519() { - let original_key: VerifyingKey = - SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng))).into(); - let encoded = original_key.to_bytes().to_base64(); - - let result = VerifyingKey::try_from(encoded); - assert!(result.is_ok()); - - let decoded_key = result.unwrap(); - assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); - } - - #[test] - fn test_verifying_key_from_string_secp256k1() { - let original_key: VerifyingKey = - SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng)).into(); - let encoded = original_key.to_bytes().to_base64(); - - let result = VerifyingKey::try_from(encoded); - assert!(result.is_ok()); - - let decoded_key = result.unwrap(); - assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); - } - - #[test] - fn test_verifying_key_from_string_secp256r1() { - let original_key: VerifyingKey = - SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)).into(); - let encoded = original_key.to_bytes().to_base64(); - - let result = VerifyingKey::try_from(encoded); - assert!(result.is_ok()); +use std::str::FromStr; +use std::fmt; +use std::clone::Clone; + +#[derive(Debug, Clone, Copy)] +pub enum KeyAlgorithm { + Ed25519, + Secp256k1, + Secp256r1, + Placeholder, +} - let decoded_key = result.unwrap(); - assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); +impl FromStr for KeyAlgorithm { + type Err = anyhow::Error; + + fn from_str(input: &str) -> Result { + match input.to_lowercase().as_str() { + "ed25519" => Ok(KeyAlgorithm::Ed25519), + "secp256k1" => Ok(KeyAlgorithm::Secp256k1), + "secp256r1" => Ok(KeyAlgorithm::Secp256r1), + "placeholder" => Ok(KeyAlgorithm::Placeholder), + _ => Err(anyhow::anyhow!("Invalid algorithm: {}", input)), + } } +} - #[test] - fn test_verifying_key_from_string_invalid_length() { - let invalid_bytes: [u8; 31] = [1; 31]; - let encoded = invalid_bytes.to_base64(); - - let result = VerifyingKey::try_from(encoded); - assert!(result.is_err()); +impl fmt::Display for KeyAlgorithm { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + KeyAlgorithm::Ed25519 => write!(f, "Ed25519"), + KeyAlgorithm::Secp256k1 => write!(f, "Secp256k1"), + KeyAlgorithm::Secp256r1 => write!(f, "Secp256r1"), + KeyAlgorithm::Placeholder => write!(f, "Placeholder"), + } } } + +#[cfg(test)] +mod tests; diff --git a/crates/keys/src/signatures.rs b/crates/keys/src/signatures.rs index 4c0812a7..3403051a 100644 --- a/crates/keys/src/signatures.rs +++ b/crates/keys/src/signatures.rs @@ -3,9 +3,10 @@ use ed25519_consensus::Signature as Ed25519Signature; use p256::ecdsa::Signature as Secp256r1Signature; use secp256k1::ecdsa::Signature as Secp256k1Signature; +use crate::KeyAlgorithm; use prism_serde::CryptoPayload; use serde::{Deserialize, Serialize}; -use std::{self}; +use std::{self, str::FromStr}; #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Default)] #[serde(try_from = "CryptoPayload", into = "CryptoPayload")] @@ -27,27 +28,27 @@ impl Signature { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: KeyAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => { + KeyAlgorithm::Ed25519 => { Ed25519Signature::try_from(bytes).map(Signature::Ed25519).map_err(|e| e.into()) } - "secp256k1" => { + KeyAlgorithm::Secp256k1 => { Secp256k1Signature::from_der(bytes).map(Signature::Secp256k1).map_err(|e| e.into()) } - "secp256r1" => { + KeyAlgorithm::Secp256r1 => { Secp256r1Signature::from_der(bytes).map(Signature::Secp256r1).map_err(|e| e.into()) } _ => bail!("Unexpected algorithm for Signature: {}", algorithm), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> KeyAlgorithm { match self { - Signature::Ed25519(_) => "ed25519", - Signature::Secp256k1(_) => "secp256k1", - Signature::Secp256r1(_) => "secp256r1", - Signature::Placeholder => "placeholder", + Signature::Ed25519(_) => KeyAlgorithm::Ed25519, + Signature::Secp256k1(_) => KeyAlgorithm::Secp256k1, + Signature::Secp256r1(_) => KeyAlgorithm::Secp256r1, + Signature::Placeholder => KeyAlgorithm::Placeholder, } } } @@ -56,7 +57,7 @@ impl TryFrom for Signature { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - Signature::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + Signature::from_algorithm_and_bytes(KeyAlgorithm::from_str(&value.algorithm)?, &value.bytes) } } diff --git a/crates/keys/src/signing_keys.rs b/crates/keys/src/signing_keys.rs index 7b3f511b..75c0e7e0 100644 --- a/crates/keys/src/signing_keys.rs +++ b/crates/keys/src/signing_keys.rs @@ -8,8 +8,9 @@ use secp256k1::{Message as Secp256k1Message, SecretKey as Secp256k1SigningKey, S use sha2::Digest as _; -use crate::{Signature, VerifyingKey}; +use crate::{Signature, VerifyingKey, KeyAlgorithm}; use prism_serde::CryptoPayload; +use std::str::FromStr; #[derive(Clone, Debug)] pub enum SigningKey { @@ -31,12 +32,12 @@ impl SigningKey { SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)) } - pub fn new_with_algorithm(algorithm: &str) -> Result { + pub fn new_with_algorithm(algorithm: KeyAlgorithm) -> Result { match algorithm { - "ed25519" => Ok(SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng)))), - "secp256k1" => Ok(SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng))), - "secp256r1" => Ok(SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng))), - _ => bail!("Unexpected key algorithm for SigningKey: '{}'. Expected one of: ed25519, secp256k1, secp256r1", algorithm), + KeyAlgorithm::Ed25519 => Ok(SigningKey::new_ed25519()), + KeyAlgorithm::Secp256k1 => Ok(SigningKey::new_secp256k1()), + KeyAlgorithm::Secp256r1 => Ok(SigningKey::new_secp256r1()), + _ => bail!("Unexpected key algorithm for SigningKey: '{:?}'", algorithm), } } @@ -52,26 +53,26 @@ impl SigningKey { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: KeyAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => Ed25519SigningKey::try_from(bytes) + KeyAlgorithm::Ed25519 => Ed25519SigningKey::try_from(bytes) .map(|sk| SigningKey::Ed25519(Box::new(sk))) .map_err(|e| e.into()), - "secp256k1" => Secp256k1SigningKey::from_slice(bytes) + KeyAlgorithm::Secp256k1 => Secp256k1SigningKey::from_slice(bytes) .map(SigningKey::Secp256k1) .map_err(|e| e.into()), - "secp256r1" => Secp256r1SigningKey::from_slice(bytes) + KeyAlgorithm::Secp256r1 => Secp256r1SigningKey::from_slice(bytes) .map(SigningKey::Secp256r1) .map_err(|e| e.into()), - _ => bail!("Unexpected algorithm for SigningKey: {}", algorithm), + _ => bail!("Unexpected algorithm for SigningKey: {:?}", algorithm), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> KeyAlgorithm { match self { - SigningKey::Ed25519(_) => "ed25519", - SigningKey::Secp256k1(_) => "secp256k1", - SigningKey::Secp256r1(_) => "secp256r1", + SigningKey::Ed25519(_) => KeyAlgorithm::Ed25519, + SigningKey::Secp256k1(_) => KeyAlgorithm::Secp256k1, + SigningKey::Secp256r1(_) => KeyAlgorithm::Secp256r1, } } @@ -109,7 +110,10 @@ impl TryFrom for SigningKey { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - SigningKey::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + SigningKey::from_algorithm_and_bytes( + KeyAlgorithm::from_str(&value.algorithm).map_err(|_| anyhow::anyhow!("Invalid algorithm: {}", value.algorithm))?, + &value.bytes, + ) } } diff --git a/crates/keys/src/tests.rs b/crates/keys/src/tests.rs new file mode 100644 index 00000000..54bbade2 --- /dev/null +++ b/crates/keys/src/tests.rs @@ -0,0 +1,140 @@ +#[cfg(test)] +mod tests { + use crate::{SigningKey, VerifyingKey}; + use ed25519_consensus::SigningKey as Ed25519SigningKey; + use prism_serde::base64::ToBase64; + use rand::rngs::OsRng; + use secp256k1::SecretKey as Secp256k1SigningKey; + use p256::ecdsa::SigningKey as Secp256r1SigningKey; + use crate::Signature; + #[test] + fn test_reparsed_verifying_keys_are_equal_to_original() { + let verifying_key_ed25519 = SigningKey::new_ed25519().verifying_key(); + let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( + verifying_key_ed25519.algorithm(), + &verifying_key_ed25519.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_verifying_key, verifying_key_ed25519); + + let verifying_key_secp256k1 = SigningKey::new_secp256k1().verifying_key(); + let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( + verifying_key_secp256k1.algorithm(), + &verifying_key_secp256k1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_verifying_key, verifying_key_secp256k1); + + let verifying_key_secp256r1 = SigningKey::new_secp256r1().verifying_key(); + let re_parsed_verifying_key = VerifyingKey::from_algorithm_and_bytes( + verifying_key_secp256r1.algorithm(), + &verifying_key_secp256r1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_verifying_key, verifying_key_secp256r1); + } + + #[test] + fn test_reparsed_signing_keys_are_equal_to_original() { + let signing_key_ed25519 = SigningKey::new_ed25519(); + let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( + signing_key_ed25519.algorithm(), + &signing_key_ed25519.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signing_key, signing_key_ed25519); + + let signing_key_secp256k1 = SigningKey::new_secp256k1(); + let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( + signing_key_secp256k1.algorithm(), + &signing_key_secp256k1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signing_key, signing_key_secp256k1); + + let signing_key_secp256r1 = SigningKey::new_secp256r1(); + let re_parsed_signing_key = SigningKey::from_algorithm_and_bytes( + signing_key_secp256r1.algorithm(), + &signing_key_secp256r1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signing_key, signing_key_secp256r1); + } + + #[test] + fn test_reparsed_signatures_are_equal_to_original() { + let message = b"test message"; + + let signature_ed25519 = SigningKey::new_ed25519().sign(message); + let re_parsed_signature = Signature::from_algorithm_and_bytes( + signature_ed25519.algorithm(), + &signature_ed25519.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signature, signature_ed25519); + + let signature_secp256k1 = SigningKey::new_secp256k1().sign(message); + let re_parsed_signature = Signature::from_algorithm_and_bytes( + signature_secp256k1.algorithm(), + &signature_secp256k1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signature, signature_secp256k1); + + let signature_secp256r1 = SigningKey::new_secp256r1().sign(message); + let re_parsed_signature = Signature::from_algorithm_and_bytes( + signature_secp256r1.algorithm(), + &signature_secp256r1.to_bytes(), + ) + .unwrap(); + assert_eq!(re_parsed_signature, signature_secp256r1); + } + + #[test] + fn test_verifying_key_from_string_ed25519() { + let original_key: VerifyingKey = + SigningKey::Ed25519(Box::new(Ed25519SigningKey::new(OsRng))).into(); + let encoded = original_key.to_bytes().to_base64(); + + let result = VerifyingKey::try_from(encoded); + assert!(result.is_ok()); + + let decoded_key = result.unwrap(); + assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); + } + + #[test] + fn test_verifying_key_from_string_secp256k1() { + let original_key: VerifyingKey = + SigningKey::Secp256k1(Secp256k1SigningKey::new(&mut OsRng)).into(); + let encoded = original_key.to_bytes().to_base64(); + + let result = VerifyingKey::try_from(encoded); + assert!(result.is_ok()); + + let decoded_key = result.unwrap(); + assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); + } + + #[test] + fn test_verifying_key_from_string_secp256r1() { + let original_key: VerifyingKey = + SigningKey::Secp256r1(Secp256r1SigningKey::random(&mut OsRng)).into(); + let encoded = original_key.to_bytes().to_base64(); + + let result = VerifyingKey::try_from(encoded); + assert!(result.is_ok()); + + let decoded_key = result.unwrap(); + assert_eq!(decoded_key.to_bytes(), original_key.to_bytes()); + } + + #[test] + fn test_verifying_key_from_string_invalid_length() { + let invalid_bytes: [u8; 31] = [1; 31]; + let encoded = invalid_bytes.to_base64(); + + let result = VerifyingKey::try_from(encoded); + assert!(result.is_err()); + } +} diff --git a/crates/keys/src/verifying_keys.rs b/crates/keys/src/verifying_keys.rs index 5b2a92f2..1181586e 100644 --- a/crates/keys/src/verifying_keys.rs +++ b/crates/keys/src/verifying_keys.rs @@ -14,9 +14,10 @@ use sha2::Digest as _; use std::{ self, hash::{Hash, Hasher}, + str::FromStr, }; -use crate::{Signature, SigningKey}; +use crate::{Signature, SigningKey, KeyAlgorithm}; use prism_serde::{ base64::{FromBase64, ToBase64}, CryptoPayload, @@ -63,26 +64,26 @@ impl VerifyingKey { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: KeyAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => Ed25519VerifyingKey::try_from(bytes) + KeyAlgorithm::Ed25519 => Ed25519VerifyingKey::try_from(bytes) .map(VerifyingKey::Ed25519) .map_err(|e| e.into()), - "secp256k1" => Secp256k1VerifyingKey::from_slice(bytes) + KeyAlgorithm::Secp256k1 => Secp256k1VerifyingKey::from_slice(bytes) .map(VerifyingKey::Secp256k1) .map_err(|e| e.into()), - "secp256r1" => Secp256r1VerifyingKey::from_sec1_bytes(bytes) + KeyAlgorithm::Secp256r1 => Secp256r1VerifyingKey::from_sec1_bytes(bytes) .map(VerifyingKey::Secp256r1) .map_err(|e| e.into()), _ => bail!("Unexpected algorithm for VerifyingKey: {}", algorithm), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> KeyAlgorithm { match self { - VerifyingKey::Ed25519(_) => "ed25519", - VerifyingKey::Secp256k1(_) => "secp256k1", - VerifyingKey::Secp256r1(_) => "secp256r1", + VerifyingKey::Ed25519(_) => KeyAlgorithm::Ed25519, + VerifyingKey::Secp256k1(_) => KeyAlgorithm::Secp256k1, + VerifyingKey::Secp256r1(_) => KeyAlgorithm::Secp256r1, } } @@ -126,7 +127,10 @@ impl TryFrom for VerifyingKey { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - VerifyingKey::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + VerifyingKey::from_algorithm_and_bytes( + KeyAlgorithm::from_str(&value.algorithm).map_err(|_| anyhow::anyhow!("Invalid algorithm: {}", value.algorithm))?, + &value.bytes, + ) } } diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index c45f41e2..5ad6c87f 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -1,5 +1,5 @@ use anyhow::{anyhow, bail, Context, Result}; -use prism_keys::{SigningKey, VerifyingKey}; +use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm}; use jmt::KeyHash; use prism_common::{digest::Digest, hashchain::Hashchain, transaction::Transaction}; use prism_errors::DataAvailabilityError; @@ -64,9 +64,9 @@ impl Default for Config { } } -#[cfg(test)] +#[allow(dead_code)] impl Config { - fn default_with_key_algorithm(algorithm: &str) -> Self { + fn default_with_key_algorithm(algorithm: KeyAlgorithm) -> Self { let signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); Config { diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 23621312..f0c8a65f 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -1,6 +1,6 @@ use super::*; use prism_common::transaction_builder::TransactionBuilder; -use prism_keys::{SigningKey, VerifyingKey}; +use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm}; use std::{self, sync::Arc, time::Duration}; use tokio::spawn; @@ -8,7 +8,7 @@ use prism_da::memory::InMemoryDataAvailabilityLayer; use prism_storage::inmemory::InMemoryDatabase; // Helper function to create a test prover instance -async fn create_test_prover(algorithm: &str) -> Arc { +async fn create_test_prover(algorithm: KeyAlgorithm) -> Arc { let (da_layer, _rx, _brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); @@ -16,7 +16,7 @@ async fn create_test_prover(algorithm: &str) -> Arc { Arc::new(Prover::new(db.clone(), da_layer, &cfg).unwrap()) } -fn create_mock_transactions(algorithm: &str, service_id: String) -> Vec { +fn create_mock_transactions(algorithm: KeyAlgorithm, service_id: String) -> Vec { let mut transaction_builder = TransactionBuilder::new(); vec![ @@ -31,7 +31,7 @@ fn create_mock_transactions(algorithm: &str, service_id: String) -> Vec> = Arc::new(Box::new(InMemoryDatabase::new())); @@ -171,7 +171,7 @@ async fn test_restart_sync_from_scratch(algorithm: &str) { } } -async fn test_load_persisted_state(algorithm: &str) { +async fn test_load_persisted_state(algorithm: KeyAlgorithm) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); @@ -212,17 +212,17 @@ macro_rules! generate_algorithm_tests { paste::paste! { #[tokio::test] async fn [<$test_fn _ed25519>]() { - $test_fn("ed25519").await; + $test_fn(KeyAlgorithm::Ed25519).await; } #[tokio::test] async fn [<$test_fn _secp256k1>]() { - $test_fn("secp256k1").await; + $test_fn(KeyAlgorithm::Secp256k1).await; } #[tokio::test] async fn [<$test_fn _secp256r1>]() { - $test_fn("secp256r1").await; + $test_fn(KeyAlgorithm::Secp256r1).await; } } }; diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index b9d60eee..f8507f66 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -11,7 +11,7 @@ use prism_da::{ }; use prism_lightclient::LightClient; use prism_prover::Prover; -use prism_keys::SigningKey; +use prism_keys::{SigningKey, KeyAlgorithm}; use prism_storage::{rocksdb::RocksDBConnection, Database}; use rand::{rngs::StdRng, Rng, SeedableRng}; use std::sync::Arc; @@ -42,7 +42,7 @@ async fn test_light_client_prover_talking() -> Result<()> { ..CelestiaConfig::default() }; - let algorithm = "secp256r1"; + let algorithm = KeyAlgorithm::Secp256r1; let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index 05bf381e..72d8dc7e 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -2,14 +2,14 @@ use std::sync::Arc; use jmt::{mock::MockTreeStore, KeyHash}; use prism_common::transaction_builder::TransactionBuilder; -use prism_keys::SigningKey; +use prism_keys::{SigningKey, KeyAlgorithm}; use crate::{ hasher::TreeHasher, key_directory_tree::KeyDirectoryTree, proofs::Proof, snarkable_tree::SnarkableTree, HashchainResponse::*, }; -fn test_insert_and_get(algorithm: &str) { +fn test_insert_and_get(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -40,7 +40,7 @@ fn test_insert_and_get(algorithm: &str) { assert!(membership_proof.verify().is_ok()); } -fn test_insert_for_nonexistent_service_fails(algorithm: &str) { +fn test_insert_for_nonexistent_service_fails(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -59,7 +59,7 @@ fn test_insert_for_nonexistent_service_fails(algorithm: &str) { assert!(insertion_result.is_err()); } -fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { +fn test_insert_with_invalid_service_challenge_fails(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -89,7 +89,7 @@ fn test_insert_with_invalid_service_challenge_fails(algorithm: &str) { assert!(create_account_result.is_err()); } -fn test_insert_duplicate_key(algorithm: &str) { +fn test_insert_duplicate_key(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -113,7 +113,7 @@ fn test_insert_duplicate_key(algorithm: &str) { assert!(create_acc_with_same_id_result.is_err()); } -fn test_update_existing_key(algorithm: &str) { +fn test_update_existing_key(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -136,7 +136,7 @@ fn test_update_existing_key(algorithm: &str) { assert!(matches!(get_result, Found(hc, _) if &hc == test_hashchain)); } -fn test_update_non_existing_key(algorithm: &str) { +fn test_update_non_existing_key(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -153,7 +153,7 @@ fn test_update_non_existing_key(algorithm: &str) { assert!(result.is_err()); } -fn test_multiple_inserts_and_updates(algorithm: &str) { +fn test_multiple_inserts_and_updates(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -189,7 +189,7 @@ fn test_multiple_inserts_and_updates(algorithm: &str) { assert!(matches!(get_result2, Found(hc, _) if &hc == test_hashchain_acc2)); } -fn test_interleaved_inserts_and_updates(algorithm: &str) { +fn test_interleaved_inserts_and_updates(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -224,7 +224,7 @@ fn test_interleaved_inserts_and_updates(algorithm: &str) { assert_eq!(update_proof.new_root, tree.get_commitment().unwrap()); } -fn test_root_hash_changes(algorithm: &str) { +fn test_root_hash_changes(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -241,7 +241,7 @@ fn test_root_hash_changes(algorithm: &str) { assert_ne!(root_before, root_after); } -fn test_batch_writing(algorithm: &str) { +fn test_batch_writing(algorithm: KeyAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); @@ -286,17 +286,17 @@ macro_rules! generate_algorithm_tests { paste::paste! { #[test] fn [<$test_fn _ed25519>]() { - $test_fn("ed25519"); + $test_fn(KeyAlgorithm::Ed25519); } #[test] fn [<$test_fn _secp256k1>]() { - $test_fn("secp256k1"); + $test_fn(KeyAlgorithm::Secp256k1); } #[test] fn [<$test_fn _secp256r1>]() { - $test_fn("secp256r1"); + $test_fn(KeyAlgorithm::Secp256r1); } } }; diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index 922729e0f5c328a28125f9049b8139a231c35810..ed3941d3edaf3b8afaa7849c16052be88ec09e65 100755 GIT binary patch delta 251666 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%0DHY|5k@4W@r)J)qu<0qpGg#u|6oG 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󼂋u( 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 From 313ff7e065e4c772bc18c33b1034ce0eda98398f Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:07:32 +0100 Subject: [PATCH 12/30] feat: build Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- elf/riscv32im-succinct-zkvm-elf | Bin 1979124 -> 1952284 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index ed3941d3edaf3b8afaa7849c16052be88ec09e65..34060ce3004305c2594c4692615549eef856902d 100755 GIT binary patch delta 240476 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 z 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 delta 260373 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

NfA~b-2 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 From fec1480ec6f4c95f45acee6ea755d9ba22c46b51 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:21:50 +0100 Subject: [PATCH 13/30] feat: apply clippy changes Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 2 +- crates/common/src/transaction_builder.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index e9417ce5..1654ce08 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -88,7 +88,7 @@ async fn main() -> std::io::Result<()> { info!( "prover verifying key: {}", - VerifyingKey::from(prover_cfg.verifying_key.clone()) + prover_cfg.verifying_key.clone() ); Arc::new( diff --git a/crates/common/src/transaction_builder.rs b/crates/common/src/transaction_builder.rs index f95e5580..26650a24 100644 --- a/crates/common/src/transaction_builder.rs +++ b/crates/common/src/transaction_builder.rs @@ -85,7 +85,7 @@ impl TransactionBuilder { algorithm: KeyAlgorithm, id: &str, ) -> UncommittedTransaction { - let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm.clone()).expect("Failed to create challenge key"); + let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create challenge key"); let random_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); self.register_service(id, random_service_challenge_key, random_service_signing_key) } From a02f2670a0f9898023fa58ae5c79773a514a3da2 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:28:00 +0100 Subject: [PATCH 14/30] fix: unit tests Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/node_types/prover/src/prover/tests.rs | 2 +- crates/tree/src/tests.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 910983b0..6e71f18c 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -100,7 +100,7 @@ async fn test_execute_block_with_invalid_tx(algorithm: KeyAlgorithm) { tx_builder.revoke_key_verified_with_root("account_id", new_key_vk).commit(), // and adding in same block. // both of these transactions are valid individually, but when processed together it will fail. - tx_builder.add_random_key(algorithm, "account_id", &new_key_1).commit(), + tx_builder.add_random_key(algorithm, "account_id", &new_key_1).build(), ]; let proofs = prover.execute_block(transactions).await.unwrap(); diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index 0b5a3cc6..e1cd1ba0 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -146,7 +146,7 @@ fn test_update_non_existing_key(algorithm: KeyAlgorithm) { // This is a signing key not known to the storage yet let random_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create random signing key"); // This transaction shall be invalid, because it is signed with an unknown key - let invalid_key_tx = tx_builder.add_random_key(algorithm, "acc_1", &random_signing_key).commit(); + let invalid_key_tx = tx_builder.add_random_key(algorithm, "acc_1", &random_signing_key).build(); let result = tree.process_transaction(invalid_key_tx); assert!(result.is_err()); From 706bb767800847e415aa71955130c95908018172 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:41:24 +0100 Subject: [PATCH 15/30] feat: apply coderabbit review 3rd round Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 28 +++++++++++++++----- crates/keys/src/lib.rs | 4 ++- crates/node_types/prover/src/prover/mod.rs | 18 +++++++++---- crates/node_types/prover/src/prover/tests.rs | 6 ++--- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 1654ce08..b011e71c 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -4,7 +4,7 @@ mod node_types; use cfg::{initialize_da_layer, load_config, Cli, Commands}; use clap::Parser; use keystore_rs::{KeyChain, KeyStore, KeyStoreType}; -use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm}; +use prism_keys::{SigningKey, VerifyingKey, KeyAlgorithm, SUPPORTED_ALGORITHMS}; use node_types::NodeType; use prism_lightclient::LightClient; @@ -40,7 +40,11 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let prover_vk = VerifyingKey::from_algorithm_and_bytes( - KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + KeyAlgorithm::from_str(verifying_key_algorithm) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Failed to create verifying key: {}", e) + ))?, config.verifying_key.unwrap().as_bytes(), ).map_err(|e| std::io::Error::new( std::io::ErrorKind::InvalidData, format!("invalid prover verifying key: {}", e), @@ -72,7 +76,11 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let signing_key = SigningKey::from_algorithm_and_bytes( - KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + KeyAlgorithm::from_str(verifying_key_algorithm) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Failed to create verifying key: {}", e) + ))?, signing_key_chain.as_bytes()) .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; let verifying_key = signing_key.verifying_key(); @@ -124,7 +132,11 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; let signing_key = SigningKey::from_algorithm_and_bytes( - KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + KeyAlgorithm::from_str(verifying_key_algorithm) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Failed to create verifying key: {}", e) + ))?, signing_key_chain.as_bytes()) .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {}", e)))?; @@ -137,7 +149,11 @@ async fn main() -> std::io::Result<()> { ) }) .and_then(|vk| VerifyingKey::from_algorithm_and_bytes( - KeyAlgorithm::from_str(verifying_key_algorithm).expect("Failed to create verifying key"), + KeyAlgorithm::from_str(verifying_key_algorithm) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Failed to create verifying key: {}", e) + ))?, vk.as_bytes()).map_err(|e| { std::io::Error::new( std::io::ErrorKind::InvalidData, @@ -173,7 +189,7 @@ fn validate_algorithm(algorithm: &str) -> Result<&str, std::io::Error> { return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); } - if !["ed25519", "secp256k1", "secp256r1"].contains(&algorithm) { + if !SUPPORTED_ALGORITHMS.contains(&KeyAlgorithm::from_str(algorithm).unwrap()) { return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); } diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index 998202c7..f9c90980 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -10,7 +10,7 @@ use std::str::FromStr; use std::fmt; use std::clone::Clone; -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, PartialEq)] pub enum KeyAlgorithm { Ed25519, Secp256k1, @@ -18,6 +18,8 @@ pub enum KeyAlgorithm { Placeholder, } +pub const SUPPORTED_ALGORITHMS: &[KeyAlgorithm] = &[KeyAlgorithm::Ed25519, KeyAlgorithm::Secp256k1, KeyAlgorithm::Secp256r1]; + impl FromStr for KeyAlgorithm { type Err = anyhow::Error; diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index 6d79110f..160d3e56 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -66,17 +66,25 @@ impl Default for Config { #[allow(dead_code)] impl Config { - fn default_with_key_algorithm(algorithm: KeyAlgorithm) -> Self { - let signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); - - Config { + /// Creates a new Config instance with the specified key algorithm. + /// + /// # Arguments + /// * `algorithm` - The key algorithm to use for signing and verification + /// + /// # Returns + /// A Result containing the Config or an error if key creation fails + fn default_with_key_algorithm(algorithm: KeyAlgorithm) -> Result { + let signing_key = SigningKey::new_with_algorithm(algorithm) + .context("Failed to create signing key")?; + + Ok(Config { prover: true, batcher: true, webserver: WebServerConfig::default(), signing_key: signing_key.clone(), verifying_key: signing_key.verifying_key(), start_height: 1, - } + }) } } diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 6e71f18c..5fcd5ff6 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -12,7 +12,7 @@ async fn create_test_prover(algorithm: KeyAlgorithm) -> Arc { let (da_layer, _rx, _brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default_with_key_algorithm(algorithm); + let cfg = Config::default_with_key_algorithm(algorithm).unwrap(); Arc::new(Prover::new(db.clone(), da_layer, &cfg).unwrap()) } @@ -132,7 +132,7 @@ async fn test_restart_sync_from_scratch(algorithm: KeyAlgorithm) { let da_layer = Arc::new(da_layer); let db1: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); let db2: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default_with_key_algorithm(algorithm); + let cfg = Config::default_with_key_algorithm(algorithm).unwrap(); let prover = Arc::new(Prover::new(db1.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover.clone(); @@ -174,7 +174,7 @@ async fn test_load_persisted_state(algorithm: KeyAlgorithm) { let (da_layer, _rx, mut brx) = InMemoryDataAvailabilityLayer::new(1); let da_layer = Arc::new(da_layer); let db: Arc> = Arc::new(Box::new(InMemoryDatabase::new())); - let cfg = Config::default_with_key_algorithm(algorithm); + let cfg = Config::default_with_key_algorithm(algorithm).unwrap(); let prover = Arc::new(Prover::new(db.clone(), da_layer.clone(), &cfg).unwrap()); let runner = prover.clone(); From 4fca18a544389bc0bead4b39a6d4c4a809d7c99a Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 16:18:16 +0100 Subject: [PATCH 16/30] fix: funding Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- ci/run-validator.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/run-validator.sh b/ci/run-validator.sh index 53775965..234f8b5d 100755 --- a/ci/run-validator.sh +++ b/ci/run-validator.sh @@ -99,7 +99,8 @@ provision_light_nodes() { "$NODE_NAME" \ "$light_address" \ "$BRIDGE_COINS" \ - --fees 21000utia + --fees 21000utia \ + --broadcast-mode block done echo "Provisioning finished." @@ -160,7 +161,8 @@ provision_bridge_nodes() { "$NODE_NAME" \ "$bridge_address" \ "$BRIDGE_COINS" \ - --fees 21000utia + --fees 21000utia \ + --broadcast-mode block done echo "Provisioning finished." From 51a4efd5f4fa56a4c7b4369527ef79697df6bd40 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 19 Dec 2024 14:40:03 +0100 Subject: [PATCH 17/30] refactor(keys): algorithm as enum --- crates/keys/src/algorithm.rs | 9 +++++++++ crates/keys/src/lib.rs | 3 +++ crates/keys/src/payload.rs | 11 +++++++++++ crates/keys/src/signatures.rs | 28 +++++++++++++-------------- crates/keys/src/signing_keys.rs | 26 ++++++++++++------------- crates/keys/src/verifying_keys.rs | 32 ++++++++++++++----------------- crates/serde/src/lib.rs | 9 --------- 7 files changed, 63 insertions(+), 55 deletions(-) create mode 100644 crates/keys/src/algorithm.rs create mode 100644 crates/keys/src/payload.rs diff --git a/crates/keys/src/algorithm.rs b/crates/keys/src/algorithm.rs new file mode 100644 index 00000000..cf188749 --- /dev/null +++ b/crates/keys/src/algorithm.rs @@ -0,0 +1,9 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum CryptoAlgorithm { + Ed25519, + Secp256k1, + Secp256r1, +} diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index 80ce882f..cbae9f83 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -1,7 +1,10 @@ +mod algorithm; +mod payload; mod signatures; mod signing_keys; mod verifying_keys; +pub use algorithm::*; pub use signatures::*; pub use signing_keys::*; pub use verifying_keys::*; diff --git a/crates/keys/src/payload.rs b/crates/keys/src/payload.rs new file mode 100644 index 00000000..7b17e5b0 --- /dev/null +++ b/crates/keys/src/payload.rs @@ -0,0 +1,11 @@ +use prism_serde::raw_or_b64; +use serde::{Deserialize, Serialize}; + +use crate::CryptoAlgorithm; + +#[derive(Serialize, Deserialize)] +pub struct CryptoPayload { + pub algorithm: CryptoAlgorithm, + #[serde(with = "raw_or_b64")] + pub bytes: Vec, +} diff --git a/crates/keys/src/signatures.rs b/crates/keys/src/signatures.rs index 54ce3fc4..8b62191c 100644 --- a/crates/keys/src/signatures.rs +++ b/crates/keys/src/signatures.rs @@ -1,12 +1,13 @@ -use anyhow::{bail, Result}; +use anyhow::Result; use ed25519_consensus::Signature as Ed25519Signature; use p256::ecdsa::Signature as Secp256r1Signature; use secp256k1::ecdsa::Signature as Secp256k1Signature; -use prism_serde::CryptoPayload; use serde::{Deserialize, Serialize}; use std::{self}; +use crate::{payload::CryptoPayload, CryptoAlgorithm}; + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Default)] #[serde(try_from = "CryptoPayload", into = "CryptoPayload")] pub enum Signature { @@ -27,27 +28,26 @@ impl Signature { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: CryptoAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => { + CryptoAlgorithm::Ed25519 => { Ed25519Signature::try_from(bytes).map(Signature::Ed25519).map_err(|e| e.into()) } - "secp256k1" => { + CryptoAlgorithm::Secp256k1 => { Secp256k1Signature::from_der(bytes).map(Signature::Secp256k1).map_err(|e| e.into()) } - "secp256r1" => { + CryptoAlgorithm::Secp256r1 => { Secp256r1Signature::from_der(bytes).map(Signature::Secp256r1).map_err(|e| e.into()) } - _ => bail!("Unexpected algorithm for Signature"), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> CryptoAlgorithm { match self { - Signature::Ed25519(_) => "ed25519", - Signature::Secp256k1(_) => "secp256k1", - Signature::Secp256r1(_) => "secp256r1", - Signature::Placeholder => "placeholder", + Signature::Ed25519(_) => CryptoAlgorithm::Ed25519, + Signature::Secp256k1(_) => CryptoAlgorithm::Secp256k1, + Signature::Secp256r1(_) => CryptoAlgorithm::Secp256r1, + Signature::Placeholder => CryptoAlgorithm::Ed25519, } } } @@ -56,14 +56,14 @@ impl TryFrom for Signature { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - Signature::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + Signature::from_algorithm_and_bytes(value.algorithm, &value.bytes) } } impl From for CryptoPayload { fn from(signature: Signature) -> Self { CryptoPayload { - algorithm: signature.algorithm().to_string(), + algorithm: signature.algorithm(), bytes: signature.to_bytes(), } } diff --git a/crates/keys/src/signing_keys.rs b/crates/keys/src/signing_keys.rs index 5153ba3c..8b953946 100644 --- a/crates/keys/src/signing_keys.rs +++ b/crates/keys/src/signing_keys.rs @@ -1,4 +1,4 @@ -use anyhow::{bail, Result}; +use anyhow::Result; use ed25519_consensus::SigningKey as Ed25519SigningKey; use p256::ecdsa::{ signature::DigestSigner, Signature as Secp256r1Signature, SigningKey as Secp256r1SigningKey, @@ -8,8 +8,7 @@ use secp256k1::{Message as Secp256k1Message, SecretKey as Secp256k1SigningKey, S use sha2::Digest as _; -use crate::{Signature, VerifyingKey}; -use prism_serde::CryptoPayload; +use crate::{payload::CryptoPayload, CryptoAlgorithm, Signature, VerifyingKey}; #[derive(Clone, Debug)] pub enum SigningKey { @@ -43,26 +42,25 @@ impl SigningKey { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: CryptoAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => Ed25519SigningKey::try_from(bytes) + CryptoAlgorithm::Ed25519 => Ed25519SigningKey::try_from(bytes) .map(|sk| SigningKey::Ed25519(Box::new(sk))) .map_err(|e| e.into()), - "secp256k1" => Secp256k1SigningKey::from_slice(bytes) + CryptoAlgorithm::Secp256k1 => Secp256k1SigningKey::from_slice(bytes) .map(SigningKey::Secp256k1) .map_err(|e| e.into()), - "secp256r1" => Secp256r1SigningKey::from_slice(bytes) + CryptoAlgorithm::Secp256r1 => Secp256r1SigningKey::from_slice(bytes) .map(SigningKey::Secp256r1) .map_err(|e| e.into()), - _ => bail!("Unexpected algorithm for VerifyingKey"), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> CryptoAlgorithm { match self { - SigningKey::Ed25519(_) => "ed25519", - SigningKey::Secp256k1(_) => "secp256k1", - SigningKey::Secp256r1(_) => "secp256r1", + SigningKey::Ed25519(_) => CryptoAlgorithm::Ed25519, + SigningKey::Secp256k1(_) => CryptoAlgorithm::Secp256k1, + SigningKey::Secp256r1(_) => CryptoAlgorithm::Secp256r1, } } @@ -100,14 +98,14 @@ impl TryFrom for SigningKey { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - SigningKey::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + SigningKey::from_algorithm_and_bytes(value.algorithm, &value.bytes) } } impl From for CryptoPayload { fn from(signing_key: SigningKey) -> Self { CryptoPayload { - algorithm: signing_key.algorithm().to_string(), + algorithm: signing_key.algorithm(), bytes: signing_key.to_bytes(), } } diff --git a/crates/keys/src/verifying_keys.rs b/crates/keys/src/verifying_keys.rs index df3b493f..065c9f3f 100644 --- a/crates/keys/src/verifying_keys.rs +++ b/crates/keys/src/verifying_keys.rs @@ -16,11 +16,8 @@ use std::{ hash::{Hash, Hasher}, }; -use crate::{Signature, SigningKey}; -use prism_serde::{ - base64::{FromBase64, ToBase64}, - CryptoPayload, -}; +use crate::{payload::CryptoPayload, CryptoAlgorithm, Signature, SigningKey}; +use prism_serde::base64::{FromBase64, ToBase64}; #[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Eq)] #[serde(try_from = "CryptoPayload", into = "CryptoPayload")] @@ -63,26 +60,25 @@ impl VerifyingKey { } } - pub fn from_algorithm_and_bytes(algorithm: &str, bytes: &[u8]) -> Result { + pub fn from_algorithm_and_bytes(algorithm: CryptoAlgorithm, bytes: &[u8]) -> Result { match algorithm { - "ed25519" => Ed25519VerifyingKey::try_from(bytes) + CryptoAlgorithm::Ed25519 => Ed25519VerifyingKey::try_from(bytes) .map(VerifyingKey::Ed25519) .map_err(|e| e.into()), - "secp256k1" => Secp256k1VerifyingKey::from_slice(bytes) + CryptoAlgorithm::Secp256k1 => Secp256k1VerifyingKey::from_slice(bytes) .map(VerifyingKey::Secp256k1) .map_err(|e| e.into()), - "secp256r1" => Secp256r1VerifyingKey::from_sec1_bytes(bytes) + CryptoAlgorithm::Secp256r1 => Secp256r1VerifyingKey::from_sec1_bytes(bytes) .map(VerifyingKey::Secp256r1) .map_err(|e| e.into()), - _ => bail!("Unexpected algorithm for VerifyingKey"), } } - pub fn algorithm(&self) -> &'static str { + pub fn algorithm(&self) -> CryptoAlgorithm { match self { - VerifyingKey::Ed25519(_) => "ed25519", - VerifyingKey::Secp256k1(_) => "secp256k1", - VerifyingKey::Secp256r1(_) => "secp256r1", + VerifyingKey::Ed25519(_) => CryptoAlgorithm::Ed25519, + VerifyingKey::Secp256k1(_) => CryptoAlgorithm::Secp256k1, + VerifyingKey::Secp256r1(_) => CryptoAlgorithm::Secp256r1, } } @@ -125,15 +121,15 @@ impl TryFrom for VerifyingKey { type Error = anyhow::Error; fn try_from(value: CryptoPayload) -> std::result::Result { - VerifyingKey::from_algorithm_and_bytes(&value.algorithm, &value.bytes) + VerifyingKey::from_algorithm_and_bytes(value.algorithm, &value.bytes) } } impl From for CryptoPayload { - fn from(signature: VerifyingKey) -> Self { + fn from(verifying_key: VerifyingKey) -> Self { CryptoPayload { - algorithm: signature.algorithm().to_string(), - bytes: signature.to_bytes(), + algorithm: verifying_key.algorithm(), + bytes: verifying_key.to_bytes(), } } } diff --git a/crates/serde/src/lib.rs b/crates/serde/src/lib.rs index 13260275..8f8c6240 100644 --- a/crates/serde/src/lib.rs +++ b/crates/serde/src/lib.rs @@ -2,15 +2,6 @@ pub mod base64; pub mod binary; pub mod hex; -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize)] -pub struct CryptoPayload { - pub algorithm: String, - #[serde(with = "raw_or_b64")] - pub bytes: Vec, -} - pub mod raw_or_hex { use std::fmt::Display; From 7fbf5c58fb934d66e80c8576d1b7008d2a69ced9 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 19 Dec 2024 17:04:07 +0100 Subject: [PATCH 18/30] chore: Incorporate changes in zkvm elf --- elf/riscv32im-succinct-zkvm-elf | Bin 1929592 -> 1935348 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index b507e056ed05b90c4ac325a57731f0ca8c99d31d..dbcc7981feebb0ad54021dbe5f9342d7a13b28ef 100755 GIT binary patch delta 276855 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 K|2uN_&;JkX@jI#j delta 271488 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 z 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 From 15fc919ea73a6464722a65e511a80f68bd17d190 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 17:08:51 +0100 Subject: [PATCH 19/30] fix: fund all in sequence Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- ci/run-validator.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ci/run-validator.sh b/ci/run-validator.sh index 234f8b5d..f35cbdf6 100755 --- a/ci/run-validator.sh +++ b/ci/run-validator.sh @@ -168,6 +168,11 @@ provision_bridge_nodes() { echo "Provisioning finished." } +provision() { + provision_bridge_nodes + provision_light_nodes +} + # Set up the validator for a private alone network. # Based on # https://github.com/celestiaorg/celestia-app/blob/main/scripts/single-node.sh @@ -204,8 +209,7 @@ setup_private_validator() { main() { # Configure stuff setup_private_validator - provision_bridge_nodes & - provision_light_nodes & + provision & # Start the celestia-app echo "Configuration finished. Running a validator node..." celestia-appd start --api.enable --grpc.enable --force-no-bbr From 64e68f3bfd15aadd07965d48892378494d470392 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 17:20:57 +0100 Subject: [PATCH 20/30] feat: integration test all curves Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/tests/src/lib.rs | 16 ++++++++++++---- justfile | 12 ++++++------ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index f8507f66..1d031d23 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -16,6 +16,7 @@ use prism_storage::{rocksdb::RocksDBConnection, Database}; use rand::{rngs::StdRng, Rng, SeedableRng}; use std::sync::Arc; use tokio::{spawn, time::Duration}; +use std::env; use tempfile::TempDir; @@ -29,10 +30,19 @@ fn setup_db() -> Arc> { async fn test_light_client_prover_talking() -> Result<()> { std::env::set_var( "RUST_LOG", - "DEBUG,tracing=off,sp1_stark=info,jmt=off,p3_dft=off,p3_fri=off,sp1_core_executor=info,sp1_recursion_program=info,p3_merkle_tree=off,sp1_recursion_compiler=off,sp1_core_machine=off", + "INFO,tracing=off,sp1_stark=info,jmt=off,p3_dft=off,p3_fri=off,sp1_core_executor=info,sp1_recursion_program=info,p3_merkle_tree=off,sp1_recursion_compiler=off,sp1_core_machine=off", ); pretty_env_logger::init(); + let algorithm = match env::var("CURVE_ALGORITHM").unwrap_or_else(|_| "ed25519".to_string()).as_str() { + "ed25519" => KeyAlgorithm::Ed25519, + "secp256k1" => KeyAlgorithm::Secp256k1, + "secp256r1" => KeyAlgorithm::Secp256r1, + _ => panic!("Unsupported curve"), + }; + + info!("testing algorithm: {}", algorithm); + let bridge_cfg = CelestiaConfig { connection_string: "ws://localhost:26658".to_string(), ..CelestiaConfig::default() @@ -42,8 +52,6 @@ async fn test_light_client_prover_talking() -> Result<()> { ..CelestiaConfig::default() }; - let algorithm = KeyAlgorithm::Secp256r1; - let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); let db = setup_db(); @@ -129,7 +137,7 @@ async fn test_light_client_prover_talking() -> Result<()> { let initial_height = rx.recv().await.unwrap(); while let Ok(height) = rx.recv().await { debug!("received height {}", height); - if height >= initial_height + 100 { + if height >= initial_height + 50 { break; } } diff --git a/justfile b/justfile index ac1c6715..3ea23557 100644 --- a/justfile +++ b/justfile @@ -67,14 +67,14 @@ integration-test: #!/usr/bin/env bash set -euo pipefail - just celestia-up + for curve in ed25519 secp256k1 secp256r1; do + just celestia-up - echo "Running integration tests..." - if ! cargo test -p prism-tests --lib --release --features mock_prover; then - echo "Integration tests failed." - fi + echo "Running integration tests for curve $curve..." + CURVE_ALGORITHM=$curve cargo test -p prism-tests --lib --release --features mock_prover - just celestia-down + just celestia-down + done check: @echo "Running cargo udeps..." From 58a0978fb3274e33fbc9f8f84d652084af1e8711 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 17:24:28 +0100 Subject: [PATCH 21/30] fix: clippy Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/keys/src/tests.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/keys/src/tests.rs b/crates/keys/src/tests.rs index 54bbade2..8471483d 100644 --- a/crates/keys/src/tests.rs +++ b/crates/keys/src/tests.rs @@ -1,12 +1,12 @@ #[cfg(test)] -mod tests { - use crate::{SigningKey, VerifyingKey}; +mod key_tests { + use crate::{SigningKey, VerifyingKey, Signature}; use ed25519_consensus::SigningKey as Ed25519SigningKey; use prism_serde::base64::ToBase64; use rand::rngs::OsRng; use secp256k1::SecretKey as Secp256k1SigningKey; use p256::ecdsa::SigningKey as Secp256r1SigningKey; - use crate::Signature; + #[test] fn test_reparsed_verifying_keys_are_equal_to_original() { let verifying_key_ed25519 = SigningKey::new_ed25519().verifying_key(); From a37a8fb8ec494cc4259283a16f553a0f39d54dca Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 19 Dec 2024 19:44:50 +0100 Subject: [PATCH 22/30] fix: remove unused dep Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- Cargo.lock | 1 - crates/tests/Cargo.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 47768c63..bd77dd15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4954,7 +4954,6 @@ name = "prism-tests" version = "0.1.0" dependencies = [ "anyhow", - "keystore-rs", "log", "pretty_env_logger", "prism-common", diff --git a/crates/tests/Cargo.toml b/crates/tests/Cargo.toml index 1a3fc30a..79826f01 100644 --- a/crates/tests/Cargo.toml +++ b/crates/tests/Cargo.toml @@ -17,7 +17,6 @@ mock_prover = [] log.workspace = true pretty_env_logger.workspace = true anyhow.workspace = true -keystore-rs.workspace = true prism-common = { workspace = true, features = ["test_utils"] } prism-storage.workspace = true prism-prover = { workspace = true, features = ["mock_prover"] } From bf0688961c522d6fe70a73af31aab2d270574d2b Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Sun, 29 Dec 2024 10:31:35 +0100 Subject: [PATCH 23/30] feat: apply coderabbit review 4th round Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 80 ++++++++++++++++++------------------ crates/keys/src/algorithm.rs | 2 - 2 files changed, 40 insertions(+), 42 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 32790e92..8e4c1854 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -4,7 +4,7 @@ mod node_types; use cfg::{initialize_da_layer, load_config, Cli, Commands}; use clap::Parser; use keystore_rs::{KeyChain, KeyStore, KeyStoreType}; -use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm, SUPPORTED_ALGORITHMS}; +use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm}; use node_types::NodeType; use prism_lightclient::LightClient; @@ -38,16 +38,11 @@ async fn main() -> std::io::Result<()> { })?; let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let prover_vk = VerifyingKey::from_algorithm_and_bytes( - CryptoAlgorithm::from_str(verifying_key_algorithm) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Failed to create verifying key: {:?}", e) - ))?, + let prover_vk = create_key_from_algorithm( + verifying_key_algorithm, config.verifying_key.unwrap().as_bytes(), - ).map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, format!("invalid prover verifying key: {:?}", e), - ))?; + VerifyingKey::from_algorithm_and_bytes, + )?; Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } @@ -74,14 +69,11 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes( - CryptoAlgorithm::from_str(verifying_key_algorithm) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Failed to create verifying key: {:?}", e) - ))?, - signing_key_chain.as_bytes()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {:?}", e)))?; + let signing_key = create_key_from_algorithm( + verifying_key_algorithm, + signing_key_chain.as_bytes(), + SigningKey::from_algorithm_and_bytes, + )?; let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -130,14 +122,11 @@ async fn main() -> std::io::Result<()> { let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let signing_key = SigningKey::from_algorithm_and_bytes( - CryptoAlgorithm::from_str(verifying_key_algorithm) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Failed to create verifying key: {:?}", e) - ))?, - signing_key_chain.as_bytes()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, format!("invalid signing key: {:?}", e)))?; + let signing_key = create_key_from_algorithm( + verifying_key_algorithm, + signing_key_chain.as_bytes(), + SigningKey::from_algorithm_and_bytes, + )?; let prover_vk = config .verifying_key @@ -147,18 +136,11 @@ async fn main() -> std::io::Result<()> { "prover verifying key not found", ) }) - .and_then(|vk| VerifyingKey::from_algorithm_and_bytes( - CryptoAlgorithm::from_str(verifying_key_algorithm) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Failed to create verifying key: {:?}", e) - ))?, - vk.as_bytes()).map_err(|e| { - std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("invalid prover verifying key: {:?}", e), - ) - }))?; + .and_then(|vk| create_key_from_algorithm( + verifying_key_algorithm, + vk.as_bytes(), + VerifyingKey::from_algorithm_and_bytes, + ))?; let prover_cfg = prism_prover::Config { prover: false, @@ -188,9 +170,27 @@ fn validate_algorithm(algorithm: &str) -> Result<&str, std::io::Error> { return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); } - if !SUPPORTED_ALGORITHMS.contains(&CryptoAlgorithm::from_str(algorithm).unwrap()) { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm")); + if CryptoAlgorithm::from_str(algorithm).is_err() { + return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm format")); } Ok(algorithm) } + +fn create_key_from_algorithm( + algorithm: &str, + bytes: &[u8], + creator: impl FnOnce(CryptoAlgorithm, &[u8]) -> Result, +) -> std::io::Result { + let key_algorithm = CryptoAlgorithm::from_str(algorithm) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Failed to create key: {:?}", e) + ))?; + + creator(key_algorithm, bytes) + .map_err(|e| std::io::Error::new( + std::io::ErrorKind::InvalidData, + format!("Invalid key: {:?}", e) + )) +} diff --git a/crates/keys/src/algorithm.rs b/crates/keys/src/algorithm.rs index 4f57d64d..e4d9540d 100644 --- a/crates/keys/src/algorithm.rs +++ b/crates/keys/src/algorithm.rs @@ -20,5 +20,3 @@ impl std::str::FromStr for CryptoAlgorithm { } } } - -pub const SUPPORTED_ALGORITHMS: &[CryptoAlgorithm] = &[CryptoAlgorithm::Ed25519, CryptoAlgorithm::Secp256k1, CryptoAlgorithm::Secp256r1]; From 0a363174511aaab4c0e72e03ee67a38f7cead036 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Wed, 8 Jan 2025 14:40:23 +0100 Subject: [PATCH 24/30] feat: applied review Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/cfg.rs | 4 +- crates/cli/src/main.rs | 170 +++++++++--------- crates/common/src/transaction_builder.rs | 31 ++-- crates/da/src/celestia.rs | 2 +- crates/da/src/lib.rs | 7 +- crates/keys/src/algorithm.rs | 18 +- crates/keys/src/tests.rs | 4 +- crates/keys/src/verifying_keys.rs | 3 +- .../node_types/lightclient/src/lightclient.rs | 2 +- crates/node_types/prover/Cargo.toml | 4 +- crates/node_types/prover/src/prover/mod.rs | 13 +- crates/node_types/prover/src/prover/tests.rs | 10 +- crates/storage/src/inmemory.rs | 11 +- crates/tests/src/lib.rs | 48 ++--- crates/tree/Cargo.toml | 4 +- crates/tree/src/tests.rs | 29 +-- elf/riscv32im-succinct-zkvm-elf | Bin 1933432 -> 1933404 bytes justfile | 3 +- 18 files changed, 200 insertions(+), 163 deletions(-) diff --git a/crates/cli/src/cfg.rs b/crates/cli/src/cfg.rs index e0b4fccf..390b1111 100644 --- a/crates/cli/src/cfg.rs +++ b/crates/cli/src/cfg.rs @@ -207,7 +207,9 @@ fn apply_command_line_args(config: Config, args: CommandArgs) -> Config { }), da_layer: config.da_layer, verifying_key: args.verifying_key.or(config.verifying_key), - verifying_key_algorithm: args.verifying_key_algorithm.unwrap_or(config.verifying_key_algorithm), + verifying_key_algorithm: args + .verifying_key_algorithm + .unwrap_or(config.verifying_key_algorithm), } } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 8e4c1854..18b466bd 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -4,14 +4,14 @@ mod node_types; use cfg::{initialize_da_layer, load_config, Cli, Commands}; use clap::Parser; use keystore_rs::{KeyChain, KeyStore, KeyStoreType}; -use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm}; +use prism_keys::{CryptoAlgorithm, SigningKey, VerifyingKey}; +use std::io::{Error, ErrorKind}; use node_types::NodeType; use prism_lightclient::LightClient; use prism_prover::Prover; use prism_storage::RedisConnection; -use std::sync::Arc; -use std::str::FromStr; +use std::{str::FromStr, sync::Arc}; #[macro_use] extern crate log; @@ -24,56 +24,74 @@ async fn main() -> std::io::Result<()> { let node: Arc = match cli.command { Commands::LightClient(args) => { let config = load_config(args.clone()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let da = initialize_da_layer(&config) .await - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let celestia_config = config.celestia_config.ok_or_else(|| { - std::io::Error::new( - std::io::ErrorKind::NotFound, - "celestia configuration not found", - ) + Error::new(ErrorKind::NotFound, "celestia configuration not found") })?; - let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - let prover_vk = create_key_from_algorithm( + validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let verifying_key_algorithm = + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let prover_vk = VerifyingKey::from_algorithm_and_bytes( verifying_key_algorithm, config.verifying_key.unwrap().as_bytes(), - VerifyingKey::from_algorithm_and_bytes, - )?; + ) + .or_else(|e| Err(Error::new(ErrorKind::InvalidInput, e.to_string())))?; Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } Commands::Prover(args) => { let config = load_config(args.clone()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let da = initialize_da_layer(&config) .await - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - let redis_config = config.clone().redis_config.ok_or_else(|| { - std::io::Error::new( - std::io::ErrorKind::NotFound, - "redis configuration not found", - ) - })?; + let redis_config = config + .clone() + .redis_config + .ok_or_else(|| Error::new(ErrorKind::NotFound, "redis configuration not found"))?; let redis_connections = RedisConnection::new(&redis_config) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let signing_key_chain = KeyStoreType::KeyChain(KeyChain) .get_signing_key() - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; - - let signing_key = create_key_from_algorithm( + validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let verifying_key_algorithm = + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let signing_key = SigningKey::from_algorithm_and_bytes( verifying_key_algorithm, signing_key_chain.as_bytes(), - SigningKey::from_algorithm_and_bytes, - )?; + ) + .or_else(|_| Err(Error::new(ErrorKind::InvalidInput, "invalid signing key")))?; let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -85,62 +103,62 @@ async fn main() -> std::io::Result<()> { start_height: config.celestia_config.unwrap_or_default().start_height, }; - info!( - "prover verifying key: {}", - prover_cfg.verifying_key.clone() - ); + info!("prover verifying key: {}", prover_cfg.verifying_key.clone()); Arc::new( Prover::new(Arc::new(Box::new(redis_connections)), da, &prover_cfg).map_err( |e| { error!("error initializing prover: {}", e); - std::io::Error::new(std::io::ErrorKind::Other, e.to_string()) + Error::new(ErrorKind::Other, e.to_string()) }, )?, ) } Commands::FullNode(args) => { let config = load_config(args.clone()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let da = initialize_da_layer(&config) .await - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - let redis_config = config.clone().redis_config.ok_or_else(|| { - std::io::Error::new( - std::io::ErrorKind::NotFound, - "redis configuration not found", - ) - })?; + let redis_config = config + .clone() + .redis_config + .ok_or_else(|| Error::new(ErrorKind::NotFound, "redis configuration not found"))?; let redis_connections = RedisConnection::new(&redis_config) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; let signing_key_chain = KeyStoreType::KeyChain(KeyChain) .get_signing_key() - .map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string()))?; - - let verifying_key_algorithm = validate_algorithm(&config.verifying_key_algorithm)?; + .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - let signing_key = create_key_from_algorithm( + validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let verifying_key_algorithm = + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { + Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )) + })?; + let signing_key = SigningKey::from_algorithm_and_bytes( verifying_key_algorithm, signing_key_chain.as_bytes(), - SigningKey::from_algorithm_and_bytes, - )?; + ) + .or_else(|_| Err(Error::new(ErrorKind::InvalidInput, "invalid signing key")))?; let prover_vk = config .verifying_key - .ok_or_else(|| { - std::io::Error::new( - std::io::ErrorKind::NotFound, - "prover verifying key not found", - ) - }) - .and_then(|vk| create_key_from_algorithm( - verifying_key_algorithm, - vk.as_bytes(), - VerifyingKey::from_algorithm_and_bytes, - ))?; + .ok_or_else(|| Error::new(ErrorKind::NotFound, "prover verifying key not found")) + .and_then(|vk| { + VerifyingKey::from_algorithm_and_bytes(verifying_key_algorithm, vk.as_bytes()) + .map_err(|e| Error::new(ErrorKind::InvalidInput, e.to_string())) + })?; let prover_cfg = prism_prover::Config { prover: false, @@ -155,42 +173,30 @@ async fn main() -> std::io::Result<()> { Prover::new(Arc::new(Box::new(redis_connections)), da, &prover_cfg).map_err( |e| { error!("error initializing prover: {}", e); - std::io::Error::new(std::io::ErrorKind::Other, e.to_string()) + Error::new(ErrorKind::Other, e.to_string()) }, )?, ) } }; - node.start().await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string())) + node.start().await.map_err(|e| Error::new(ErrorKind::Other, e.to_string())) } -fn validate_algorithm(algorithm: &str) -> Result<&str, std::io::Error> { +fn validate_algorithm(algorithm: &str) -> Result<&str, Error> { if algorithm.is_empty() { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "verifying key algorithm is required")); + return Err(Error::new( + ErrorKind::InvalidInput, + "verifying key algorithm is required", + )); } if CryptoAlgorithm::from_str(algorithm).is_err() { - return Err(std::io::Error::new(std::io::ErrorKind::InvalidInput, "invalid verifying key algorithm format")); + return Err(Error::new( + ErrorKind::InvalidInput, + "invalid verifying key algorithm format", + )); } Ok(algorithm) } - -fn create_key_from_algorithm( - algorithm: &str, - bytes: &[u8], - creator: impl FnOnce(CryptoAlgorithm, &[u8]) -> Result, -) -> std::io::Result { - let key_algorithm = CryptoAlgorithm::from_str(algorithm) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Failed to create key: {:?}", e) - ))?; - - creator(key_algorithm, bytes) - .map_err(|e| std::io::Error::new( - std::io::ErrorKind::InvalidData, - format!("Invalid key: {:?}", e) - )) -} diff --git a/crates/common/src/transaction_builder.rs b/crates/common/src/transaction_builder.rs index 3cdeaef8..563e87ad 100644 --- a/crates/common/src/transaction_builder.rs +++ b/crates/common/src/transaction_builder.rs @@ -6,7 +6,7 @@ use crate::{ operation::{Operation, ServiceChallenge, ServiceChallengeInput, SignatureBundle}, transaction::Transaction, }; -use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm}; +use prism_keys::{CryptoAlgorithm, SigningKey, VerifyingKey}; enum PostCommitAction { UpdateStorageOnly, RememberServiceKey(String, SigningKey), @@ -85,8 +85,10 @@ impl TransactionBuilder { algorithm: CryptoAlgorithm, id: &str, ) -> UncommittedTransaction { - let random_service_challenge_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create challenge key"); - let random_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); + let random_service_challenge_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create challenge key"); + let random_service_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create signing key"); self.register_service(id, random_service_challenge_key, random_service_signing_key) } @@ -119,7 +121,8 @@ impl TransactionBuilder { id: &str, service_id: &str, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); + let account_signing_key = SigningKey::new_with_algorithm(algorithm) + .expect("Failed to create account signing key"); self.create_account_signed(id, service_id, account_signing_key) } @@ -143,7 +146,8 @@ impl TransactionBuilder { service_id: &str, service_signing_key: &SigningKey, ) -> UncommittedTransaction { - let account_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); + let account_signing_key = SigningKey::new_with_algorithm(algorithm) + .expect("Failed to create account signing key"); self.create_account(id, service_id, service_signing_key, account_signing_key) } @@ -176,7 +180,11 @@ impl TransactionBuilder { } } - pub fn add_random_key_verified_with_root(&mut self, algorithm: CryptoAlgorithm, id: &str) -> UncommittedTransaction { + pub fn add_random_key_verified_with_root( + &mut self, + algorithm: CryptoAlgorithm, + id: &str, + ) -> UncommittedTransaction { let Some(account_signing_key) = self.account_keys.get(id).cloned() else { panic!("No existing account key for {}", id) }; @@ -188,9 +196,10 @@ impl TransactionBuilder { &mut self, algorithm: CryptoAlgorithm, id: &str, - signing_key: &SigningKey + signing_key: &SigningKey, ) -> UncommittedTransaction { - let random_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create random key").into(); + let random_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create random key").into(); self.add_key(id, random_key, signing_key) } @@ -261,7 +270,8 @@ impl TransactionBuilder { value: Vec, signing_key: &SigningKey, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); + let value_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); self.add_signed_data(id, value, &value_signing_key, signing_key) } @@ -271,7 +281,8 @@ impl TransactionBuilder { id: &str, value: Vec, ) -> UncommittedTransaction { - let value_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); + let value_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create value signing key"); self.add_signed_data_verified_with_root(id, value, &value_signing_key) } diff --git a/crates/da/src/celestia.rs b/crates/da/src/celestia.rs index 6652fe27..db5da034 100644 --- a/crates/da/src/celestia.rs +++ b/crates/da/src/celestia.rs @@ -2,7 +2,7 @@ use crate::{DataAvailabilityLayer, FinalizedEpoch}; use anyhow::{anyhow, Context, Result}; use async_trait::async_trait; use celestia_rpc::{BlobClient, Client, HeaderClient}; -use celestia_types::{nmt::Namespace, Blob, TxConfig, AppVersion}; +use celestia_types::{nmt::Namespace, AppVersion, Blob, TxConfig}; use log::{debug, error, trace, warn}; use prism_common::transaction::Transaction; use prism_errors::{DataAvailabilityError, GeneralError}; diff --git a/crates/da/src/lib.rs b/crates/da/src/lib.rs index 999c57f8..5da4cc68 100644 --- a/crates/da/src/lib.rs +++ b/crates/da/src/lib.rs @@ -1,7 +1,7 @@ use anyhow::Result; use async_trait::async_trait; -use prism_keys::{SigningKey, VerifyingKey, Signature}; use prism_common::{digest::Digest, transaction::Transaction}; +use prism_keys::{Signature, SigningKey, VerifyingKey}; use prism_serde::{ binary::ToBinary, hex::{FromHex, ToHex}, @@ -50,8 +50,9 @@ impl FinalizedEpoch { let signature_bytes = Vec::::from_hex(signature) .map_err(|e| anyhow::anyhow!("Failed to decode signature: {}", e))?; - let signature: Signature = Signature::from_algorithm_and_bytes(vk.algorithm(), signature_bytes.as_slice()) - .map_err(|_| anyhow::anyhow!("Invalid signature length"))?; + let signature: Signature = + Signature::from_algorithm_and_bytes(vk.algorithm(), signature_bytes.as_slice()) + .map_err(|_| anyhow::anyhow!("Invalid signature length"))?; vk.verify_signature(&message, &signature) .map_err(|e| anyhow::anyhow!("Signature verification failed: {}", e))?; diff --git a/crates/keys/src/algorithm.rs b/crates/keys/src/algorithm.rs index e4d9540d..9439024d 100644 --- a/crates/keys/src/algorithm.rs +++ b/crates/keys/src/algorithm.rs @@ -9,14 +9,14 @@ pub enum CryptoAlgorithm { } impl std::str::FromStr for CryptoAlgorithm { - type Err = (); + type Err = (); - fn from_str(input: &str) -> Result { - match input.to_lowercase().as_str() { - "ed25519" => Ok(CryptoAlgorithm::Ed25519), - "secp256k1" => Ok(CryptoAlgorithm::Secp256k1), - "secp256r1" => Ok(CryptoAlgorithm::Secp256r1), - _ => Err(()), - } - } + fn from_str(input: &str) -> Result { + match input.to_lowercase().as_str() { + "ed25519" => Ok(CryptoAlgorithm::Ed25519), + "secp256k1" => Ok(CryptoAlgorithm::Secp256k1), + "secp256r1" => Ok(CryptoAlgorithm::Secp256r1), + _ => Err(()), + } + } } diff --git a/crates/keys/src/tests.rs b/crates/keys/src/tests.rs index 8471483d..77b70fbd 100644 --- a/crates/keys/src/tests.rs +++ b/crates/keys/src/tests.rs @@ -1,11 +1,11 @@ #[cfg(test)] mod key_tests { - use crate::{SigningKey, VerifyingKey, Signature}; + use crate::{Signature, SigningKey, VerifyingKey}; use ed25519_consensus::SigningKey as Ed25519SigningKey; + use p256::ecdsa::SigningKey as Secp256r1SigningKey; use prism_serde::base64::ToBase64; use rand::rngs::OsRng; use secp256k1::SecretKey as Secp256k1SigningKey; - use p256::ecdsa::SigningKey as Secp256r1SigningKey; #[test] fn test_reparsed_verifying_keys_are_equal_to_original() { diff --git a/crates/keys/src/verifying_keys.rs b/crates/keys/src/verifying_keys.rs index 6c9590eb..60e5fa3b 100644 --- a/crates/keys/src/verifying_keys.rs +++ b/crates/keys/src/verifying_keys.rs @@ -13,7 +13,7 @@ use serde::{Deserialize, Serialize}; use sha2::Digest as _; use std::{ self, - hash::{Hash, Hasher} + hash::{Hash, Hasher}, }; use crate::{payload::CryptoPayload, CryptoAlgorithm, Signature, SigningKey}; @@ -82,7 +82,6 @@ impl VerifyingKey { } } - pub fn verify_signature(&self, message: &[u8], signature: &Signature) -> Result<()> { match self { VerifyingKey::Ed25519(vk) => { diff --git a/crates/node_types/lightclient/src/lightclient.rs b/crates/node_types/lightclient/src/lightclient.rs index d96d7f65..75c7d2a1 100644 --- a/crates/node_types/lightclient/src/lightclient.rs +++ b/crates/node_types/lightclient/src/lightclient.rs @@ -1,8 +1,8 @@ use anyhow::{Context, Result}; -use prism_keys::VerifyingKey; use prism_common::digest::Digest; use prism_da::{celestia::CelestiaConfig, DataAvailabilityLayer}; use prism_errors::{DataAvailabilityError, GeneralError}; +use prism_keys::VerifyingKey; use sp1_sdk::{ProverClient, SP1VerifyingKey}; use std::{self, sync::Arc}; use tokio::{sync::broadcast, task::spawn}; diff --git a/crates/node_types/prover/Cargo.toml b/crates/node_types/prover/Cargo.toml index c15c3e43..ea29dcc1 100644 --- a/crates/node_types/prover/Cargo.toml +++ b/crates/node_types/prover/Cargo.toml @@ -13,7 +13,6 @@ test_utils = [] mock_prover = [] [dependencies] -paste = { workspace = true } axum = { workspace = true } tower-http = { workspace = true } utoipa = { workspace = true } @@ -30,3 +29,6 @@ prism-errors = { workspace = true } prism-keys = { workspace = true } prism-da = { workspace = true } sp1-sdk = { workspace = true } + +[dev-dependencies] +paste = { workspace = true } diff --git a/crates/node_types/prover/src/prover/mod.rs b/crates/node_types/prover/src/prover/mod.rs index 3aa59eca..c6d15485 100644 --- a/crates/node_types/prover/src/prover/mod.rs +++ b/crates/node_types/prover/src/prover/mod.rs @@ -1,8 +1,8 @@ use anyhow::{anyhow, bail, Context, Result}; -use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm}; use jmt::KeyHash; use prism_common::{account::Account, digest::Digest, transaction::Transaction}; use prism_errors::DataAvailabilityError; +use prism_keys::{CryptoAlgorithm, SigningKey, VerifyingKey}; use prism_storage::database::Database; use prism_tree::{ hasher::TreeHasher, @@ -67,15 +67,15 @@ impl Default for Config { #[allow(dead_code)] impl Config { /// Creates a new Config instance with the specified key algorithm. - /// + /// /// # Arguments /// * `algorithm` - The key algorithm to use for signing and verification - /// + /// /// # Returns /// A Result containing the Config or an error if key creation fails fn default_with_key_algorithm(algorithm: CryptoAlgorithm) -> Result { - let signing_key = SigningKey::new_with_algorithm(algorithm) - .context("Failed to create signing key")?; + let signing_key = + SigningKey::new_with_algorithm(algorithm).context("Failed to create signing key")?; Ok(Config { prover: true, @@ -290,7 +290,8 @@ impl Prover { } // TODO: Issue #144 - epoch.verify_signature(self.cfg.verifying_key.clone()) + epoch + .verify_signature(self.cfg.verifying_key.clone()) .with_context(|| format!("Invalid signature in epoch {}", epoch.height))?; trace!("valid signature for epoch {}", epoch.height); diff --git a/crates/node_types/prover/src/prover/tests.rs b/crates/node_types/prover/src/prover/tests.rs index 2b40d449..0ab9b118 100644 --- a/crates/node_types/prover/src/prover/tests.rs +++ b/crates/node_types/prover/src/prover/tests.rs @@ -1,6 +1,6 @@ use super::*; use prism_common::transaction_builder::TransactionBuilder; -use prism_keys::{SigningKey, VerifyingKey, CryptoAlgorithm}; +use prism_keys::{CryptoAlgorithm, SigningKey, VerifyingKey}; use std::{self, sync::Arc, time::Duration}; use tokio::spawn; @@ -27,7 +27,9 @@ fn create_mock_transactions(algorithm: CryptoAlgorithm, service_id: String) -> V transaction_builder .create_account_with_random_key_signed(algorithm, "user2@example.com", &service_id) .commit(), - transaction_builder.add_random_key_verified_with_root(algorithm, "user1@example.com").commit(), + transaction_builder + .add_random_key_verified_with_root(algorithm, "user1@example.com") + .commit(), ] } @@ -93,7 +95,9 @@ async fn test_execute_block_with_invalid_tx(algorithm: CryptoAlgorithm) { let transactions = vec![ tx_builder.register_service_with_random_keys(algorithm, "service_id").commit(), - tx_builder.create_account_with_random_key_signed(algorithm, "account_id", "service_id").commit(), + tx_builder + .create_account_with_random_key_signed(algorithm, "account_id", "service_id") + .commit(), // add new key, so it will be index = 1 tx_builder.add_key_verified_with_root("account_id", new_key_vk.clone()).commit(), // revoke new key again diff --git a/crates/storage/src/inmemory.rs b/crates/storage/src/inmemory.rs index bc7a2e00..bd744ccc 100644 --- a/crates/storage/src/inmemory.rs +++ b/crates/storage/src/inmemory.rs @@ -92,14 +92,9 @@ impl TreeWriter for InMemoryDatabase { impl Database for InMemoryDatabase { fn get_commitment(&self, epoch: &u64) -> Result { - self.commitments - .lock() - .unwrap() - .get(epoch) - .cloned() - .ok_or_else(|| { - DatabaseError::NotFoundError(format!("commitment from epoch_{}", epoch)).into() - }) + self.commitments.lock().unwrap().get(epoch).cloned().ok_or_else(|| { + DatabaseError::NotFoundError(format!("commitment from epoch_{}", epoch)).into() + }) } fn set_commitment(&self, epoch: &u64, commitment: &Digest) -> Result<()> { diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index 140ec999..d5b96975 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -9,14 +9,13 @@ use prism_da::{ celestia::{CelestiaConfig, CelestiaConnection}, DataAvailabilityLayer, }; +use prism_keys::{CryptoAlgorithm, SigningKey}; use prism_lightclient::LightClient; use prism_prover::Prover; -use prism_keys::{SigningKey, CryptoAlgorithm}; use prism_storage::{rocksdb::RocksDBConnection, Database}; use rand::{rngs::StdRng, Rng, SeedableRng}; use std::sync::Arc; use tokio::{spawn, time::Duration}; -use std::env; use tempfile::TempDir; @@ -30,19 +29,10 @@ fn setup_db() -> Arc> { async fn test_light_client_prover_talking() -> Result<()> { std::env::set_var( "RUST_LOG", - "INFO,tracing=off,sp1_stark=info,jmt=off,p3_dft=off,p3_fri=off,sp1_core_executor=info,sp1_recursion_program=info,p3_merkle_tree=off,sp1_recursion_compiler=off,sp1_core_machine=off", + "DEBUG,tracing=off,sp1_stark=info,jmt=off,p3_dft=off,p3_fri=off,sp1_core_executor=info,sp1_recursion_program=info,p3_merkle_tree=off,sp1_recursion_compiler=off,sp1_core_machine=off", ); pretty_env_logger::init(); - let algorithm = match env::var("CURVE_ALGORITHM").unwrap_or_else(|_| "ed25519".to_string()).as_str() { - "ed25519" => CryptoAlgorithm::Ed25519, - "secp256k1" => CryptoAlgorithm::Secp256k1, - "secp256r1" => CryptoAlgorithm::Secp256r1, - _ => panic!("Unsupported curve"), - }; - - info!("testing algorithm: {:?}", algorithm); - let bridge_cfg = CelestiaConfig { connection_string: "ws://localhost:26658".to_string(), ..CelestiaConfig::default() @@ -52,10 +42,14 @@ async fn test_light_client_prover_talking() -> Result<()> { ..CelestiaConfig::default() }; + let mut rng = StdRng::from_entropy(); + let prover_algorithm = CryptoAlgorithm::Ed25519; + let service_algorithm = random_algorithm(&mut rng); + let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); let db = setup_db(); - let signing_key = SigningKey::new_with_algorithm(algorithm)?; + let signing_key = SigningKey::new_with_algorithm(prover_algorithm).unwrap(); let pubkey = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -84,11 +78,10 @@ async fn test_light_client_prover_talking() -> Result<()> { }); spawn(async move { - let mut rng = StdRng::from_entropy(); - let mut transaction_builder = TransactionBuilder::new(); - let register_service_req = - transaction_builder.register_service_with_random_keys(algorithm, "test_service").commit(); + let register_service_req = transaction_builder + .register_service_with_random_keys(service_algorithm, "test_service") + .commit(); let mut i = 0; @@ -101,7 +94,11 @@ async fn test_light_client_prover_talking() -> Result<()> { for _ in 0..num_new_accounts { let random_user_id = format!("{}@gmail.com", i); let new_acc = transaction_builder - .create_account_with_random_key_signed(algorithm, random_user_id.as_str(), "test_service") + .create_account_with_random_key_signed( + random_algorithm(&mut rng), + random_user_id.as_str(), + "test_service", + ) .commit(); match prover.clone().validate_and_queue_update(new_acc).await { Ok(_) => { @@ -119,8 +116,9 @@ async fn test_light_client_prover_talking() -> Result<()> { .get(rng.gen_range(0..added_account_ids.len())) .map_or("Could not find random account id", |id| id.as_str()); - let update_acc = - transaction_builder.add_random_key_verified_with_root(algorithm, acc_id).commit(); + let update_acc = transaction_builder + .add_random_key_verified_with_root(random_algorithm(&mut rng), acc_id) + .commit(); match prover.clone().validate_and_queue_update(update_acc).await { Ok(_) => (), @@ -129,7 +127,7 @@ async fn test_light_client_prover_talking() -> Result<()> { } } - tokio::time::sleep(Duration::from_millis(5000)).await; + tokio::time::sleep(Duration::from_secs(5)).await; } }); @@ -144,3 +142,11 @@ async fn test_light_client_prover_talking() -> Result<()> { Ok(()) } + +fn random_algorithm(rng: &mut StdRng) -> CryptoAlgorithm { + [ + CryptoAlgorithm::Ed25519, + CryptoAlgorithm::Secp256k1, + CryptoAlgorithm::Secp256r1, + ][rng.gen_range(0..3)] +} diff --git a/crates/tree/Cargo.toml b/crates/tree/Cargo.toml index 30381979..b94d46d7 100644 --- a/crates/tree/Cargo.toml +++ b/crates/tree/Cargo.toml @@ -11,7 +11,6 @@ keywords.workspace = true readme.workspace = true [dependencies] -paste = { workspace = true } jmt.workspace = true sha2.workspace = true serde.workspace = true @@ -22,5 +21,8 @@ prism-errors.workspace = true prism-keys.workspace = true prism-serde.workspace = true +[dev-dependencies] +paste = { workspace = true } + [features] default = [] diff --git a/crates/tree/src/tests.rs b/crates/tree/src/tests.rs index dd70e15b..1b7a2795 100644 --- a/crates/tree/src/tests.rs +++ b/crates/tree/src/tests.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use jmt::{mock::MockTreeStore, KeyHash}; use prism_common::transaction_builder::TransactionBuilder; -use prism_keys::{SigningKey, CryptoAlgorithm}; +use prism_keys::{CryptoAlgorithm, SigningKey}; use crate::{ hasher::TreeHasher, key_directory_tree::KeyDirectoryTree, proofs::Proof, @@ -43,7 +43,8 @@ fn test_insert_for_nonexistent_service_fails(algorithm: CryptoAlgorithm) { let mut tree = KeyDirectoryTree::new(Arc::new(MockTreeStore::default())); let mut tx_builder = TransactionBuilder::new(); - let service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); + let service_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); let invalid_account_tx = tx_builder .create_account_with_random_key( @@ -66,9 +67,11 @@ fn test_insert_with_invalid_service_challenge_fails(algorithm: CryptoAlgorithm) // The correct way was to use the key from service registration, // but here we want things to break - let incorrect_service_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); + let incorrect_service_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create service signing key"); - let initial_acc_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); + let initial_acc_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create account signing key"); let acc_with_invalid_challenge_tx = tx_builder .create_account( @@ -117,7 +120,8 @@ fn test_update_existing_key(algorithm: CryptoAlgorithm) { let mut tx_builder = TransactionBuilder::new(); let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); - let acc_tx = tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); + let acc_tx = + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); tree.process_transaction(acc_tx).unwrap(); @@ -144,7 +148,8 @@ fn test_update_non_existing_key(algorithm: CryptoAlgorithm) { tree.process_transaction(service_tx).unwrap(); // This is a signing key not known to the storage yet - let random_signing_key = SigningKey::new_with_algorithm(algorithm).expect("Failed to create random signing key"); + let random_signing_key = + SigningKey::new_with_algorithm(algorithm).expect("Failed to create random signing key"); // This transaction shall be invalid, because it is signed with an unknown key let invalid_key_tx = tx_builder.add_random_key(algorithm, "acc_1", &random_signing_key).build(); @@ -157,8 +162,10 @@ fn test_multiple_inserts_and_updates(algorithm: CryptoAlgorithm) { let mut tx_builder = TransactionBuilder::new(); let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); - let acc1_tx = tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); - let acc2_tx = tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); + let acc1_tx = + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); + let acc2_tx = + tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); @@ -194,8 +201,10 @@ fn test_interleaved_inserts_and_updates(algorithm: CryptoAlgorithm) { let mut tx_builder = TransactionBuilder::new(); let service_tx = tx_builder.register_service_with_random_keys(algorithm, "service_1").commit(); - let acc1_tx = tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); - let acc2_tx = tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); + let acc1_tx = + tx_builder.create_account_with_random_key_signed(algorithm, "acc_1", "service_1").commit(); + let acc2_tx = + tx_builder.create_account_with_random_key_signed(algorithm, "acc_2", "service_1").commit(); tree.process_transaction(service_tx).unwrap(); tree.process_transaction(acc1_tx).unwrap(); diff --git a/elf/riscv32im-succinct-zkvm-elf b/elf/riscv32im-succinct-zkvm-elf index 78a814494e4dc11601075fd0c0d9701828ffae1d..f528a390e1f3ce9010a54db3177b51aadd1691a4 100755 GIT binary patch delta 45097 zcmbrH349bq_Q$IyClJVlBqW(MFu6#$!rX_T45x@3;S%JK%qePwsGz9m3<8P@3N~7} zA{$p!P!KTacz_OyD=KO{R#8!-prWGU%C7ts_5Z8x>gfi9lilUBljK`>y?XWP)iLhz z*p&xjSFSP(i?)}2mL+Y?9-UQ}PQHx!ZoH$zH6{|wzcGUZyJi^jGjXDLse!LkyEXfDvduVe&d`mj)FK z7S5Fx;pf@XPW&7uoxsn*(xAe@!a!*ee!8Wd_-U6;;O78oP`ANCUuhA3RyXhL<`yJ- z>BUO3eaoZ`rOvEI*4WqdRoMZkCP~ z1q@`2G`aXKL*gu{rli*3n=VZ&u^Gsc<`pFY!QlH*I%?`+@ckeeOM4h%Q)tU;nGUI` ze___q-+xCD$EBV9e^vhW9d1t4&JwaLvdHtKO3Td^^52Og`8PxG1x)ZlCKG&qW(Pto za!X&9S}gsueDdEvN$J-9rS`)d6W`7|I{UD6 zL>y`Gy(>Aoe_)91Z8rAkAsAveNtT|sW%?56@aNJ7>qLWZzI5E$$K<;*Kf_3ZD>jv* z8Ad4sO_2M5t`4$w7P5@2-ozPFoxQw=&o8GnZ0Rbe&8magkehWH9up%SIQVNQ0|(XH!(%(=QxLp;SOn$ z!>Rn8xJ`P}aW36@flwypR1Xj;q(Rly!r!D&^?;0cFg?R2^_zGg4F4_7! zGs@>3{p*)^I45MaGL;}-HBWP92nzW2OCi^<%HN5@&2!x62z(0lm!9 zl{~lRXY47!02JkC`uZpX5W7VgC}F5JD88F9D1$L5>Dr)>

    )hL1(qF#El3WmefnR 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 delta 45203 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 Vu)2K^pWlPsb?)q{9> diff --git a/justfile b/justfile index 3ea23557..9773824f 100644 --- a/justfile +++ b/justfile @@ -70,8 +70,7 @@ integration-test: for curve in ed25519 secp256k1 secp256r1; do just celestia-up - echo "Running integration tests for curve $curve..." - CURVE_ALGORITHM=$curve cargo test -p prism-tests --lib --release --features mock_prover + cargo test -p prism-tests --lib --release --features mock_prover just celestia-down done From 90c6b6085b38833ad4c85074eb6fb863bd43310b Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 07:30:56 +0100 Subject: [PATCH 25/30] feat: apply review Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 42 ++++++++++++++++++++--------------------- crates/keys/src/lib.rs | 2 +- crates/tests/src/lib.rs | 4 ++++ 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 18b466bd..1bb5223c 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -34,24 +34,24 @@ async fn main() -> std::io::Result<()> { Error::new(ErrorKind::NotFound, "celestia configuration not found") })?; - validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let verifying_key_algorithm = - CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let prover_vk = VerifyingKey::from_algorithm_and_bytes( verifying_key_algorithm, config.verifying_key.unwrap().as_bytes(), ) - .or_else(|e| Err(Error::new(ErrorKind::InvalidInput, e.to_string())))?; + .map_err(|e| Error::new(ErrorKind::InvalidInput, e.to_string()))?; Arc::new(LightClient::new(da, celestia_config, Some(prover_vk))) } @@ -74,24 +74,24 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let verifying_key_algorithm = - CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let signing_key = SigningKey::from_algorithm_and_bytes( verifying_key_algorithm, signing_key_chain.as_bytes(), ) - .or_else(|_| Err(Error::new(ErrorKind::InvalidInput, "invalid signing key")))?; + .map_err(|_| Error::new(ErrorKind::InvalidInput, "invalid signing key"))?; let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -133,24 +133,24 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - validate_algorithm(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let verifying_key_algorithm = - CryptoAlgorithm::from_str(&config.verifying_key_algorithm).or_else(|_| { - Err(Error::new( + CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { + Error::new( ErrorKind::InvalidInput, "invalid verifying key algorithm format", - )) + ) })?; let signing_key = SigningKey::from_algorithm_and_bytes( verifying_key_algorithm, signing_key_chain.as_bytes(), ) - .or_else(|_| Err(Error::new(ErrorKind::InvalidInput, "invalid signing key")))?; + .map_err(|_| Error::new(ErrorKind::InvalidInput, "invalid signing key"))?; let prover_vk = config .verifying_key diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index d85bc643..d8d775af 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -9,5 +9,5 @@ pub use signatures::*; pub use signing_keys::*; pub use verifying_keys::*; -#[cfg(test)] +#[cfg(any(test, doctest))] mod tests; diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index d5b96975..64d6b567 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -83,6 +83,8 @@ async fn test_light_client_prover_talking() -> Result<()> { .register_service_with_random_keys(service_algorithm, "test_service") .commit(); + println!("builder accounts: {:?}", transaction_builder.get_account("test_service")); + let mut i = 0; prover.clone().validate_and_queue_update(register_service_req).await.unwrap(); @@ -100,6 +102,8 @@ async fn test_light_client_prover_talking() -> Result<()> { "test_service", ) .commit(); + + log::info!("builder accounts: {:?}", transaction_builder.get_account(&random_user_id)); match prover.clone().validate_and_queue_update(new_acc).await { Ok(_) => { i += 1; From 81c5ed81c57e4b78276553469ca581c5a6ddee8d Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 07:46:53 +0100 Subject: [PATCH 26/30] revert unused dep Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/keys/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/keys/src/lib.rs b/crates/keys/src/lib.rs index d8d775af..d85bc643 100644 --- a/crates/keys/src/lib.rs +++ b/crates/keys/src/lib.rs @@ -9,5 +9,5 @@ pub use signatures::*; pub use signing_keys::*; pub use verifying_keys::*; -#[cfg(any(test, doctest))] +#[cfg(test)] mod tests; From cae20ba7b32c3ad2251c914cd795634d29544b6f Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 07:50:19 +0100 Subject: [PATCH 27/30] fix: apply review Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 40 ++-------------------------------------- crates/tests/src/lib.rs | 3 ++- 2 files changed, 4 insertions(+), 39 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 1bb5223c..f3251b47 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -34,12 +34,6 @@ async fn main() -> std::io::Result<()> { Error::new(ErrorKind::NotFound, "celestia configuration not found") })?; - validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { - Error::new( - ErrorKind::InvalidInput, - "invalid verifying key algorithm format", - ) - })?; let verifying_key_algorithm = CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { Error::new( @@ -74,12 +68,6 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { - Error::new( - ErrorKind::InvalidInput, - "invalid verifying key algorithm format", - ) - })?; let verifying_key_algorithm = CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { Error::new( @@ -91,7 +79,7 @@ async fn main() -> std::io::Result<()> { verifying_key_algorithm, signing_key_chain.as_bytes(), ) - .map_err(|_| Error::new(ErrorKind::InvalidInput, "invalid signing key"))?; + .map_err(|e| Error::new(ErrorKind::InvalidInput, format!("Invalid signing key: {}", e)))?; let verifying_key = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { @@ -133,12 +121,6 @@ async fn main() -> std::io::Result<()> { .get_signing_key() .map_err(|e| Error::new(ErrorKind::Other, e.to_string()))?; - validate_algorithm(&config.verifying_key_algorithm).map_err(|_| { - Error::new( - ErrorKind::InvalidInput, - "invalid verifying key algorithm format", - ) - })?; let verifying_key_algorithm = CryptoAlgorithm::from_str(&config.verifying_key_algorithm).map_err(|_| { Error::new( @@ -150,7 +132,7 @@ async fn main() -> std::io::Result<()> { verifying_key_algorithm, signing_key_chain.as_bytes(), ) - .map_err(|_| Error::new(ErrorKind::InvalidInput, "invalid signing key"))?; + .map_err(|e| Error::new(ErrorKind::InvalidInput, format!("Invalid signing key: {}", e)))?; let prover_vk = config .verifying_key @@ -182,21 +164,3 @@ async fn main() -> std::io::Result<()> { node.start().await.map_err(|e| Error::new(ErrorKind::Other, e.to_string())) } - -fn validate_algorithm(algorithm: &str) -> Result<&str, Error> { - if algorithm.is_empty() { - return Err(Error::new( - ErrorKind::InvalidInput, - "verifying key algorithm is required", - )); - } - - if CryptoAlgorithm::from_str(algorithm).is_err() { - return Err(Error::new( - ErrorKind::InvalidInput, - "invalid verifying key algorithm format", - )); - } - - Ok(algorithm) -} diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index 64d6b567..82cbed7c 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -49,7 +49,8 @@ async fn test_light_client_prover_talking() -> Result<()> { let bridge_da_layer = Arc::new(CelestiaConnection::new(&bridge_cfg, None).await.unwrap()); let lc_da_layer = Arc::new(CelestiaConnection::new(&lc_cfg, None).await.unwrap()); let db = setup_db(); - let signing_key = SigningKey::new_with_algorithm(prover_algorithm).unwrap(); + let signing_key = SigningKey::new_with_algorithm(prover_algorithm) + .map_err(|e| anyhow::anyhow!("Failed to generate signing key: {}", e))?; let pubkey = signing_key.verifying_key(); let prover_cfg = prism_prover::Config { From a3814322f6d30d2ddb92628dd153f4ad29288e4e Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:13:46 +0100 Subject: [PATCH 28/30] fix: remove debugging message Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/tests/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/tests/src/lib.rs b/crates/tests/src/lib.rs index 82cbed7c..17c6d6ef 100644 --- a/crates/tests/src/lib.rs +++ b/crates/tests/src/lib.rs @@ -84,8 +84,6 @@ async fn test_light_client_prover_talking() -> Result<()> { .register_service_with_random_keys(service_algorithm, "test_service") .commit(); - println!("builder accounts: {:?}", transaction_builder.get_account("test_service")); - let mut i = 0; prover.clone().validate_and_queue_update(register_service_req).await.unwrap(); From 0c529b423343ac444e0b469350570ac05d9227a3 Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:15:19 +0100 Subject: [PATCH 29/30] feat: add rust comment Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/cfg.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/cli/src/cfg.rs b/crates/cli/src/cfg.rs index 390b1111..afe153d7 100644 --- a/crates/cli/src/cfg.rs +++ b/crates/cli/src/cfg.rs @@ -36,7 +36,9 @@ pub struct CommandArgs { #[arg(long)] verifying_key: Option, - /// Can be one of: ed25519, secp256k1, secp256r1 + /// The algorithm used for the verifying key. + /// + /// Can be one of: `ed25519`, `secp256k1`, `secp256r1`. #[arg(long, default_value = "ed25519")] verifying_key_algorithm: Option, From 68c95799cd22b4c86539013414f16fc13001b9fc Mon Sep 17 00:00:00 2001 From: Smuu <18609909+Smuu@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:43:42 +0100 Subject: [PATCH 30/30] fix: remove logging key Signed-off-by: Smuu <18609909+Smuu@users.noreply.github.com> --- crates/cli/src/main.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index f3251b47..4361851c 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -91,8 +91,6 @@ async fn main() -> std::io::Result<()> { start_height: config.celestia_config.unwrap_or_default().start_height, }; - info!("prover verifying key: {}", prover_cfg.verifying_key.clone()); - Arc::new( Prover::new(Arc::new(Box::new(redis_connections)), da, &prover_cfg).map_err( |e| {