mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-21 18:37:26 +08:00
sha2 version bump for vdf
This commit is contained in:
parent
db13233805
commit
4fc5f2f49c
@ -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"]}
|
||||
|
||||
|
||||
@ -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<u8> {
|
||||
@ -39,10 +39,10 @@ fn random_bytes_from_seed(seed: &[u8], byte_count: usize) -> Vec<u8> {
|
||||
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);
|
||||
|
||||
@ -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])
|
||||
}
|
||||
|
||||
|
||||
@ -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<T: BigNum>(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;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user