diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-04-14 11:51:36 +0300 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-04-14 13:40:57 +0300 |
| commit | c87a637465126176ae361e0b9ce7893e279e86ce (patch) | |
| tree | d050c0481af6994bcf84a395ad3f685358135adf /guests/keccak/src | |
| parent | 8ce46210fd8936e4a20b94374dd9eb0c8892deb5 (diff) | |
| download | zkVMs-benchmarks-c87a637465126176ae361e0b9ce7893e279e86ce.tar zkVMs-benchmarks-c87a637465126176ae361e0b9ce7893e279e86ce.tar.gz zkVMs-benchmarks-c87a637465126176ae361e0b9ce7893e279e86ce.zip | |
feat(guests/keccak): Add ZKM precompile function call
Diffstat (limited to 'guests/keccak/src')
| -rw-r--r-- | guests/keccak/src/lib.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/guests/keccak/src/lib.rs b/guests/keccak/src/lib.rs index 10815f4..4808442 100644 --- a/guests/keccak/src/lib.rs +++ b/guests/keccak/src/lib.rs @@ -5,13 +5,22 @@ extern crate alloc; #[cfg(feature = "no_std")] use alloc::vec::Vec; +#[cfg(feature = "zkm")] +use zkm_runtime::*; + use sha3::{Digest, Keccak256}; #[guests_macro::proving_entrypoint] pub fn main(secret: Vec<u8>, hash: Vec<u8>) -> bool { - let mut hasher = Keccak256::new(); - hasher.update(secret); - let result = hasher.finalize(); + #[cfg(feature = "zkm")] + let result = zkm_runtime::io::keccak(&secret.as_slice()); + + #[cfg(not(any(feature = "zkm")))] + let result = { + let mut hasher = Keccak256::new(); + hasher.update(secret); + hasher.finalize() + }; let output: [u8; 32] = result.into(); |
