mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-14 03:59:30 +00:00
addressed comments
This commit is contained in:
parent
8dd0919aa2
commit
f4982a896d
@ -114,11 +114,6 @@ impl HashableBlockData {
|
|||||||
bedrock_parent_id,
|
bedrock_parent_id,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
|
||||||
pub fn block_hash(&self) -> BlockHash {
|
|
||||||
OwnHasher::hash(&borsh::to_vec(&self).unwrap())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<Block> for HashableBlockData {
|
impl From<Block> for HashableBlockData {
|
||||||
|
|||||||
@ -122,15 +122,16 @@ impl Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[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(
|
let mut bytes = Vec::with_capacity(
|
||||||
PREFIX
|
PREFIX
|
||||||
.len()
|
.len()
|
||||||
.checked_add(self.to_bytes().len())
|
.checked_add(msg.len())
|
||||||
.expect("length overflow"),
|
.expect("length overflow"),
|
||||||
);
|
);
|
||||||
bytes.extend_from_slice(PREFIX);
|
bytes.extend_from_slice(PREFIX);
|
||||||
bytes.extend_from_slice(&self.to_bytes());
|
bytes.extend_from_slice(&msg);
|
||||||
|
|
||||||
Sha256::digest(bytes).into()
|
Sha256::digest(bytes).into()
|
||||||
}
|
}
|
||||||
@ -188,7 +189,7 @@ pub mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn hash_message_privacy_pinned() {
|
fn hash_privacy_pinned() {
|
||||||
let msg = Message {
|
let msg = Message {
|
||||||
public_account_ids: vec![AccountId::new([42_u8; 32])],
|
public_account_ids: vec![AccountId::new([42_u8; 32])],
|
||||||
nonces: vec![Nonce(5)],
|
nonces: vec![Nonce(5)],
|
||||||
@ -224,7 +225,7 @@ pub mod tests {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
borsh::to_vec(&msg).unwrap(),
|
borsh::to_vec(&msg).unwrap(),
|
||||||
expected_borsh,
|
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());
|
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();
|
let expected_hash: [u8; 32] = Sha256::digest(&preimage).into();
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
msg.hash_message(),
|
msg.hash(),
|
||||||
expected_hash,
|
expected_hash,
|
||||||
"`privacy_preserving_transaction::hash_message()`: serialization has changed"
|
"`privacy_preserving_transaction::hash()`: serialization has changed"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ pub struct WitnessSet {
|
|||||||
impl WitnessSet {
|
impl WitnessSet {
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn for_message(message: &Message, proof: Proof, private_keys: &[&PrivateKey]) -> Self {
|
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
|
let signatures_and_public_keys = private_keys
|
||||||
.iter()
|
.iter()
|
||||||
.map(|&key| {
|
.map(|&key| {
|
||||||
@ -32,7 +32,7 @@ impl WitnessSet {
|
|||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn signatures_are_valid_for(&self, message: &Message) -> bool {
|
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() {
|
for (signature, public_key) in self.signatures_and_public_keys() {
|
||||||
if !signature.is_valid_for(&message_hash, public_key) {
|
if !signature.is_valid_for(&message_hash, public_key) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -68,7 +68,7 @@ impl Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn hash_message(&self) -> [u8; 32] {
|
pub fn hash(&self) -> [u8; 32] {
|
||||||
let mut bytes = Vec::with_capacity(
|
let mut bytes = Vec::with_capacity(
|
||||||
PREFIX
|
PREFIX
|
||||||
.len()
|
.len()
|
||||||
@ -90,7 +90,7 @@ mod tests {
|
|||||||
use super::{Message, PREFIX};
|
use super::{Message, PREFIX};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn hash_message_public_pinned() {
|
fn hash_public_pinned() {
|
||||||
let msg = Message::new_preserialized(
|
let msg = Message::new_preserialized(
|
||||||
[1_u32; 8],
|
[1_u32; 8],
|
||||||
vec![AccountId::new([42_u8; 32])],
|
vec![AccountId::new([42_u8; 32])],
|
||||||
@ -122,7 +122,7 @@ mod tests {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
borsh::to_vec(&msg).unwrap(),
|
borsh::to_vec(&msg).unwrap(),
|
||||||
expected_borsh,
|
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());
|
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();
|
let expected_hash: [u8; 32] = Sha256::digest(&preimage).into();
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
msg.hash_message(),
|
msg.hash(),
|
||||||
expected_hash,
|
expected_hash,
|
||||||
"`public_transaction::hash_message()`: serialization has changed"
|
"`public_transaction::hash()`: serialization has changed"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ pub struct WitnessSet {
|
|||||||
impl WitnessSet {
|
impl WitnessSet {
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn for_message(message: &Message, private_keys: &[&PrivateKey]) -> Self {
|
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
|
let signatures_and_public_keys = private_keys
|
||||||
.iter()
|
.iter()
|
||||||
.map(|&key| {
|
.map(|&key| {
|
||||||
@ -27,7 +27,7 @@ impl WitnessSet {
|
|||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn is_valid_for(&self, message: &Message) -> bool {
|
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() {
|
for (signature, public_key) in self.signatures_and_public_keys() {
|
||||||
if !signature.is_valid_for(&message_hash, public_key) {
|
if !signature.is_valid_for(&message_hash, public_key) {
|
||||||
return false;
|
return false;
|
||||||
@ -75,7 +75,7 @@ mod tests {
|
|||||||
|
|
||||||
assert_eq!(witness_set.signatures_and_public_keys.len(), 2);
|
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
|
for ((signature, public_key), expected_public_key) in witness_set
|
||||||
.signatures_and_public_keys
|
.signatures_and_public_keys
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
|||||||
@ -36,9 +36,9 @@ impl FromStr for Signature {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Signature {
|
impl Signature {
|
||||||
#[must_use]
|
|
||||||
/// This function expects the incoming message to be prehashed to be pre-2022 BIP-340/Keycard
|
/// This function expects the incoming message to be prehashed to be pre-2022 BIP-340/Keycard
|
||||||
/// compatible.
|
/// compatible.
|
||||||
|
#[must_use]
|
||||||
pub fn new(key: &PrivateKey, message: &[u8; 32]) -> Self {
|
pub fn new(key: &PrivateKey, message: &[u8; 32]) -> Self {
|
||||||
let mut aux_random = [0_u8; 32];
|
let mut aux_random = [0_u8; 32];
|
||||||
OsRng.fill_bytes(&mut aux_random);
|
OsRng.fill_bytes(&mut aux_random);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user