Browse Source

feat: re-export winter-crypto Hasher, Digest & ElementHasher

This commit introduces the re-export of the listed primitives.

They will be used inside Miden to report the security level of the
picked primitive, as well as other functionality.

closes #72
al-gkr-basic-workflow
Victor Lopez 2 years ago
parent
commit
35b255b5eb
No known key found for this signature in database GPG Key ID: 30561C13ED62BE9F
6 changed files with 15 additions and 5 deletions
  1. +4
    -0
      CHANGELOG.md
  2. +2
    -2
      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)

+ 2
- 2
Cargo.toml

@ -1,7 +1,7 @@
[package]
name = "miden-crypto"
version = "0.1.3"
description = "Miden Cryptographic primitives"
version = "0.1.5"
description="Miden Cryptographic primitives"
authors = ["miden contributors"]
readme = "README.md"
license = "MIT"

+ 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