add padding in constants generation
arnaucube root@arnaucube.com
Fri, 11 Oct 2019 14:46:37 +0900
2 files changed,
10 insertions(+),
1 deletions(-)
M
Cargo.toml
→
Cargo.toml
@@ -5,6 +5,8 @@ authors = ["arnaucube <root@arnaucube.com>"]
edition = "2018" license = "GPL-3.0" description = "MIMC7 hash implementation" +repository = "https://github.com/arnaucube/mimc-rs" +readme = "README.md" [dependencies] num = "0.2.0"
M
src/lib.rs
→
src/lib.rs
@@ -64,15 +64,22 @@ keccak.finalize(&mut h);
let mut c = BigInt::from_bytes_be(Sign::Plus, &h); for _ in 1..n_rounds { + let (_, c_bytes) = c.to_bytes_be(); + let mut c_bytes32: [u8;32] = [0;32]; + let diff = c_bytes32.len() - c_bytes.len(); + c_bytes32[diff..].copy_from_slice(&c_bytes[..]); + let mut keccak = Keccak::new_keccak256(); let mut h = [0u8; 32]; - let (_, c_bytes) = c.to_bytes_be(); keccak.update(&c_bytes[..]); keccak.finalize(&mut h); c = BigInt::from_bytes_be(Sign::Plus, &h); + let n = modulus(&c, &r); cts.push(n); } + // let l = cts.len(); + // cts[l-1] = Zero::zero(); cts }