diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..196833d307 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "kms-connector/kms-core"] + path = kms-connector/kms-core + url = git@github.com:zama-ai/kms-core.git diff --git a/kms-connector/Cargo.lock b/kms-connector/Cargo.lock index a062411f71..c9efa1af9b 100644 --- a/kms-connector/Cargo.lock +++ b/kms-connector/Cargo.lock @@ -28,6 +28,17 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "aes-prng" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49cccd49cb7034d6ee7db9ac3549bb3fb38ff17179d93b726efb974cc9ddafa9" +dependencies = [ + "aes", + "byteorder", + "rand 0.8.5", +] + [[package]] name = "ahash" version = "0.8.11" @@ -273,12 +284,12 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5189fa9a8797e92396bc4b4454c5f2073a4945f7c2b366af9af60f9536558f7a" +checksum = "3ccaa79753d7bf15f06399ea76922afbfaf8d18bebed9e8fc452984b4a90dcc9" dependencies = [ - "alloy-primitives 1.0.0", - "alloy-sol-type-parser 1.0.0", + "alloy-primitives 1.1.2", + "alloy-sol-type-parser 1.1.2", "serde", "serde_json", ] @@ -365,9 +376,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b98b99c1dcfbe74d7f0b31433ff215e7d1555e367d90e62db904f3c9d4ff53" +checksum = "18c35fc4b03ace65001676358ffbbaefe2a2b27ee50fe777c345082c7c888be8" dependencies = [ "alloy-rlp", "bytes", @@ -619,12 +630,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60fcfa26956bcb22f66ab13407115197f26ef23abca5b48d39a1946897382d74" +checksum = "8612e0658964d616344f199ab251a49d48113992d81b92dab93ed855faa66383" dependencies = [ - "alloy-sol-macro-expander 1.0.0", - "alloy-sol-macro-input 1.0.0", + "alloy-sol-macro-expander 1.1.2", + "alloy-sol-macro-input 1.1.2", "proc-macro-error2", "proc-macro2", "quote", @@ -652,11 +663,11 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a9b402f0013f1ff8c24066eeafc2207a8e52810a2b18b77776ce7fead5af41" +checksum = "7a384edac7283bc4c010a355fb648082860c04b826bb7a814c45263c8f304c74" dependencies = [ - "alloy-sol-macro-input 1.0.0", + "alloy-sol-macro-input 1.1.2", "const-hex", "heck", "indexmap 2.9.0", @@ -664,7 +675,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.100", - "syn-solidity 1.0.0", + "syn-solidity 1.1.2", "tiny-keccak", ] @@ -688,9 +699,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d02d61741337bb6b3f4899c2e3173fe17ffa2810e143d3b28acd953197c8dd79" +checksum = "0dd588c2d516da7deb421b8c166dc60b7ae31bca5beea29ab6621fcfa53d6ca5" dependencies = [ "const-hex", "dunce", @@ -699,7 +710,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.100", - "syn-solidity 1.0.0", + "syn-solidity 1.1.2", ] [[package]] @@ -714,9 +725,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b5f5f9f561c29f78ea521ebe2e5ac1633f1b1442dae582f68ecd57c6350042" +checksum = "e86ddeb70792c7ceaad23e57d52250107ebbb86733e52f4a25d8dc1abc931837" dependencies = [ "serde", "winnow", @@ -737,14 +748,13 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02635bce18205ff8149fb752c753b0a91ea3f3c8ee04c58846448be4811a640" +checksum = "584cb97bfc5746cb9dcc4def77da11694b5d6d7339be91b7480a6a68dc129387" dependencies = [ - "alloy-json-abi 1.0.0", - "alloy-primitives 1.0.0", - "alloy-sol-macro 1.0.0", - "const-hex", + "alloy-json-abi 1.1.2", + "alloy-primitives 1.1.2", + "alloy-sol-macro 1.1.2", "serde", ] @@ -890,6 +900,15 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + [[package]] name = "arbitrary" version = "1.4.1" @@ -1162,6 +1181,44 @@ dependencies = [ "serde", ] +[[package]] +name = "asn1-rs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.12", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -2029,9 +2086,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" dependencies = [ "clap_builder", "clap_derive", @@ -2039,9 +2096,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" dependencies = [ "anstream", "anstyle", @@ -2455,6 +2512,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + [[package]] name = "dunce" version = "1.0.5" @@ -2664,7 +2727,7 @@ dependencies = [ [[package]] name = "fhevm_gateway_rust_bindings" -version = "1.0.0" +version = "0.1.0-rc14" dependencies = [ "alloy", ] @@ -2723,6 +2786,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fragile" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" + [[package]] name = "fs_extra" version = "1.3.0" @@ -2830,6 +2899,34 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "g2gen" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a7e0eb46f83a20260b850117d204366674e85d3a908d90865c78df9a6b1dfc" +dependencies = [ + "g2poly", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "g2p" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "539e2644c030d3bf4cd208cb842d2ce2f80e82e6e8472390bcef83ceba0d80ad" +dependencies = [ + "g2gen", + "g2poly", +] + +[[package]] +name = "g2poly" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312d2295c7302019c395cfb90dacd00a82a2eabd700429bba9c7a3f38dbbe11b" + [[package]] name = "generic-array" version = "0.14.7" @@ -2848,8 +2945,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -3563,15 +3662,13 @@ dependencies = [ [[package]] name = "kms-grpc" -version = "0.11.0-rc11" +version = "0.11.0-rc14" dependencies = [ - "alloy-primitives 1.0.0", - "alloy-sol-types 1.0.0", + "alloy-primitives 1.1.2", + "alloy-sol-types 1.1.2", "anyhow", - "bincode", "cfg-if", "hex", - "lazy_static", "prost", "rand 0.8.5", "serde", @@ -3579,6 +3676,8 @@ dependencies = [ "strum_macros", "tfhe", "tfhe-versionable", + "thiserror 2.0.12", + "threshold-fhe", "tonic", "tonic-build", "tracing", @@ -3697,6 +3796,16 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" +[[package]] +name = "matrixmultiply" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "md-5" version = "0.10.6" @@ -3745,12 +3854,55 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "mockall" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "multimap" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +[[package]] +name = "nalgebra" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +dependencies = [ + "approx", + "matrixmultiply", + "num-complex", + "num-rational", + "num-traits", + "rand 0.8.5", + "rand_distr", + "simba", + "typenum", +] + [[package]] name = "native-tls" version = "0.2.14" @@ -3768,6 +3920,22 @@ dependencies = [ "tempfile", ] +[[package]] +name = "ndarray" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841" +dependencies = [ + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "portable-atomic", + "portable-atomic-util", + "rawpointer", + "serde", +] + [[package]] name = "nom" version = "7.1.3" @@ -3824,6 +3992,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -3886,6 +4065,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -4117,6 +4305,21 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -4132,6 +4335,32 @@ dependencies = [ "zerocopy 0.8.24", ] +[[package]] +name = "predicates" +version = "3.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +dependencies = [ + "anstyle", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" + +[[package]] +name = "predicates-tree" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +dependencies = [ + "predicates-core", + "termtree", +] + [[package]] name = "prettyplease" version = "0.2.32" @@ -4368,6 +4597,16 @@ dependencies = [ "serde", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "rand_xorshift" version = "0.3.0" @@ -4377,6 +4616,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + [[package]] name = "rayon" version = "1.10.0" @@ -4622,6 +4867,15 @@ dependencies = [ "semver 1.0.26", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.38.44" @@ -4770,6 +5024,15 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + [[package]] name = "scc" version = "2.3.3" @@ -5036,9 +5299,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -5109,6 +5372,19 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simba" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + [[package]] name = "slab" version = "0.4.9" @@ -5169,6 +5445,18 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "statrs" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" +dependencies = [ + "approx", + "nalgebra", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "strsim" version = "0.11.1" @@ -5239,9 +5527,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.0.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34c9c96de1f835488c1501092847b522be88c9ac6fb0d4c0fbea92992324c8f4" +checksum = "1b5d879005cc1b5ba4e18665be9e9501d9da3a9b95f625497c4cb7ee082b532e" dependencies = [ "paste", "proc-macro2", @@ -5288,6 +5576,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "termtree" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" + [[package]] name = "tfhe" version = "1.1.3" @@ -5451,6 +5745,49 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "threshold-fhe" +version = "0.11.0-rc14" +dependencies = [ + "aes", + "aes-prng", + "anyhow", + "async-trait", + "bincode", + "cfg-if", + "clap", + "const_format", + "dashmap", + "derive_more 2.0.1", + "futures", + "g2p", + "getrandom 0.2.15", + "hex", + "itertools 0.14.0", + "lazy_static", + "mockall", + "ndarray", + "num-integer", + "num-traits", + "oid-registry", + "paste", + "prost", + "rand 0.8.5", + "rayon", + "serde", + "sha2", + "sha3", + "statrs", + "strum", + "strum_macros", + "tfhe", + "tfhe-csprng", + "tfhe-versionable", + "tonic-build", + "tracing", + "zeroize", +] + [[package]] name = "time" version = "0.3.41" @@ -5636,9 +5973,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85839f0b32fd242bb3209262371d07feda6d780d16ee9d2bc88581b89da1549b" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" dependencies = [ "async-trait", "axum", @@ -5667,9 +6004,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85f0383fadd15609306383a90e85eaed44169f931a5d2be1b42c76ceff1825e" +checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" dependencies = [ "prettyplease", "proc-macro2", @@ -6079,6 +6416,16 @@ dependencies = [ "rustix 0.38.44", ] +[[package]] +name = "wide" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "winapi" version = "0.3.9" diff --git a/kms-connector/Cargo.toml b/kms-connector/Cargo.toml index a51dfa22d7..3e8e4ef495 100644 --- a/kms-connector/Cargo.toml +++ b/kms-connector/Cargo.toml @@ -15,7 +15,7 @@ anyhow = { version = "=1.0.98", default-features = false } aws-sdk-kms = { version = "=1.65.0", default-features = true } bincode = { version = "=1.3.3", default-features = false } # Couldn't be upgraded because of kms-grpc bip39 = { version = "=2.1.0", default-features = false } -clap = { version = "=4.5.35", default-features = true, features = ["derive"] } +clap = { version = "=4.5.38", default-features = true, features = ["derive"] } config = { version = "=0.15.11", default-features = false, features = ["toml"] } dashmap = { version = "=6.1.0", default-features = false } futures = { version = "=0.3.31", default-features = false } @@ -27,7 +27,7 @@ thiserror = { version = "=2.0.12", default-features = false } tokio = { version = "=1.44.2", default-features = false, features = ["sync", "rt-multi-thread", "signal"] } tokio-stream = { version = "=0.1.17", default-features = false } toml = { version = "=0.8.20", default-features = true } -tonic = { version = "=0.13.0", default-features = true, features = ["tls-ring", "tls-native-roots"] } +tonic = { version = "=0.13.1", default-features = true, features = ["tls-ring", "tls-native-roots"] } tracing = { version = "=0.1.41", default-features = true } url = { version = "=2.5.4", default-features = false } @@ -39,7 +39,7 @@ aws-sdk-s3 = { version = "=1.82.0", default-features = true } tracing-subscriber = { version = "=0.3.19", default-features = true, features = ["env-filter"] } # TODO: replace git submodule and path import by git import when fhevm-gateway and kms-core becomes open-source -fhevm_gateway_rust_bindings = { path = "fhevm-gateway/rust_bindings" } +fhevm_gateway_rust_bindings = { path = "../gateway-contracts/rust_bindings" } kms-grpc = { path = "kms-core/core/grpc", default-features = true, features = ["insecure"] } [dev-dependencies] diff --git a/kms-connector/kms-core b/kms-connector/kms-core new file mode 160000 index 0000000000..cb69df3a26 --- /dev/null +++ b/kms-connector/kms-core @@ -0,0 +1 @@ +Subproject commit cb69df3a26ae76650398517c686c8029a4bfa4ae diff --git a/kms-connector/src/core/event_processor/processors.rs b/kms-connector/src/core/event_processor/processors.rs index 915a1fd4fa..a2c84f60c9 100644 --- a/kms-connector/src/core/event_processor/processors.rs +++ b/kms-connector/src/core/event_processor/processors.rs @@ -127,7 +127,7 @@ impl EventProcessor

{ KmsCoreEvent::PublicDecryptionRequest(req) => { info!( "Processing PublicDecryptionRequest: {}", - req.publicDecryptionId + req.decryptionId ); // Extract keyId from the first SNS ciphertext material if available @@ -136,14 +136,14 @@ impl EventProcessor

{ let key_id_hex = alloy::hex::encode(extracted_key_id.to_be_bytes::<32>()); info!( "Extracted key_id {} from snsCtMaterials[0] for public decryption request {}", - key_id_hex, req.publicDecryptionId + key_id_hex, req.decryptionId ); key_id_hex } else { // Fail the request if no materials available error!( "No snsCtMaterials found for public decryption request {}, cannot proceed without a valid key_id", - req.publicDecryptionId + req.decryptionId ); continue; }; @@ -155,13 +155,13 @@ impl EventProcessor

{ if sns_ciphertext_materials.is_empty() { error!( "Failed to retrieve any ciphertext materials for public decryption request {}", - req.publicDecryptionId + req.decryptionId ); continue; } self.decryption_handler.handle_decryption_request_response( - req.publicDecryptionId, + req.decryptionId, key_id, sns_ciphertext_materials, None, @@ -173,7 +173,7 @@ impl EventProcessor

{ KmsCoreEvent::UserDecryptionRequest(req) => { info!( "Processing UserDecryptionRequest: {}", - req.userDecryptionId + req.decryptionId ); // Extract keyId from the first SNS ciphertext material if available @@ -182,14 +182,14 @@ impl EventProcessor

{ let key_id_hex = alloy::hex::encode(extracted_key_id.to_be_bytes::<32>()); info!( "Extracted key_id {} from snsCtMaterials[0] for user decryption request {} (contract: {})", - key_id_hex, req.userDecryptionId, req.publicKey + key_id_hex, req.decryptionId, req.publicKey ); key_id_hex } else { // Fail the request if no materials available error!( "No snsCtMaterials found for user decryption request {} (contract: {}), cannot proceed without a valid key_id", - req.userDecryptionId, req.publicKey + req.decryptionId, req.publicKey ); continue; }; @@ -201,7 +201,7 @@ impl EventProcessor

{ if sns_ciphertext_materials.is_empty() { error!( "Failed to retrieve any ciphertext materials for user decryption request {}", - req.userDecryptionId + req.decryptionId ); continue; } @@ -211,14 +211,14 @@ impl EventProcessor

{ info!( "UserDecryptionRequest {} was received with:\nuserAddress: {}\npublicKey: {}\nkeyId: {}", - req.userDecryptionId, + req.decryptionId, user_key_prefixed, public_key_string, key_id ); match self.decryption_handler.handle_decryption_request_response( - req.userDecryptionId, + req.decryptionId, key_id, sns_ciphertext_materials, Some(req.userAddress), @@ -228,7 +228,7 @@ impl EventProcessor

{ Err(e) => { error!( "Error processing user decryption request {}: {}", - req.userDecryptionId, e + req.decryptionId, e ); // Log error but continue processing other events Ok(())