aboutsummaryrefslogtreecommitdiff
path: root/guests/keccak/src
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-04-14 11:51:36 +0300
committerKamen Mladenov <kamen@syndamia.com>2025-04-14 13:40:57 +0300
commitc87a637465126176ae361e0b9ce7893e279e86ce (patch)
treed050c0481af6994bcf84a395ad3f685358135adf /guests/keccak/src
parent8ce46210fd8936e4a20b94374dd9eb0c8892deb5 (diff)
downloadzkVMs-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.rs15
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();