diff --git a/fhevm-engine/Cargo.lock b/fhevm-engine/Cargo.lock index ff7f5067..98e8aa7b 100644 --- a/fhevm-engine/Cargo.lock +++ b/fhevm-engine/Cargo.lock @@ -586,12 +586,12 @@ dependencies = [ "clap", "fhevm-engine-common", "hex", - "keccak-asm", "lazy_static", "lru", "prost", "regex", "serde_json", + "sha3", "sqlx", "strum", "testcontainers", @@ -1409,16 +1409,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "keccak-asm" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" -dependencies = [ - "digest", - "sha3-asm", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -2339,16 +2329,6 @@ dependencies = [ "keccak", ] -[[package]] -name = "sha3-asm" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" -dependencies = [ - "cc", - "cfg-if", -] - [[package]] name = "shlex" version = "1.3.0" diff --git a/fhevm-engine/Cargo.toml b/fhevm-engine/Cargo.toml index 9b93404d..05c3a680 100644 --- a/fhevm-engine/Cargo.toml +++ b/fhevm-engine/Cargo.toml @@ -4,5 +4,4 @@ members = ["coprocessor", "executor", "fhevm-engine-common"] [workspace.dependencies] tfhe = { version = "0.8.0-alpha.2", features = ["boolean", "shortint", "integer", "aarch64-unix", "zk-pok"] } -tfhe-zk-pok = "0.2.1" clap = { version = "4.5", features = ["derive"] } diff --git a/fhevm-engine/coprocessor/Cargo.toml b/fhevm-engine/coprocessor/Cargo.toml index fd7c9c28..81ad6a63 100644 --- a/fhevm-engine/coprocessor/Cargo.toml +++ b/fhevm-engine/coprocessor/Cargo.toml @@ -25,7 +25,7 @@ bigdecimal = "0.4" fhevm-engine-common = { path = "../fhevm-engine-common" } strum = { version = "0.26", features = ["derive"] } bincode = "1.3.3" -keccak-asm = "0.1.3" +sha3 = "0.10.8" [dev-dependencies] testcontainers = "0.21" diff --git a/fhevm-engine/coprocessor/src/server.rs b/fhevm-engine/coprocessor/src/server.rs index f16b15fa..4172cced 100644 --- a/fhevm-engine/coprocessor/src/server.rs +++ b/fhevm-engine/coprocessor/src/server.rs @@ -5,7 +5,7 @@ use crate::db_queries::{check_if_api_key_is_valid, check_if_ciphertexts_exist_in use crate::server::coprocessor::GenericResponse; use fhevm_engine_common::tfhe_ops::{check_fhe_operand_types, current_ciphertext_version, debug_trivial_encrypt_be_bytes, deserialize_fhe_ciphertext, try_expand_ciphertext_list}; use fhevm_engine_common::types::{FhevmError, SupportedFheCiphertexts}; -use keccak_asm::{Digest, Keccak256}; +use sha3::{Digest, Keccak256}; use crate::types::{CoprocessorError, TfheTenantKeys}; use crate::utils::sort_computations_by_dependencies; use coprocessor::async_computation_input::Input; @@ -289,12 +289,15 @@ impl coprocessor::fhevm_coprocessor_server::FhevmCoprocessor for CoprocessorServ }; for (ct_idx, the_ct) in corresponding_unpacked.iter().enumerate() { - let mut handle: [u8; 32] = [0; 32]; - handle.copy_from_slice(&blob_hash); - // this must succeed because we don't allow - // more handles than u8 size let (serialized_type, serialized_ct) = the_ct.serialize(); let ciphertext_version = current_ciphertext_version(); + let mut handle_hash = Keccak256::new(); + handle_hash.update(&blob_hash); + handle_hash.update(&[idx as u8]); + let mut handle = handle_hash.finalize().to_vec(); + assert_eq!(handle.len(), 32); + // idx cast to u8 must succeed because we don't allow + // more handles than u8 size handle[29] = idx as u8; handle[30] = serialized_type as u8; handle[31] = ciphertext_version as u8;