fix nits
This commit is contained in:
parent
6e90c9c178
commit
17f13dbe9f
5 changed files with 48 additions and 31 deletions
|
@ -1,12 +1,20 @@
|
|||
[package]
|
||||
name = "crypto"
|
||||
version = "0.1.0"
|
||||
description="Miden Cryptographic primitives"
|
||||
authors = ["miden contributors"]
|
||||
readme="README.md"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/0xPolygonMiden/crypto"
|
||||
categories = ["cryptography", "no-std"]
|
||||
keywords = ["miden", "crypto", "hash", "merkle"]
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
winterfell = { git = "https://github.com/novifinancial/winterfell"}
|
||||
winter_utils = { version = "0.4", package = "winter-utils" }
|
||||
rand_utils = { version = "0.4", package = "winter-rand-utils" }
|
||||
proptest = "1.0.0"
|
||||
|
||||
|
||||
[dev-dependencies]
|
||||
proptest = "1.0.0"
|
|
@ -1 +1,32 @@
|
|||
use winterfell::crypto::{ElementHasher};
|
||||
use winterfell::math::StarkField;
|
||||
use winterfell::crypto::Hasher as HashFn;
|
||||
use winterfell::crypto::hashers::Rp64_256 as Hasher;
|
||||
|
||||
mod rpo;
|
||||
pub use rpo::Rpo;
|
||||
|
||||
|
||||
// TYPE ALIASES
|
||||
// ================================================================================================
|
||||
|
||||
pub type Digest = <Hasher as HashFn>::Digest;
|
||||
|
||||
|
||||
// HELPER FUNCTIONS
|
||||
// ================================================================================================
|
||||
|
||||
#[inline(always)]
|
||||
fn exp_acc<B: StarkField, const N: usize, const M: usize>(base: [B; N], tail: [B; N]) -> [B; N] {
|
||||
let mut result = base;
|
||||
for _ in 0..M {
|
||||
result.iter_mut().for_each(|r| *r = r.square());
|
||||
}
|
||||
result.iter_mut().zip(tail).for_each(|(r, t)| *r *= t);
|
||||
result
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub fn merge(values: &[Digest; 2]) -> Digest {
|
||||
Hasher::merge(values)
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
use std::collections::BTreeMap;
|
||||
use winter_utils::collections::BTreeMap;
|
||||
|
||||
use super::{merge, Felt, FieldElement, MerkleError, Word};
|
||||
use super::{Felt, FieldElement, MerkleError, Word};
|
||||
use crate::hash::merge;
|
||||
|
||||
// MERKLE PATH SET
|
||||
// ================================================================================================
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
use core::slice;
|
||||
|
||||
use super::Digest;
|
||||
use winter_utils::uninit_vector;
|
||||
use winterfell::math::log2;
|
||||
|
||||
use crate::{Felt, FieldElement, Word};
|
||||
|
||||
use super::{merge, MerkleError};
|
||||
use crate::{Felt, FieldElement, Word, hash::{merge,Digest}};
|
||||
use super::MerkleError;
|
||||
|
||||
// MERKLE TREE
|
||||
// ================================================================================================
|
||||
|
|
|
@ -1,28 +1,8 @@
|
|||
pub mod merkle_path_set;
|
||||
pub mod merkle_tree;
|
||||
|
||||
use winterfell::crypto::Hasher as HashFn;
|
||||
use crate::{Felt, FieldElement, Word};
|
||||
|
||||
pub use winterfell::crypto::hashers::Rp64_256 as Hasher;
|
||||
pub use winterfell::math::{
|
||||
fields::{f64::BaseElement as Felt, QuadExtension},
|
||||
ExtensionOf, FieldElement, StarkField,
|
||||
};
|
||||
|
||||
// TYPE ALIASES
|
||||
// ================================================================================================
|
||||
|
||||
pub type Word = [Felt; 4];
|
||||
pub type Digest = <Hasher as HashFn>::Digest;
|
||||
|
||||
// PASS-THROUGH FUNCTIONS
|
||||
// ================================================================================================
|
||||
|
||||
/// Returns a hash of two digests. This method is intended for use in construction of Merkle trees.
|
||||
#[inline(always)]
|
||||
pub fn merge(values: &[Digest; 2]) -> Digest {
|
||||
Hasher::merge(values)
|
||||
}
|
||||
|
||||
// ERRORS
|
||||
// ================================================================================================
|
||||
|
|
Loading…
Add table
Reference in a new issue