arnaucube
arnaucube/mimc-rsPublic Self-hosted repository
add padding in constants generation
arnaucube root@arnaucube.com
Fri, 11 Oct 2019 14:46:37 +0900
commit

3028cd797555345d170c99c7ceb9017673281303

parent

be153c7ac294d166a5d8c3ef90a3a3a46072eae2

2 files changed, 10 insertions(+), 1 deletions(-)

jump to
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 }