Browse Source

Merge pull request #73 from 0xPolygonMiden/vlopes11-72-add-winter-hasher

feat: re-export winter-crypto Hasher, Digest & ElementHasher
al-gkr-basic-workflow
Bobbin Threadbare 2 years ago
committed by GitHub
parent
commit
c4eb4a6b98
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 11 deletions
  1. +4
    -0
      CHANGELOG.md
  2. +10
    -8
      Cargo.toml
  3. +3
    -0
      src/hash/blake/mod.rs
  4. +5
    -1
      src/hash/mod.rs
  5. +1
    -0
      src/hash/rpo/mod.rs
  6. +0
    -2
      src/lib.rs

+ 4
- 0
CHANGELOG.md

@ -1,3 +1,7 @@
## 0.1.4 (2023-02-22)
- Re-export winter-crypto Hasher, Digest & ElementHasher (#72)
## 0.1.3 (2023-02-20)
- Updated Winterfell dependency to v0.5.1 (#68)

+ 10
- 8
Cargo.toml

@ -1,14 +1,16 @@
[package]
name = "miden-crypto"
version = "0.1.3"
version = "0.1.5"
description="Miden Cryptographic primitives"
authors = ["miden contributors"]
readme="README.md"
readme = "README.md"
license = "MIT"
repository = "https://github.com/0xPolygonMiden/crypto"
documentation = "https://docs.rs/miden-crypto/0.1.3"
categories = ["cryptography", "no-std"]
keywords = ["miden", "crypto", "hash", "merkle"]
edition = "2021"
rust-version = "1.67"
[[bench]]
name = "hash"
@ -23,12 +25,12 @@ default = ["blake3/default", "std", "winter_crypto/default", "winter_math/defaul
std = ["blake3/std", "winter_crypto/std", "winter_math/std", "winter_utils/std"]
[dependencies]
blake3 = { version = "1.0", default-features = false }
winter_crypto = { version = "0.5.1", package = "winter-crypto", default-features = false }
winter_math = { version = "0.5.1", package = "winter-math", default-features = false }
winter_utils = { version = "0.5.1", package = "winter-utils", default-features = false }
blake3 = { version = "1.3", default-features = false }
winter_crypto = { version = "0.5", package = "winter-crypto", default-features = false }
winter_math = { version = "0.5", package = "winter-math", default-features = false }
winter_utils = { version = "0.5", package = "winter-utils", default-features = false }
[dev-dependencies]
criterion = { version = "0.4", features = ["html_reports"] }
proptest = "1.0.0"
rand_utils = { version = "0.4", package = "winter-rand-utils" }
proptest = "1.1.0"
rand_utils = { version = "0.5", package = "winter-rand-utils" }

+ 3
- 0
src/hash/blake/mod.rs

@ -78,6 +78,7 @@ impl Digest for Blake3Digest {
// ================================================================================================
/// 256-bit output blake3 hasher.
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct Blake3_256;
impl Hasher for Blake3_256 {
@ -141,6 +142,7 @@ impl Blake3_256 {
// ================================================================================================
/// 192-bit output blake3 hasher.
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct Blake3_192;
impl Hasher for Blake3_192 {
@ -204,6 +206,7 @@ impl Blake3_192 {
// ================================================================================================
/// 160-bit output blake3 hasher.
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct Blake3_160;
impl Hasher for Blake3_160 {

+ 5
- 1
src/hash/mod.rs

@ -1,5 +1,9 @@
use super::{Felt, FieldElement, StarkField, ONE, ZERO};
use winter_crypto::{Digest, ElementHasher, Hasher};
pub mod blake;
pub mod rpo;
// RE-EXPORTS
// ================================================================================================
pub use winter_crypto::{Digest, ElementHasher, Hasher};

+ 1
- 0
src/hash/rpo/mod.rs

@ -88,6 +88,7 @@ const INV_ALPHA: u64 = 10540996611094048183;
/// to deserialize them into field elements and then hash them using
/// [hash_elements()](Rpo256::hash_elements) function rather then hashing the serialized bytes
/// using [hash()](Rpo256::hash) function.
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct Rpo256();
impl Hasher for Rpo256 {

+ 0
- 2
src/lib.rs

@ -11,9 +11,7 @@ pub mod merkle;
// ================================================================================================
pub use winter_crypto::{RandomCoin, RandomCoinError};
pub use winter_math::{fields::f64::BaseElement as Felt, FieldElement, StarkField};
pub mod utils {
pub use winter_utils::{
collections, string, uninit_vector, ByteReader, ByteWriter, Deserializable,

Loading…
Cancel
Save