mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-04 23:03:08 +00:00
addressed comments
This commit is contained in:
parent
83c959d91e
commit
e482bc7f0c
@ -10,7 +10,6 @@ plonky2_util = { path = "../util" }
|
||||
eth-trie-utils = { git = "https://github.com/mir-protocol/eth-trie-utils.git", rev = "dd3595b4ba7923f8d465450d210f17a2b4e20f96" }
|
||||
maybe_rayon = { path = "../maybe_rayon" }
|
||||
anyhow = "1.0.40"
|
||||
ascii = "1.0.0"
|
||||
env_logger = "0.9.0"
|
||||
ethereum-types = "0.14.0"
|
||||
hex = { version = "0.4.3", optional = true }
|
||||
|
||||
@ -136,13 +136,7 @@ sha2_compression_loop:
|
||||
// stack: sha2_constants_k + 4*i, W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
%mload_kernel_code_u32
|
||||
// stack: K[i], W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
DUP10
|
||||
// stack: h[i], K[i], W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
DUP10
|
||||
// stack: g[i], h[i], K[i], W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
DUP10
|
||||
// stack: f[i], g[i], h[i], K[i], W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
DUP10
|
||||
%stack ((start: 6), e, f, g, h, (end: 5)) -> (e, f, g, h, start, e, f, g, h, end)
|
||||
// stack: e[i], f[i], g[i], h[i], K[i], W[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
%sha2_temp_word1
|
||||
// stack: T1[i], a[i], b[i], c[i], d[i], e[i], f[i], g[i], h[i], num_blocks, scratch_space_addr, message_schedule_addr, i, retdest
|
||||
|
||||
@ -9,6 +9,11 @@ global sha2_store:
|
||||
PUSH 1
|
||||
// stack: addr=1, counter=num_bytes, x[0], x[1], x[2], ... , x[num_bytes-1], retdest
|
||||
sha2_store_loop:
|
||||
// stack: addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest
|
||||
DUP2
|
||||
// stack: counter, addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest
|
||||
ISZERO
|
||||
%jumpi(sha2_store_end)
|
||||
// stack: addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest
|
||||
DUP1
|
||||
// stack: addr, addr, counter, x[num_bytes-counter], ... , x[num_bytes-1], retdest
|
||||
@ -20,18 +25,13 @@ sha2_store_loop:
|
||||
// stack: counter, addr, ... , x[num_bytes-1], retdest
|
||||
%decrement
|
||||
// stack: counter-1, addr, ... , x[num_bytes-1], retdest
|
||||
DUP1
|
||||
// stack: counter-1, counter-1, addr, ... , x[num_bytes-1], retdest
|
||||
ISZERO
|
||||
%jumpi(sha2_store_end)
|
||||
// stack: counter-1, addr, ... , x[num_bytes-1], retdest
|
||||
SWAP1
|
||||
// stack: addr, counter-1, ... , x[num_bytes-1], retdest
|
||||
%increment
|
||||
// stack: addr+1, counter-1, ... , x[num_bytes-1], retdest
|
||||
%jump(sha2_store_loop)
|
||||
sha2_store_end:
|
||||
// stack: counter=0, addr, retdest
|
||||
// stack: addr, counter, retdest
|
||||
%pop2
|
||||
// stack: retdest
|
||||
%jump(sha2_pad)
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
use std::str::FromStr;
|
||||
|
||||
use anyhow::Result;
|
||||
use ascii::AsciiStr;
|
||||
use ethereum_types::U256;
|
||||
use rand::distributions::Alphanumeric;
|
||||
use rand::{thread_rng, Rng};
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
@ -17,24 +15,14 @@ fn test_sha2() -> Result<()> {
|
||||
|
||||
let mut rng = thread_rng();
|
||||
|
||||
let num_bytes = rng.gen_range(1..10000);
|
||||
let message: String = rng
|
||||
.sample_iter(&Alphanumeric)
|
||||
.take(num_bytes)
|
||||
.map(char::from)
|
||||
.collect();
|
||||
dbg!(num_bytes);
|
||||
let num_bytes = rng.gen_range(0..10000);
|
||||
let message: Vec<u8> = (0..num_bytes).map(|_| rng.gen()).collect();
|
||||
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.update(message.clone());
|
||||
let expected = format!("{:02X}", hasher.finalize());
|
||||
|
||||
let bytes: Vec<U256> = AsciiStr::from_ascii(&message)
|
||||
.unwrap()
|
||||
.as_bytes()
|
||||
.iter()
|
||||
.map(|&x| U256::from(x as u32))
|
||||
.collect();
|
||||
let bytes: Vec<U256> = message.iter().map(|&x| U256::from(x as u32)).collect();
|
||||
|
||||
let mut initial_stack = vec![U256::from(num_bytes)];
|
||||
initial_stack.extend(bytes);
|
||||
@ -42,13 +30,11 @@ fn test_sha2() -> Result<()> {
|
||||
initial_stack.reverse();
|
||||
|
||||
let after_sha2 = run(&kernel.code, sha2, initial_stack, &kernel.prover_inputs)?;
|
||||
|
||||
let stack_after_sha2 = after_sha2.stack();
|
||||
|
||||
let result = stack_after_sha2[1];
|
||||
let actual = format!("{:02X}", result);
|
||||
dbg!(expected);
|
||||
dbg!(actual);
|
||||
|
||||
assert_eq!(expected, actual);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user