diff --git a/crates/vdf/Cargo.toml b/crates/vdf/Cargo.toml index 67c01bb..b74142d 100644 --- a/crates/vdf/Cargo.toml +++ b/crates/vdf/Cargo.toml @@ -29,7 +29,7 @@ name = "vdf" [dependencies] classgroup = { path = "../classgroup", version = "^0.1.0" } num-traits = "0.2" -sha2 = "0.8" +sha2 = "0.10.8" bit-vec = "0.8.0" uniffi = { version= "0.25", features = ["cli"]} diff --git a/crates/vdf/src/create_discriminant.rs b/crates/vdf/src/create_discriminant.rs index 4297ed6..c284286 100644 --- a/crates/vdf/src/create_discriminant.rs +++ b/crates/vdf/src/create_discriminant.rs @@ -30,7 +30,7 @@ include!(concat!(env!("OUT_DIR"), "/constants.rs")); use classgroup::BigNumExt; use num_traits::Zero; -use sha2::{digest::FixedOutput, Digest, Sha256}; +use sha2::{digest::Digest, Sha256}; use std::u16; fn random_bytes_from_seed(seed: &[u8], byte_count: usize) -> Vec { @@ -39,10 +39,10 @@ fn random_bytes_from_seed(seed: &[u8], byte_count: usize) -> Vec { let mut extra: u16 = 0; while blob.len() < byte_count { let mut hasher = Sha256::new(); - hasher.input(seed); + hasher.update(seed); let extra_bits: [u8; 2] = [((extra & 0xFF00) >> 8) as _, (extra & 0xFF) as _]; - hasher.input(&extra_bits); - blob.extend_from_slice(&hasher.fixed_result()[..]); + hasher.update(&extra_bits); + blob.extend_from_slice(&hasher.finalize()[..]); extra += 1; } blob.resize(byte_count, 0); diff --git a/crates/vdf/src/proof_pietrzak.rs b/crates/vdf/src/proof_pietrzak.rs index 786cecb..1c76c91 100644 --- a/crates/vdf/src/proof_pietrzak.rs +++ b/crates/vdf/src/proof_pietrzak.rs @@ -136,7 +136,7 @@ where for<'a, 'b> &'a T: std::ops::Mul<&'b T, Output = T>, for<'a, 'b> &'a T::BigNum: std::ops::Mul<&'b T::BigNum, Output = T::BigNum>, { - use sha2::{digest::FixedOutput, Digest, Sha256}; + use sha2::{digest::Digest, Sha256}; let size = (int_size_bits + 16) >> 4; let mut v = Vec::with_capacity(size * 2); @@ -146,9 +146,9 @@ where let mut hasher = Sha256::new(); for i in &[&x, &y, &sqrt_mu] { i.serialize(&mut v).expect(super::INCORRECT_BUFFER_SIZE); - hasher.input(&v); + hasher.update(&v); } - let res = hasher.fixed_result(); + let res = hasher.finalize(); T::unsigned_deserialize_bignum(&res[..16]) } diff --git a/crates/vdf/src/proof_wesolowski.rs b/crates/vdf/src/proof_wesolowski.rs index bbc72b5..688df38 100644 --- a/crates/vdf/src/proof_wesolowski.rs +++ b/crates/vdf/src/proof_wesolowski.rs @@ -14,9 +14,9 @@ use super::proof_of_time::{iterate_squarings, serialize}; use classgroup::{gmp_classgroup::GmpClassGroup, BigNum, BigNumExt, ClassGroup}; -use sha2::{digest::FixedOutput, Digest, Sha256}; -use std::{cmp::Eq, collections::HashMap, hash::Hash, mem, u64, usize}; +use sha2::{Digest, Sha256}; use std::convert::TryInto; +use std::{cmp::Eq, collections::HashMap, hash::Hash, mem, u64, usize}; #[derive(Debug, Clone)] pub struct WesolowskiVDF { @@ -114,13 +114,13 @@ fn hash_prime(seed: &[&[u8]], t: u32) -> T { let mut j = 0u64; loop { let mut hasher = Sha256::new(); - hasher.input(b"prime"); - hasher.input(u64_to_bytes(j)); + hasher.update(b"prime"); + hasher.update(u64_to_bytes(j)); for i in seed { - hasher.input(i); + hasher.update(i); } - hasher.input(t.to_be_bytes()); - let n = T::from(&hasher.fixed_result()[..16]); + hasher.update(t.to_be_bytes()); + let n = T::from(&hasher.finalize()[..16]); if n.probab_prime(1) { break n; }