diff --git a/common/src/block.rs b/common/src/block.rs index 3f354c2d..fbc4c9a6 100644 --- a/common/src/block.rs +++ b/common/src/block.rs @@ -114,11 +114,6 @@ impl HashableBlockData { bedrock_parent_id, } } - - #[must_use] - pub fn block_hash(&self) -> BlockHash { - OwnHasher::hash(&borsh::to_vec(&self).unwrap()) - } } impl From for HashableBlockData { diff --git a/nssa/src/privacy_preserving_transaction/message.rs b/nssa/src/privacy_preserving_transaction/message.rs index 3b882ebd..df15fd91 100644 --- a/nssa/src/privacy_preserving_transaction/message.rs +++ b/nssa/src/privacy_preserving_transaction/message.rs @@ -122,15 +122,16 @@ impl Message { } #[must_use] - pub fn hash_message(&self) -> [u8; 32] { + pub fn hash(&self) -> [u8; 32] { + let msg = self.to_bytes(); let mut bytes = Vec::with_capacity( PREFIX .len() - .checked_add(self.to_bytes().len()) + .checked_add(msg.len()) .expect("length overflow"), ); bytes.extend_from_slice(PREFIX); - bytes.extend_from_slice(&self.to_bytes()); + bytes.extend_from_slice(&msg); Sha256::digest(bytes).into() } @@ -188,7 +189,7 @@ pub mod tests { } #[test] - fn hash_message_privacy_pinned() { + fn hash_privacy_pinned() { let msg = Message { public_account_ids: vec![AccountId::new([42_u8; 32])], nonces: vec![Nonce(5)], @@ -224,7 +225,7 @@ pub mod tests { assert_eq!( borsh::to_vec(&msg).unwrap(), expected_borsh, - "`privacy_preserving_transaction::hash_message()`: expected borsh order has changed" + "`privacy_preserving_transaction::hash()`: expected borsh order has changed" ); let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len()); @@ -233,9 +234,9 @@ pub mod tests { let expected_hash: [u8; 32] = Sha256::digest(&preimage).into(); assert_eq!( - msg.hash_message(), + msg.hash(), expected_hash, - "`privacy_preserving_transaction::hash_message()`: serialization has changed" + "`privacy_preserving_transaction::hash()`: serialization has changed" ); } diff --git a/nssa/src/privacy_preserving_transaction/witness_set.rs b/nssa/src/privacy_preserving_transaction/witness_set.rs index 643ac5f5..e17df90c 100644 --- a/nssa/src/privacy_preserving_transaction/witness_set.rs +++ b/nssa/src/privacy_preserving_transaction/witness_set.rs @@ -14,7 +14,7 @@ pub struct WitnessSet { impl WitnessSet { #[must_use] pub fn for_message(message: &Message, proof: Proof, private_keys: &[&PrivateKey]) -> Self { - let message_hash = message.hash_message(); + let message_hash = message.hash(); let signatures_and_public_keys = private_keys .iter() .map(|&key| { @@ -32,7 +32,7 @@ impl WitnessSet { #[must_use] pub fn signatures_are_valid_for(&self, message: &Message) -> bool { - let message_hash = message.hash_message(); + let message_hash = message.hash(); for (signature, public_key) in self.signatures_and_public_keys() { if !signature.is_valid_for(&message_hash, public_key) { return false; diff --git a/nssa/src/public_transaction/message.rs b/nssa/src/public_transaction/message.rs index f71fb372..3ab7d74c 100644 --- a/nssa/src/public_transaction/message.rs +++ b/nssa/src/public_transaction/message.rs @@ -68,7 +68,7 @@ impl Message { } #[must_use] - pub fn hash_message(&self) -> [u8; 32] { + pub fn hash(&self) -> [u8; 32] { let mut bytes = Vec::with_capacity( PREFIX .len() @@ -90,7 +90,7 @@ mod tests { use super::{Message, PREFIX}; #[test] - fn hash_message_public_pinned() { + fn hash_public_pinned() { let msg = Message::new_preserialized( [1_u32; 8], vec![AccountId::new([42_u8; 32])], @@ -122,7 +122,7 @@ mod tests { assert_eq!( borsh::to_vec(&msg).unwrap(), expected_borsh, - "`public_transaction::hash_message()`: expected borsh order has changed" + "`public_transaction::hash()`: expected borsh order has changed" ); let mut preimage = Vec::with_capacity(PREFIX.len() + expected_borsh.len()); @@ -131,9 +131,9 @@ mod tests { let expected_hash: [u8; 32] = Sha256::digest(&preimage).into(); assert_eq!( - msg.hash_message(), + msg.hash(), expected_hash, - "`public_transaction::hash_message()`: serialization has changed" + "`public_transaction::hash()`: serialization has changed" ); } } diff --git a/nssa/src/public_transaction/witness_set.rs b/nssa/src/public_transaction/witness_set.rs index d6244617..1605f488 100644 --- a/nssa/src/public_transaction/witness_set.rs +++ b/nssa/src/public_transaction/witness_set.rs @@ -10,7 +10,7 @@ pub struct WitnessSet { impl WitnessSet { #[must_use] pub fn for_message(message: &Message, private_keys: &[&PrivateKey]) -> Self { - let message_hash = message.hash_message(); + let message_hash = message.hash(); let signatures_and_public_keys = private_keys .iter() .map(|&key| { @@ -27,7 +27,7 @@ impl WitnessSet { #[must_use] pub fn is_valid_for(&self, message: &Message) -> bool { - let message_hash = message.hash_message(); + let message_hash = message.hash(); for (signature, public_key) in self.signatures_and_public_keys() { if !signature.is_valid_for(&message_hash, public_key) { return false; @@ -75,7 +75,7 @@ mod tests { assert_eq!(witness_set.signatures_and_public_keys.len(), 2); - let message_bytes = message.hash_message(); + let message_bytes = message.hash(); for ((signature, public_key), expected_public_key) in witness_set .signatures_and_public_keys .into_iter() diff --git a/nssa/src/signature/mod.rs b/nssa/src/signature/mod.rs index 19daca2e..a46b1ff5 100644 --- a/nssa/src/signature/mod.rs +++ b/nssa/src/signature/mod.rs @@ -36,9 +36,9 @@ impl FromStr for Signature { } impl Signature { - #[must_use] /// This function expects the incoming message to be prehashed to be pre-2022 BIP-340/Keycard /// compatible. + #[must_use] pub fn new(key: &PrivateKey, message: &[u8; 32]) -> Self { let mut aux_random = [0_u8; 32]; OsRng.fill_bytes(&mut aux_random);