diff --git a/Cargo.lock b/Cargo.lock index f7152bdfdd..5718dab961 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,7 +45,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "generic-array 0.14.7", ] @@ -56,10 +56,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures 0.2.17", ] +[[package]] +name = "aes" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8" +dependencies = [ + "cipher 0.5.2", + "cpubits", + "cpufeatures 0.3.0", +] + [[package]] name = "aes-gcm" version = "0.10.3" @@ -67,8 +78,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", - "aes", - "cipher", + "aes 0.8.4", + "cipher 0.4.4", "ctr", "ghash", "subtle 2.6.1", @@ -81,14 +92,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d" dependencies = [ "aead", - "aes", - "cipher", + "aes 0.8.4", + "cipher 0.4.4", "ctr", "polyval", "subtle 2.6.1", "zeroize", ] +[[package]] +name = "aes-keywrap" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b6f24a1f796bc46415a1d0d18dc0a8203ccba088acf5def3291c4f61225522" +dependencies = [ + "aes 0.9.0", + "byteorder", +] + [[package]] name = "ahash" version = "0.8.12" @@ -226,9 +247,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arbitrary" @@ -374,7 +395,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", "rayon", ] @@ -909,7 +930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", + "rand 0.8.6", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -982,13 +1003,13 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq", + "constant_time_eq 0.4.2", ] [[package]] @@ -1001,7 +1022,7 @@ dependencies = [ "arrayvec", "cc", "cfg-if", - "constant_time_eq", + "constant_time_eq 0.3.1", "digest 0.10.7", ] @@ -1023,6 +1044,15 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", +] + [[package]] name = "block-padding" version = "0.3.3" @@ -1196,7 +1226,7 @@ dependencies = [ "serde", "serde-untagged", "serde-value", - "thiserror 2.0.12", + "thiserror 2.0.18", "toml 0.8.23", "unicode-xid", "url", @@ -1227,7 +1257,7 @@ dependencies = [ "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -1242,7 +1272,7 @@ dependencies = [ "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -1308,7 +1338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures 0.2.17", ] @@ -1331,7 +1361,7 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20 0.9.1", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] @@ -1384,11 +1414,21 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", - "inout", + "crypto-common 0.1.6", + "inout 0.1.4", "zeroize", ] +[[package]] +name = "cipher" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" +dependencies = [ + "crypto-common 0.2.2", + "inout 0.2.2", +] + [[package]] name = "clap" version = "4.5.60" @@ -1475,8 +1515,8 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62a9b6d27e553269a76625911aa8cf6afaa8659f1b0c85b410cb5f51a87183d9" dependencies = [ - "rand 0.8.5", - "sha3", + "rand 0.8.6", + "sha3 0.10.8", "zeroize", ] @@ -1490,10 +1530,16 @@ dependencies = [ ] [[package]] -name = "coarsetime" -version = "0.1.36" +name = "cmov" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91849686042de1b41cd81490edc83afbcb0abe5a9b6f2c4114f23ce8cca1bcf4" +checksum = "3f88a43d011fc4a6876cb7344703e297c71dda42494fee094d5f7c76bf13f746" + +[[package]] +name = "coarsetime" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e58eb270476aa4fc7843849f8a35063e8743b4dbcdf6dd0f8ea0886980c204c2" dependencies = [ "libc", "wasix", @@ -1631,6 +1677,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "const-str" version = "0.5.7" @@ -1663,6 +1715,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + [[package]] name = "cookie" version = "0.18.1" @@ -1737,7 +1795,7 @@ dependencies = [ "rand_core 0.6.4", "serde", "serde_json", - "signature", + "signature 2.2.0", "subtle-encoding", "tendermint", "tendermint-rpc", @@ -1833,6 +1891,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cpubits" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b85f9c39137c3a891689859392b1bd49812121d0d61c9caf00d46ed5ce06ae" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -2029,6 +2093,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "getrandom 0.4.1", + "hybrid-array", + "rand_core 0.10.1", +] + [[package]] name = "crypto-mac" version = "0.7.0" @@ -2095,7 +2170,16 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", +] + +[[package]] +name = "ctutils" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" +dependencies = [ + "cmov", ] [[package]] @@ -2181,7 +2265,7 @@ dependencies = [ "schemars 0.8.22", "serde", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2338,7 +2422,7 @@ dependencies = [ "parking_lot", "ring", "socket2 0.6.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "uniffi 0.31.0", "untrusted", @@ -2365,7 +2449,7 @@ dependencies = [ "nix 0.30.1", "regex", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "windows 0.62.2", "wireguard-nt", "x25519-dalek", @@ -2409,7 +2493,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2432,11 +2516,21 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ - "const-oid", + "const-oid 0.9.6", "pem-rfc7468", "zeroize", ] +[[package]] +name = "der" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" +dependencies = [ + "const-oid 0.10.2", + "zeroize", +] + [[package]] name = "deranged" version = "0.4.0" @@ -2573,11 +2667,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", - "const-oid", - "crypto-common", + "const-oid 0.9.6", + "crypto-common 0.1.6", "subtle 2.6.1", ] +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.0", + "crypto-common 0.2.2", +] + [[package]] name = "dirs" version = "6.0.0" @@ -2675,13 +2779,13 @@ version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der", + "der 0.7.10", "digest 0.10.7", "elliptic-curve", "rfc6979", "serdect 0.2.0", - "signature", - "spki", + "signature 2.2.0", + "spki 0.7.3", ] [[package]] @@ -2715,19 +2819,19 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8", + "pkcs8 0.10.2", "serde", - "signature", + "signature 2.2.0", ] [[package]] name = "ed25519-compact" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190" +checksum = "f5c0284a5d4b1a2fae017a9fe55fd7d01699711f1b572493f16593e173ea2801" dependencies = [ "ct-codecs", - "getrandom 0.2.16", + "getrandom 0.4.1", ] [[package]] @@ -2796,7 +2900,7 @@ dependencies = [ "group", "hkdf", "pem-rfc7468", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", "sec1", "serdect 0.2.0", @@ -2920,7 +3024,7 @@ dependencies = [ "nym-wasm-storage", "nym-wasm-utils", "serde-wasm-bindgen 0.6.5", - "thiserror 2.0.12", + "thiserror 2.0.18", "wasm-bindgen", "wasm-bindgen-futures", "zeroize", @@ -3277,11 +3381,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "rand_core 0.10.1", "wasip2", "wasip3", + "wasm-bindgen", ] [[package]] @@ -3659,7 +3765,7 @@ dependencies = [ "jni 0.22.4", "rand 0.10.1", "rustls 0.23.37", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", "tokio", "tokio-rustls 0.26.2", @@ -3682,7 +3788,7 @@ dependencies = [ "prefix-trie", "rand 0.10.1", "ring", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", "tracing", "url", @@ -3710,7 +3816,7 @@ dependencies = [ "rustls 0.23.37", "smallvec", "system-configuration 0.7.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-rustls 0.26.2", "tracing", @@ -3749,24 +3855,24 @@ dependencies = [ [[package]] name = "hmac-sha1-compact" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18492c9f6f9a560e0d346369b665ad2bdbc89fa9bceca75796584e79042694c3" +checksum = "b0b3ba31f6dc772cc8221ce81dbbbd64fa1e668255a6737d95eeace59b5a8823" [[package]] name = "hmac-sha256" -version = "1.1.12" +version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad6880c8d4a9ebf39c6e8b77007ce223f646a4d21ce29d99f70cb16420545425" +checksum = "ec9d92d097f4749b64e8cc33d924d9f40a2d4eb91402b458014b781f5733d60f" dependencies = [ "digest 0.10.7", ] [[package]] name = "hmac-sha512" -version = "1.1.7" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89e8d20b3799fa526152a5301a771eaaad80857f83e01b23216ceaafb2d9280" +checksum = "019ece39bbefc17f13f677a690328cb978dbf6790e141a3c24e66372cb38588b" dependencies = [ "digest 0.10.7", ] @@ -3897,6 +4003,16 @@ dependencies = [ "serde", ] +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "ctutils", + "typenum", +] + [[package]] name = "hyper" version = "0.14.32" @@ -4248,7 +4364,7 @@ dependencies = [ "js-sys", "sealed", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "wasm-bindgen", "wasm-bindgen-futures", @@ -4344,6 +4460,15 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "inout" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7" +dependencies = [ + "hybrid-array", +] + [[package]] name = "inquire" version = "0.6.2" @@ -4558,7 +4683,7 @@ dependencies = [ "jni-sys 0.4.1", "log", "simd_cesu8", - "thiserror 2.0.12", + "thiserror 2.0.18", "walkdir", "windows-link 0.2.1", ] @@ -4623,9 +4748,9 @@ dependencies = [ [[package]] name = "jwt-simple" -version = "0.12.12" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731011e9647a71ff4f8474176ff6ce6e0d2de87a0173f15613af3a84c3e3401a" +checksum = "f45048cd18221c81d27dd4621d51df25b33f11b68655d79f67a9f9d3eb48fecc" dependencies = [ "anyhow", "binstring", @@ -4639,11 +4764,11 @@ dependencies = [ "k256", "p256", "p384", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "superboring", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -4658,7 +4783,7 @@ dependencies = [ "elliptic-curve", "once_cell", "sha2 0.10.9", - "signature", + "signature 2.2.0", ] [[package]] @@ -4670,6 +4795,16 @@ dependencies = [ "cpufeatures 0.2.17", ] +[[package]] +name = "keccak" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e24a010dd405bd7ed803e5253182815b41bf2e6a80cc3bfc066658e03a198aa" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", +] + [[package]] name = "keystream" version = "1.0.0" @@ -4964,7 +5099,7 @@ dependencies = [ "libcrux-ml-kem", "libcrux-sha2", "libcrux-traits", - "rand 0.8.5", + "rand 0.8.6", "rand 0.9.2", "tls_codec", ] @@ -5110,7 +5245,7 @@ dependencies = [ "nym-performance-contract-common", "nym-validator-client", "nym-vesting-contract-common", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "serde", "serde_json", @@ -5373,10 +5508,10 @@ dependencies = [ "nym-validator-client", "nym-wasm-client-core", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde-wasm-bindgen 0.6.5", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tsify", "url", @@ -5399,12 +5534,39 @@ dependencies = [ "tracing", ] +[[package]] +name = "ml-dsa" +version = "0.1.0-rc.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "163f15320f3fba11760c373af52d7f69d638482c2c350d877fb06513b1c3137c" +dependencies = [ + "const-oid 0.10.2", + "crypto-common 0.2.2", + "ctutils", + "hybrid-array", + "module-lattice", + "pkcs8 0.11.0", + "sha3 0.11.0", + "signature 3.0.0", +] + [[package]] name = "mock_instant" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce6dd36094cac388f119d2e9dc82dc730ef91c32a6222170d630e5414b956e6" +[[package]] +name = "module-lattice" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c61b87c9683ab7cb1c6871d261ad5479b6b10ceb52c4352aaca3b5d35a8febe" +dependencies = [ + "ctutils", + "hybrid-array", + "num-traits", +] + [[package]] name = "moka" version = "0.12.10" @@ -5488,7 +5650,7 @@ checksum = "3176f18d11a1ae46053e59ec89d46ba318ae1343615bd3f8c908bfc84edae35c" dependencies = [ "byteorder", "pastey 0.1.1", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -5642,17 +5804,16 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", "num-iter", "num-traits", - "rand 0.8.5", + "rand 0.8.6", "smallvec", "zeroize", ] @@ -5781,7 +5942,7 @@ dependencies = [ "nym-types", "nym-validator-client", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "reqwest 0.13.1", "schemars 0.8.22", @@ -5793,7 +5954,7 @@ dependencies = [ "tempfile", "tendermint", "test-with", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -5843,7 +6004,7 @@ dependencies = [ "strum_macros 0.28.0", "tendermint", "tendermint-rpc", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "ts-rs", @@ -5876,7 +6037,7 @@ dependencies = [ "nym-validator-client", "nym-wireguard-types", "semver 1.0.27", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -5896,12 +6057,12 @@ dependencies = [ "nym-sphinx", "nym-test-utils", "nym-wireguard-types", - "rand 0.8.5", + "rand 0.8.6", "semver 1.0.27", "serde", "sha2 0.10.9", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "x25519-dalek", ] @@ -5919,8 +6080,8 @@ dependencies = [ "nym-ecash-time", "nym-task", "nym-validator-client", - "rand 0.8.5", - "thiserror 2.0.12", + "rand 0.8.6", + "thiserror 2.0.18", ] [[package]] @@ -6040,12 +6201,12 @@ dependencies = [ "nym-types", "nym-validator-client", "nym-vesting-contract-common", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "tap", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "toml 0.8.23", @@ -6078,11 +6239,11 @@ dependencies = [ "nym-task", "nym-topology", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "tap", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-tungstenite", @@ -6130,14 +6291,14 @@ dependencies = [ "nym-topology", "nym-validator-client", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", "serde_json", "sha2 0.10.9", "si-scale", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -6163,7 +6324,7 @@ dependencies = [ "nym-sphinx-params", "nym-statistics-common", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "url", ] @@ -6178,7 +6339,7 @@ dependencies = [ "nym-gateway-requests", "serde", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6198,7 +6359,7 @@ dependencies = [ "nym-sqlx-pool-guard", "nym-task", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6219,11 +6380,11 @@ dependencies = [ "nym-wasm-client-core", "nym-wasm-utils", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde-wasm-bindgen 0.6.5", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio_with_wasm", "tsify", "wasm-bindgen", @@ -6277,12 +6438,12 @@ dependencies = [ "nym-bls12_381-fork", "nym-network-defaults", "nym-pemstore", - "rand 0.8.5", + "rand 0.8.6", "rayon", "serde", "sha2 0.10.9", "subtle 2.6.1", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -6295,7 +6456,7 @@ dependencies = [ "log", "nym-network-defaults", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "toml 0.8.23", "url", ] @@ -6312,7 +6473,7 @@ dependencies = [ "nym-ip-packet-requests", "nym-sdk", "pnet_packet", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -6330,7 +6491,7 @@ dependencies = [ "schemars 0.8.22", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "utoipa", "vergen 8.3.1", ] @@ -6344,7 +6505,7 @@ dependencies = [ "cw-multi-test", "cw-storage-plus", "nym-contracts-common", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", ] @@ -6391,7 +6552,7 @@ dependencies = [ "nym-pemstore", "nym-upgrade-mode-check", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "serde", "serde_json", @@ -6399,7 +6560,7 @@ dependencies = [ "strum 0.28.0", "strum_macros 0.28.0", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -6432,7 +6593,7 @@ dependencies = [ "nym-ecash-signer-check", "nym-network-defaults", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "serde", "serde_json", @@ -6440,7 +6601,7 @@ dependencies = [ "strum 0.28.0", "strum_macros 0.28.0", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -6491,7 +6652,7 @@ dependencies = [ "nym-test-utils", "serde", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "zeroize", @@ -6510,7 +6671,7 @@ dependencies = [ "nym-credentials-interface", "nym-ecash-time", "nym-validator-client", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", ] @@ -6537,7 +6698,7 @@ dependencies = [ "nym-upgrade-mode-check", "nym-validator-client", "si-scale", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6560,9 +6721,9 @@ dependencies = [ "nym-network-defaults", "nym-serde-helpers", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "zeroize", ] @@ -6576,11 +6737,11 @@ dependencies = [ "nym-ecash-time", "nym-network-defaults", "nym-upgrade-mode-check", - "rand 0.8.5", + "rand 0.8.6", "serde", "strum 0.28.0", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "utoipa", ] @@ -6590,13 +6751,13 @@ name = "nym-crypto" version = "1.21.0" dependencies = [ "aead", - "aes", + "aes 0.8.4", "aes-gcm-siv", "anyhow", "base64 0.22.1", "blake3", "bs58", - "cipher", + "cipher 0.4.4", "ctr", "curve25519-dalek", "digest 0.10.7", @@ -6610,7 +6771,7 @@ dependencies = [ "nym-pemstore", "nym-sphinx-types", "nym-test-utils", - "rand 0.8.5", + "rand 0.8.6", "rand 0.9.2", "rand_chacha 0.3.1", "serde", @@ -6618,7 +6779,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "subtle-encoding", - "thiserror 2.0.12", + "thiserror 2.0.18", "x25519-dalek", "zeroize", ] @@ -6647,7 +6808,7 @@ dependencies = [ "serde", "serde_json", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -6672,13 +6833,13 @@ dependencies = [ "nym-bls12_381-fork", "nym-contracts-common", "nym-pemstore", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "rand_core 0.6.4", "serde", "serde_derive", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -6693,7 +6854,7 @@ dependencies = [ "cw-utils", "cw2", "nym-multisig-contract-common", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -6707,7 +6868,7 @@ dependencies = [ "nym-validator-client", "semver 1.0.27", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "url", @@ -6721,7 +6882,7 @@ dependencies = [ "nym-crypto", "semver 1.0.27", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "url", @@ -6743,7 +6904,7 @@ dependencies = [ "reqwest 0.13.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "utoipa", ] @@ -6793,6 +6954,7 @@ dependencies = [ "nym-id", "nym-ip-packet-router", "nym-lp", + "nym-lp-data", "nym-metrics", "nym-mixnet-client", "nym-network-defaults", @@ -6811,9 +6973,9 @@ dependencies = [ "nym-wireguard", "nym-wireguard-private-metadata-server", "nym-wireguard-types", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -6844,10 +7006,10 @@ dependencies = [ "nym-task", "nym-validator-client", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "serde", "si-scale", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -6890,6 +7052,7 @@ dependencies = [ "nym-ip-packet-requests", "nym-kkt-ciphersuite", "nym-lp", + "nym-lp-data", "nym-network-defaults", "nym-node-requests", "nym-registration-client", @@ -6898,7 +7061,7 @@ dependencies = [ "nym-topology", "nym-validator-client", "pnet_packet", - "rand 0.8.5", + "rand 0.8.6", "rand 0.9.2", "reqwest 0.13.1", "semver 1.0.27", @@ -6932,12 +7095,12 @@ dependencies = [ "nym-statistics-common", "nym-task", "nym-test-utils", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "strum 0.28.0", "subtle 2.6.1", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6956,7 +7119,7 @@ dependencies = [ "nym-statistics-common", "sqlx", "strum 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6975,7 +7138,7 @@ dependencies = [ "nym-gateway-requests", "nym-sphinx", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -6992,7 +7155,7 @@ dependencies = [ "nym-ffi-shared", "nym-sdk", "nym-sphinx-anonymous-replies", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "uniffi 0.29.3", "uniffi_build 0.29.3", @@ -7035,7 +7198,7 @@ dependencies = [ "serde_json", "serde_plain", "serde_yaml", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -7084,7 +7247,7 @@ version = "1.21.0" dependencies = [ "nym-credential-storage", "nym-credentials", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "zeroize", @@ -7109,8 +7272,8 @@ name = "nym-inclusion-probability" version = "1.21.0" dependencies = [ "log", - "rand 0.8.5", - "thiserror 2.0.12", + "rand 0.8.6", + "thiserror 2.0.18", ] [[package]] @@ -7121,9 +7284,9 @@ dependencies = [ "bytes", "futures", "nym-ip-packet-requests", - "nym-lp", + "nym-lp-data", "nym-sdk", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -7140,10 +7303,10 @@ dependencies = [ "nym-service-provider-requests-common", "nym-sphinx", "pnet_packet", - "rand 0.8.5", + "rand 0.8.6", "semver 1.0.27", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -7170,7 +7333,7 @@ dependencies = [ "nym-exit-policy", "nym-id", "nym-ip-packet-requests", - "nym-lp", + "nym-lp-data", "nym-network-defaults", "nym-network-requester", "nym-sdk", @@ -7182,11 +7345,11 @@ dependencies = [ "nym-types", "nym-wireguard", "nym-wireguard-types", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-tun", @@ -7202,7 +7365,7 @@ dependencies = [ "bytes", "env_logger", "log", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio-util", ] @@ -7225,7 +7388,7 @@ dependencies = [ "rand 0.9.2", "rand_chacha 0.9.0", "strum 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -7239,7 +7402,7 @@ dependencies = [ "semver 1.0.27", "strum 0.28.0", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7248,7 +7411,7 @@ version = "1.21.0" dependencies = [ "num_enum", "nym-kkt-ciphersuite", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7259,7 +7422,7 @@ dependencies = [ "k256", "ledger-transport", "ledger-transport-hid", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7271,14 +7434,14 @@ dependencies = [ "bytes", "criterion", "libcrux-psq", - "num_enum", "nym-common", "nym-crypto", "nym-kkt", "nym-kkt-ciphersuite", + "nym-lp-data", "nym-test-utils", "rand 0.9.2", - "thiserror 2.0.12", + "thiserror 2.0.18", "tls_codec", "tokio", "tracing", @@ -7299,6 +7462,7 @@ dependencies = [ "nym-kcp", "nym-kkt-ciphersuite", "nym-lp", + "nym-lp-data", "nym-registration-client", "nym-sphinx", "nym-sphinx-addressing", @@ -7308,7 +7472,7 @@ dependencies = [ "nym-sphinx-types", "nym-topology", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "rand 0.9.2", "rand_chacha 0.3.1", "serde", @@ -7321,6 +7485,17 @@ dependencies = [ "url", ] +[[package]] +name = "nym-lp-data" +version = "1.21.0" +dependencies = [ + "bytes", + "num_enum", + "nym-common", + "thiserror 2.0.18", + "tracing", +] + [[package]] name = "nym-metrics" version = "1.21.0" @@ -7341,7 +7516,7 @@ dependencies = [ "nym-noise", "nym-sphinx", "nym-task", - "rand 0.8.5", + "rand 0.8.6", "tokio", "tokio-stream", "tokio-util", @@ -7365,7 +7540,7 @@ dependencies = [ "semver 1.0.27", "serde", "serde_repr", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "ts-rs", "utoipa", @@ -7389,9 +7564,9 @@ dependencies = [ "nym-sphinx-params", "nym-sphinx-types", "nym-task", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -7410,7 +7585,7 @@ dependencies = [ "cw4", "schemars 0.8.22", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7452,7 +7627,7 @@ dependencies = [ "nym-types", "nym-validator-client", "petgraph", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "reqwest 0.13.1", "serde", @@ -7498,7 +7673,7 @@ dependencies = [ "nym-task", "nym-types", "publicsuffix", - "rand 0.8.5", + "rand 0.8.6", "regex", "reqwest 0.13.1", "serde", @@ -7506,7 +7681,7 @@ dependencies = [ "sqlx", "tap", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-tungstenite", @@ -7559,6 +7734,7 @@ dependencies = [ "nym-ip-packet-router", "nym-kkt", "nym-lp", + "nym-lp-data", "nym-metrics", "nym-mixnet-client", "nym-network-requester", @@ -7587,13 +7763,13 @@ dependencies = [ "nym-wireguard-types", "opentelemetry", "opentelemetry_sdk", - "rand 0.8.5", + "rand 0.8.6", "rand 0.9.2", "serde", "serde_json", "sha2 0.10.9", "sysinfo", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -7621,7 +7797,7 @@ dependencies = [ "nym-mixnet-contract-common", "schemars 0.8.22", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7659,7 +7835,7 @@ dependencies = [ "serde_json", "strum 0.28.0", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "url", @@ -7678,7 +7854,7 @@ dependencies = [ "nym-gateway-probe", "nym-node-status-client", "nym-sdk", - "rand 0.8.5", + "rand 0.8.6", "regex", "serde_json", "tempfile", @@ -7723,7 +7899,7 @@ dependencies = [ "nym-statistics-common", "nym-task", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "regex", "reqwest 0.13.1", @@ -7734,7 +7910,7 @@ dependencies = [ "sqlx", "strum 0.28.0", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -7777,11 +7953,11 @@ dependencies = [ "nym-task", "nym-topology", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] @@ -7794,10 +7970,10 @@ dependencies = [ "nym-node-tester-utils", "nym-wasm-client-core", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde-wasm-bindgen 0.6.5", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tsify", "wasm-bindgen", @@ -7822,7 +7998,7 @@ dependencies = [ "snow", "strum 0.28.0", "strum_macros 0.28.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -7869,7 +8045,7 @@ name = "nym-ordered-buffer" version = "1.21.0" dependencies = [ "log", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7881,7 +8057,7 @@ dependencies = [ "chacha20poly1305", "fastrand", "sphinx-packet", - "thiserror 2.0.12", + "thiserror 2.0.18", "x25519-dalek", "zeroize", ] @@ -7905,7 +8081,7 @@ dependencies = [ "nym-contracts-common", "schemars 0.8.22", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -7917,7 +8093,7 @@ dependencies = [ "cw-controllers", "schemars 0.8.22", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", ] @@ -7936,13 +8112,14 @@ dependencies = [ "nym-ip-packet-client", "nym-kkt", "nym-lp", + "nym-lp-data", "nym-registration-common", "nym-sdk", "nym-test-utils", "nym-validator-client", "nym-wireguard-types", "rand 0.9.2", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -7996,7 +8173,7 @@ dependencies = [ "nym-gateway-requests", "nym-http-api-client", "nym-ip-packet-requests", - "nym-lp", + "nym-lp-data", "nym-network-defaults", "nym-ordered-buffer", "nym-service-providers-common", @@ -8010,13 +8187,13 @@ dependencies = [ "nym-validator-client", "parking_lot", "pnet_packet", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "semver 1.0.27", "serde", "tap", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -8046,7 +8223,7 @@ version = "1.21.0" dependencies = [ "bincode", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8059,7 +8236,7 @@ dependencies = [ "nym-sphinx-anonymous-replies", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8104,11 +8281,11 @@ dependencies = [ "nym-sphinx", "nym-topology", "nym-validator-client", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "tap", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "url", @@ -8137,12 +8314,12 @@ dependencies = [ "nym-task", "nym-validator-client", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "schemars 0.8.22", "serde", "tap", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "url", ] @@ -8174,7 +8351,7 @@ dependencies = [ "serde", "serde_json", "tap", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8195,10 +8372,10 @@ dependencies = [ "nym-sphinx-routing", "nym-sphinx-types", "nym-topology", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "rand_distr", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -8215,9 +8392,9 @@ dependencies = [ "nym-sphinx-routing", "nym-sphinx-types", "nym-topology", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -8228,10 +8405,10 @@ dependencies = [ "bincode", "nym-crypto", "nym-sphinx-types", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8245,9 +8422,9 @@ dependencies = [ "nym-sphinx-routing", "nym-sphinx-types", "nym-topology", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "wasm-bindgen", ] @@ -8263,9 +8440,9 @@ dependencies = [ "nym-sphinx-addressing", "nym-sphinx-params", "nym-sphinx-types", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "utoipa", "wasmtimer", ] @@ -8283,8 +8460,8 @@ dependencies = [ "nym-sphinx-routing", "nym-sphinx-types", "nym-topology", - "rand 0.8.5", - "thiserror 2.0.12", + "rand 0.8.6", + "thiserror 2.0.18", ] [[package]] @@ -8295,7 +8472,7 @@ dependencies = [ "nym-sphinx-anonymous-replies", "nym-sphinx-params", "nym-sphinx-types", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8309,7 +8486,7 @@ dependencies = [ "nym-sphinx-forwarding", "nym-sphinx-params", "nym-sphinx-types", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -8322,7 +8499,7 @@ dependencies = [ "nym-crypto", "nym-sphinx-types", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8331,7 +8508,7 @@ version = "1.21.0" dependencies = [ "nym-sphinx-addressing", "nym-sphinx-types", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8340,7 +8517,7 @@ version = "1.21.0" dependencies = [ "nym-outfox", "sphinx-packet", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -8404,7 +8581,7 @@ dependencies = [ "strum 0.28.0", "strum_macros 0.28.0", "sysinfo", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "utoipa", @@ -8419,10 +8596,10 @@ dependencies = [ "argon2", "generic-array 0.14.7", "getrandom 0.2.16", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "zeroize", ] @@ -8435,7 +8612,7 @@ dependencies = [ "futures", "log", "nym-test-utils", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -8463,7 +8640,7 @@ version = "1.21.0" dependencies = [ "nym-credentials-interface", "nym-serde-helpers", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "rs_merkle", "schemars 0.8.22", @@ -8485,11 +8662,11 @@ dependencies = [ "nym-sphinx-addressing", "nym-sphinx-types", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.13.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "tsify", @@ -8503,7 +8680,7 @@ dependencies = [ "etherparse", "log", "nym-wireguard-types", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-tun", ] @@ -8532,7 +8709,7 @@ dependencies = [ "strum 0.28.0", "strum_macros 0.28.0", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "ts-rs", "url", "utoipa", @@ -8551,7 +8728,7 @@ dependencies = [ "reqwest 0.13.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "utoipa", @@ -8599,7 +8776,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "tendermint-rpc", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -8637,14 +8814,14 @@ dependencies = [ "nym-ticketbooks-merkle", "nym-validator-client", "nyxd-scraper-sqlite", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", "serde_json", "serde_with", "sha2 0.10.9", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -8664,8 +8841,8 @@ dependencies = [ "nym-http-api-client", "nym-task", "nym-validator-client", - "rand 0.8.5", - "thiserror 2.0.12", + "rand 0.8.6", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -8683,7 +8860,7 @@ dependencies = [ "nym-contracts-common", "nym-mixnet-contract-common", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "ts-rs", ] @@ -8729,10 +8906,10 @@ dependencies = [ "nym-validator-client", "nym-wasm-storage", "nym-wasm-utils", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde-wasm-bindgen 0.6.5", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tsify", "url", @@ -8751,7 +8928,7 @@ dependencies = [ "nym-wasm-utils", "serde", "serde-wasm-bindgen 0.6.5", - "thiserror 2.0.12", + "thiserror 2.0.18", "wasm-bindgen", ] @@ -8794,8 +8971,8 @@ dependencies = [ "nym-task", "nym-test-utils", "nym-wireguard-types", - "rand 0.8.5", - "thiserror 2.0.12", + "rand 0.8.6", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -8840,7 +9017,7 @@ dependencies = [ "nym-credentials-interface", "schemars 0.8.22", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "utoipa", ] @@ -8874,9 +9051,9 @@ version = "1.21.0" dependencies = [ "base64 0.22.1", "nym-crypto", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "x25519-dalek", "zeroize", ] @@ -8904,7 +9081,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "tar", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tracing", @@ -8930,7 +9107,7 @@ dependencies = [ "schemars 0.8.22", "serde", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-util", @@ -8954,7 +9131,7 @@ dependencies = [ "serde", "serde_json", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -8978,7 +9155,7 @@ dependencies = [ "sha2 0.10.9", "tendermint", "tendermint-rpc", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -8995,7 +9172,7 @@ dependencies = [ "async-trait", "nyxd-scraper-shared", "sqlx", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -9084,7 +9261,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] @@ -9114,7 +9291,7 @@ dependencies = [ "opentelemetry_sdk", "prost 0.14.3", "reqwest 0.12.22", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tonic 0.14.4", "tracing", @@ -9145,7 +9322,7 @@ dependencies = [ "opentelemetry", "percent-encoding", "rand 0.9.2", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9320,7 +9497,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", - "thiserror 2.0.12", + "thiserror 2.0.18", "ucd-trie", ] @@ -9394,7 +9571,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -9457,9 +9634,9 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.7.10", + "pkcs8 0.10.2", + "spki 0.7.3", ] [[package]] @@ -9468,8 +9645,18 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der", - "spki", + "der 0.7.10", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" +dependencies = [ + "der 0.8.0", + "spki 0.8.0", ] [[package]] @@ -9752,7 +9939,7 @@ dependencies = [ "memchr", "parking_lot", "protobuf", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -9875,7 +10062,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.37", "socket2 0.5.10", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -9897,7 +10084,7 @@ dependencies = [ "rustls 0.23.37", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -9940,9 +10127,9 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -10021,7 +10208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -10061,7 +10248,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -10245,7 +10432,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21918d6644020c6f6ef1993242989bf6d4952d2e025617744f184c02df51c356" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -10320,21 +10507,21 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" dependencies = [ - "const-oid", + "const-oid 0.9.6", "digest 0.10.7", "num-bigint-dig", "num-integer", "num-traits", "pkcs1", - "pkcs8", + "pkcs8 0.10.2", "rand_core 0.6.4", "sha2 0.10.9", - "signature", - "spki", + "signature 2.2.0", + "spki 0.7.3", "subtle 2.6.1", "zeroize", ] @@ -10385,7 +10572,7 @@ dependencies = [ "http 0.2.12", "mime", "mime_guess", - "rand 0.8.5", + "rand 0.8.6", "thiserror 1.0.69", ] @@ -10758,9 +10945,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", - "der", + "der 0.7.10", "generic-array 0.14.7", - "pkcs8", + "pkcs8 0.10.2", "serdect 0.2.0", "subtle 2.6.1", "zeroize", @@ -10961,14 +11148,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -10984,7 +11172,7 @@ dependencies = [ "serde_json", "serde_json_path_core", "serde_json_path_macros", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -10996,7 +11184,7 @@ dependencies = [ "inventory", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -11188,7 +11376,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", - "keccak", + "keccak 0.1.6", +] + +[[package]] +name = "sha3" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be176f1a57ce4e3d31c1a166222d9768de5954f811601fb7ca06fc8203905ce1" +dependencies = [ + "digest 0.11.3", + "keccak 0.2.0", ] [[package]] @@ -11252,6 +11450,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" +dependencies = [ + "digest 0.11.3", + "rand_core 0.10.1", +] + [[package]] name = "simd-adler32" version = "0.3.7" @@ -11333,7 +11541,7 @@ dependencies = [ "reqwest 0.13.1", "rustls 0.23.37", "smoltcp", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-rustls 0.26.2", "tokio-smoltcp", @@ -11422,7 +11630,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c26f0c20d909fdda1c5d0ece3973127ca421984d55b000215df365e93722fc6e" dependencies = [ - "aes", + "aes 0.8.4", "arrayref", "blake2 0.8.1", "bs58", @@ -11434,7 +11642,7 @@ dependencies = [ "hkdf", "hmac", "lioness", - "rand 0.8.5", + "rand 0.8.6", "rand_distr", "sha2 0.10.9", "subtle 2.6.1", @@ -11458,7 +11666,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der", + "der 0.7.10", +] + +[[package]] +name = "spki" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" +dependencies = [ + "base64ct", + "der 0.8.0", ] [[package]] @@ -11503,7 +11721,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -11580,7 +11798,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand 0.8.5", + "rand 0.8.6", "rsa", "serde", "sha1", @@ -11588,7 +11806,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "whoami", @@ -11620,14 +11838,14 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_json", "sha2 0.10.9", "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "whoami", @@ -11653,7 +11871,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tracing", "url", @@ -11794,14 +12012,17 @@ checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" [[package]] name = "superboring" -version = "0.1.4" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515cce34a781d7250b8a65706e0f2a5b99236ea605cb235d4baed6685820478f" +checksum = "efc6310a69b44420f3bf53d518077615b7d466cc57df7a80e404e7feb8c510f7" dependencies = [ + "aes-gcm", + "aes-keywrap", "getrandom 0.2.16", "hmac-sha256", "hmac-sha512", - "rand 0.8.5", + "ml-dsa", + "rand 0.8.6", "rsa", ] @@ -11936,7 +12157,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "smol_str", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "toml-span", "twox-hash", @@ -11994,7 +12215,7 @@ dependencies = [ "serde_json", "serde_repr", "sha2 0.10.9", - "signature", + "signature 2.2.0", "subtle 2.6.1", "subtle-encoding", "tendermint-proto", @@ -12045,7 +12266,7 @@ dependencies = [ "getrandom 0.2.16", "peg", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "reqwest 0.11.27", "semver 1.0.27", "serde", @@ -12128,11 +12349,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.18", ] [[package]] @@ -12148,9 +12369,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -12673,7 +12894,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.5", + "rand 0.8.6", "slab", "tokio", "tokio-util", @@ -12894,7 +13115,7 @@ version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756050066659291d47a554a9f558125db17428b073c5ffce1daf5dcb0f7231d8" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.18", "ts-rs-macros", ] @@ -12963,7 +13184,7 @@ dependencies = [ "http 0.2.12", "httparse", "log", - "rand 0.8.5", + "rand 0.8.6", "rustls 0.21.12", "sha1", "thiserror 1.0.69", @@ -12984,7 +13205,7 @@ dependencies = [ "http 1.3.1", "httparse", "log", - "rand 0.8.5", + "rand 0.8.6", "rustls 0.22.4", "rustls-pki-types", "sha1", @@ -13027,9 +13248,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.18.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -13372,7 +13593,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "subtle 2.6.1", ] @@ -13692,9 +13913,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasix" -version = "0.12.21" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" +checksum = "1757e0d1f8456693c7e5c6c629bdb54884e032aa0bb53c155f6a39f94440d332" dependencies = [ "wasi 0.11.1+wasi-snapshot-preview1", ] @@ -14729,9 +14950,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -14793,7 +15014,7 @@ dependencies = [ "flate2", "indexmap 2.13.0", "memchr", - "thiserror 2.0.12", + "thiserror 2.0.18", "zopfli", ] @@ -14808,7 +15029,7 @@ dependencies = [ "nym-http-api-client", "nym-wasm-utils", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tsify", "uuid", "wasm-bindgen", @@ -14816,6 +15037,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + [[package]] name = "zopfli" version = "0.8.2" @@ -14866,7 +15093,7 @@ dependencies = [ "reqwest 0.13.1", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "url", diff --git a/Cargo.toml b/Cargo.toml index b6fbaeacf7..95d08ed7be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,6 +78,7 @@ members = [ "common/nym-kkt-ciphersuite", "common/nym-kkt-context", "common/nym-lp", + "common/nym-lp-data", "common/nym-metrics", "common/nym_offline_compact_ecash", "common/nymnoise", @@ -459,6 +460,7 @@ nym-id = { version = "1.21.0", path = "common/nym-id" } nym-ip-packet-client = { version = "1.21.0", path = "nym-ip-packet-client" } nym-ip-packet-requests = { version = "1.21.0", path = "common/ip-packet-requests" } nym-lp = { version = "1.21.0", path = "common/nym-lp" } +nym-lp-data = { version = "1.21.0", path = "common/nym-lp-data" } nym-kkt = { version = "1.21.0", path = "common/nym-kkt" } nym-kkt-ciphersuite = { version = "1.21.0", path = "common/nym-kkt-ciphersuite" } nym-kkt-context = { version = "1.21.0", path = "common/nym-kkt-context" } diff --git a/common/nym-lp-data/Cargo.toml b/common/nym-lp-data/Cargo.toml new file mode 100644 index 0000000000..5a4f47aafa --- /dev/null +++ b/common/nym-lp-data/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "nym-lp-data" +description = "Lewes Protocol data structure for the Nym network" +version.workspace = true +authors.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +repository.workspace = true +homepage.workspace = true +documentation.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +bytes.workspace = true +num_enum.workspace = true +tracing.workspace = true +thiserror.workspace = true + +nym-common.workspace = true + + +[lints] +workspace = true diff --git a/common/nym-lp-data/src/lib.rs b/common/nym-lp-data/src/lib.rs new file mode 100644 index 0000000000..46f172a2fd --- /dev/null +++ b/common/nym-lp-data/src/lib.rs @@ -0,0 +1,4 @@ +// Copyright 2026 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +pub mod packet; diff --git a/common/nym-lp/src/packet/error.rs b/common/nym-lp-data/src/packet/error.rs similarity index 100% rename from common/nym-lp/src/packet/error.rs rename to common/nym-lp-data/src/packet/error.rs diff --git a/common/nym-lp/src/packet/frame.rs b/common/nym-lp-data/src/packet/frame.rs similarity index 96% rename from common/nym-lp/src/packet/frame.rs rename to common/nym-lp-data/src/packet/frame.rs index 81b73de04f..c0bd7b265d 100644 --- a/common/nym-lp/src/packet/frame.rs +++ b/common/nym-lp-data/src/packet/frame.rs @@ -110,7 +110,9 @@ impl LpFrame { } } - pub(crate) fn len(&self) -> usize { + // is_empty in the sense len == 0 doesn't make sense in that case + #[allow(clippy::len_without_is_empty)] + pub fn len(&self) -> usize { LpFrameHeader::SIZE + self.content.len() } } @@ -165,6 +167,8 @@ impl SphinxStreamFrameAttributes { } pub fn parse(attrs: &LpFrameAttributes) -> Result { + // SAFETY : 8 bytes slice into 8 bytes array + #[allow(clippy::unwrap_used)] let stream_id = u64::from_be_bytes(attrs[0..8].try_into().unwrap()); let msg_type = match attrs[8] { 0 => SphinxStreamMsgType::Open, @@ -175,6 +179,8 @@ impl SphinxStreamFrameAttributes { ))); } }; + // SAFETY : 4 bytes slice into 4 bytes array + #[allow(clippy::unwrap_used)] let sequence_num = u32::from_be_bytes(attrs[9..13].try_into().unwrap()); Ok(Self { stream_id, diff --git a/common/nym-lp/src/packet/header.rs b/common/nym-lp-data/src/packet/header.rs similarity index 98% rename from common/nym-lp/src/packet/header.rs rename to common/nym-lp-data/src/packet/header.rs index 4055284f58..f6f573cecb 100644 --- a/common/nym-lp/src/packet/header.rs +++ b/common/nym-lp-data/src/packet/header.rs @@ -1,11 +1,13 @@ // Copyright 2026 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 +use crate::packet::error::MalformedLpPacketError; use crate::packet::version; -use crate::{packet::error::MalformedLpPacketError, peer_config::LpReceiverIndex}; use bytes::{BufMut, BytesMut}; use tracing::warn; +pub type LpReceiverIndex = u32; + /// Outer header (12 bytes) - always cleartext, used for routing. /// /// This is the first 12 bytes of every LP packet, containing only the fields diff --git a/common/nym-lp/src/packet/mod.rs b/common/nym-lp-data/src/packet/mod.rs similarity index 99% rename from common/nym-lp/src/packet/mod.rs rename to common/nym-lp-data/src/packet/mod.rs index e5e8687c4b..b45dfc812e 100644 --- a/common/nym-lp/src/packet/mod.rs +++ b/common/nym-lp-data/src/packet/mod.rs @@ -13,7 +13,6 @@ pub use header::{InnerHeader, LpHeader, OuterHeader}; pub mod error; pub mod frame; pub mod header; -pub mod replay; pub mod version { /// The current version of the Lewes Protocol that is put into each new constructed header. diff --git a/common/nym-lp/Cargo.toml b/common/nym-lp/Cargo.toml index 24f78711a0..03767d06f6 100644 --- a/common/nym-lp/Cargo.toml +++ b/common/nym-lp/Cargo.toml @@ -25,10 +25,10 @@ nym-crypto = { workspace = true, features = ["hashing"] } nym-common.workspace = true nym-kkt = { workspace = true } nym-kkt-ciphersuite = { workspace = true } +nym-lp-data.workspace = true # libcrux dependencies for PSQ (Post-Quantum PSK derivation) libcrux-psq = { workspace = true, features = ["test-utils"] } -num_enum = { workspace = true } zeroize = { workspace = true, features = ["zeroize_derive"] } @@ -48,3 +48,6 @@ mock = ["nym-test-utils"] [[bench]] name = "replay_protection" harness = false + +[lints] +workspace = true diff --git a/common/nym-lp/benches/replay_protection.rs b/common/nym-lp/benches/replay_protection.rs index 63c1b615d9..14e6237891 100644 --- a/common/nym-lp/benches/replay_protection.rs +++ b/common/nym-lp/benches/replay_protection.rs @@ -1,3 +1,5 @@ +#![allow(clippy::unwrap_used)] + use criterion::{BenchmarkId, Criterion, Throughput, black_box, criterion_group, criterion_main}; use nym_lp::replay::ReceivingKeyCounterValidator; use nym_test_utils::helpers::deterministic_rng_09; diff --git a/common/nym-lp/src/codec.rs b/common/nym-lp/src/codec.rs index b8a6b44cbf..dcd74fb0f0 100644 --- a/common/nym-lp/src/codec.rs +++ b/common/nym-lp/src/codec.rs @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 use crate::LpError; -use crate::packet::{EncryptedLpPacket, InnerHeader, LpFrame, LpHeader, LpPacket}; use bytes::BytesMut; use libcrux_psq::Channel; +use nym_lp_data::packet::{EncryptedLpPacket, InnerHeader, LpFrame, LpHeader, LpPacket}; // needs to be equal or above to the actual overhead pub(crate) const SANE_ENC_OVERHEAD: usize = 32; @@ -82,12 +82,12 @@ pub(crate) fn decrypt_lp_packet( mod tests { use crate::LpError; use crate::codec::{decrypt_data, decrypt_lp_packet, encrypt_data, encrypt_lp_packet}; - use crate::packet::{EncryptedLpPacket, LpFrame, LpHeader, LpPacket}; use crate::peer::mock_peers; use crate::psq::initiator::{build_psq_ciphersuite, build_psq_principal}; use crate::psq::{PSQ_MSG2_SIZE, psq_msg1_size, responder}; use libcrux_psq::{Channel, IntoSession}; use nym_kkt_ciphersuite::KEM; + use nym_lp_data::packet::{EncryptedLpPacket, LpFrame, LpHeader, LpPacket}; use nym_test_utils::helpers::u64_seeded_rng_09; fn mock_transport() -> ( diff --git a/common/nym-lp/src/error.rs b/common/nym-lp/src/error.rs index d292a08952..ac1d5b7357 100644 --- a/common/nym-lp/src/error.rs +++ b/common/nym-lp/src/error.rs @@ -1,13 +1,13 @@ // Copyright 2025 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::packet::MalformedLpPacketError; -use crate::peer_config::LpReceiverIndex; use crate::replay::ReplayError; use crate::transport::LpTransportError; use libcrux_psq::handshake::HandshakeError; use libcrux_psq::handshake::builders::BuilderError; use libcrux_psq::session::SessionError; +use nym_lp_data::packet::MalformedLpPacketError; +use nym_lp_data::packet::header::LpReceiverIndex; // use nym_crypto::asymmetric::ed25519::Ed25519RecoveryError; use nym_kkt::error::KKTError; use nym_kkt_ciphersuite::{HashFunction, KEM}; diff --git a/common/nym-lp/src/lib.rs b/common/nym-lp/src/lib.rs index a1193bd153..e9bc674833 100644 --- a/common/nym-lp/src/lib.rs +++ b/common/nym-lp/src/lib.rs @@ -3,7 +3,6 @@ pub mod codec; pub mod error; -pub mod packet; pub mod peer; pub mod peer_config; pub mod psq; @@ -43,9 +42,13 @@ pub struct SessionsMock { #[cfg(any(feature = "mock", test))] impl SessionsMock { + // Unwrap in test is fine + #![allow(clippy::unwrap_used)] + #![allow(clippy::panic)] + pub fn mock_seeded_post_handshake(seed: u64, kem: KEM) -> SessionsMock { use crate::peer::mock_peers; - use crate::peer_config::LpReceiverIndex; + use nym_lp_data::packet::header::LpReceiverIndex; use rand09::Rng; let (init, resp) = mock_peers(); diff --git a/common/nym-lp/src/packet/replay.rs b/common/nym-lp/src/packet/replay.rs deleted file mode 100644 index 5cbdc3c0d2..0000000000 --- a/common/nym-lp/src/packet/replay.rs +++ /dev/null @@ -1,33 +0,0 @@ -use crate::{LpError, packet::LpPacket, replay::ReceivingKeyCounterValidator}; - -pub trait LpPacketReplayExt { - /// Validate packet counter against a replay protection validator - /// - /// This performs a quick check to see if the packet counter is valid before - /// any expensive processing is done. - fn validate_counter(&self, validator: &ReceivingKeyCounterValidator) -> Result<(), LpError>; - - /// Mark packet as received in the replay protection validator - /// - /// This should be called after a packet has been successfully processed. - fn mark_received(&self, validator: &mut ReceivingKeyCounterValidator) -> Result<(), LpError>; -} - -impl LpPacketReplayExt for LpPacket { - /// Validate packet counter against a replay protection validator - /// - /// This performs a quick check to see if the packet counter is valid before - /// any expensive processing is done. - fn validate_counter(&self, validator: &ReceivingKeyCounterValidator) -> Result<(), LpError> { - validator.will_accept_branchless(self.header().outer.counter)?; - Ok(()) - } - - /// Mark packet as received in the replay protection validator - /// - /// This should be called after a packet has been successfully processed. - fn mark_received(&self, validator: &mut ReceivingKeyCounterValidator) -> Result<(), LpError> { - validator.mark_did_receive_branchless(self.header().outer.counter)?; - Ok(()) - } -} diff --git a/common/nym-lp/src/peer_config.rs b/common/nym-lp/src/peer_config.rs index d28dd6bc23..ab57bdfcea 100644 --- a/common/nym-lp/src/peer_config.rs +++ b/common/nym-lp/src/peer_config.rs @@ -6,12 +6,11 @@ use libcrux_psq::handshake::types::Authenticator; use nym_crypto::hkdf::blake3::derive_key_blake3_multi_input; use nym_kkt::keys::EncapsulationKey; +use nym_lp_data::packet::header::LpReceiverIndex; use rand09::{self, CryptoRng, Rng}; use tls_codec::Serialize; use zeroize::Zeroize; -pub type LpReceiverIndex = u32; - pub const MAX_HOPS: u8 = 16; pub const LP_PEER_CONFIG_SIZE: usize = 20; diff --git a/common/nym-lp/src/psq/mod.rs b/common/nym-lp/src/psq/mod.rs index 0386e62880..f8afee6abf 100644 --- a/common/nym-lp/src/psq/mod.rs +++ b/common/nym-lp/src/psq/mod.rs @@ -1,10 +1,10 @@ // Copyright 2026 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::packet::version; use crate::peer::{LpLocalPeer, LpRemotePeer}; use crate::transport::traits::LpHandshakeChannel; use nym_kkt_ciphersuite::{HashFunction, IntoEnumIterator, KEM, KEMKeyDigests, SignatureScheme}; +use nym_lp_data::packet::version; use std::collections::BTreeMap; pub(crate) mod handshake_message; diff --git a/common/nym-lp/src/replay/mod.rs b/common/nym-lp/src/replay/mod.rs index 6363600b4c..e19911710a 100644 --- a/common/nym-lp/src/replay/mod.rs +++ b/common/nym-lp/src/replay/mod.rs @@ -7,9 +7,44 @@ //! replay attacks and ensure packet ordering. It uses a bitmap-based //! approach to track received packets and validate their sequence. +use crate::LpError; +use nym_lp_data::packet::LpPacket; + pub mod error; pub mod simd; pub mod validator; pub use error::ReplayError; pub use validator::ReceivingKeyCounterValidator; + +pub trait LpPacketReplayExt { + /// Validate packet counter against a replay protection validator + /// + /// This performs a quick check to see if the packet counter is valid before + /// any expensive processing is done. + fn validate_counter(&self, validator: &ReceivingKeyCounterValidator) -> Result<(), LpError>; + + /// Mark packet as received in the replay protection validator + /// + /// This should be called after a packet has been successfully processed. + fn mark_received(&self, validator: &mut ReceivingKeyCounterValidator) -> Result<(), LpError>; +} + +impl LpPacketReplayExt for LpPacket { + /// Validate packet counter against a replay protection validator + /// + /// This performs a quick check to see if the packet counter is valid before + /// any expensive processing is done. + fn validate_counter(&self, validator: &ReceivingKeyCounterValidator) -> Result<(), LpError> { + validator.will_accept_branchless(self.header().outer.counter)?; + Ok(()) + } + + /// Mark packet as received in the replay protection validator + /// + /// This should be called after a packet has been successfully processed. + fn mark_received(&self, validator: &mut ReceivingKeyCounterValidator) -> Result<(), LpError> { + validator.mark_did_receive_branchless(self.header().outer.counter)?; + Ok(()) + } +} diff --git a/common/nym-lp/src/session.rs b/common/nym-lp/src/session.rs index dc122d425a..ea2ff84375 100644 --- a/common/nym-lp/src/session.rs +++ b/common/nym-lp/src/session.rs @@ -6,9 +6,7 @@ //! This module implements session management functionality, including replay protection use crate::codec::{decrypt_lp_packet, encrypt_lp_packet}; -use crate::packet::{EncryptedLpPacket, LpFrame, LpHeader, LpPacket}; use crate::peer::{LpLocalPeer, LpRemotePeer}; -use crate::peer_config::LpReceiverIndex; use crate::psq::initiator::HandshakeMode; use crate::psq::{ InitiatorData, PSQHandshakeState, PSQHandshakeStateInitiator, PSQHandshakeStateResponder, @@ -21,6 +19,8 @@ use libcrux_psq::handshake::types::{Authenticator, DHPublicKey}; use libcrux_psq::session::{Session, SessionBinding}; use nym_kkt::keys::EncapsulationKey; use nym_kkt_ciphersuite::{KEM, KEMKeyDigests}; +use nym_lp_data::packet::header::LpReceiverIndex; +use nym_lp_data::packet::{EncryptedLpPacket, LpFrame, LpHeader, LpPacket}; use std::collections::BTreeMap; use std::fmt::{Debug, Formatter}; @@ -355,7 +355,7 @@ impl LpTransportSession { self.receiving_counter_mark(ctr)?; // 4. deliver the message - Ok(LpAction::DeliverFrame(packet.frame)) + Ok(LpAction::DeliverFrame(packet.into_frame())) } LpInput::SendFrame(data) => { // Encrypt and send application data diff --git a/common/nym-lp/src/session_integration/mod.rs b/common/nym-lp/src/session_integration/mod.rs index e07538f45b..fd35b2b94f 100644 --- a/common/nym-lp/src/session_integration/mod.rs +++ b/common/nym-lp/src/session_integration/mod.rs @@ -1,9 +1,9 @@ #[cfg(test)] mod tests { - use crate::packet::{EncryptedLpPacket, LpFrame}; use crate::session::{LpAction, LpInput}; use crate::{LpError, SessionManager, SessionsMock}; use nym_kkt_ciphersuite::{IntoEnumIterator, KEM}; + use nym_lp_data::packet::{EncryptedLpPacket, LpFrame}; // helpers to make tests smaller trait ActionExtract { diff --git a/common/nym-lp/src/session_manager.rs b/common/nym-lp/src/session_manager.rs index 6c54d67bbf..36d5ced5cb 100644 --- a/common/nym-lp/src/session_manager.rs +++ b/common/nym-lp/src/session_manager.rs @@ -6,9 +6,9 @@ //! This module implements session lifecycle management functionality, handling //! creation, retrieval, and storage of sessions. -use crate::packet::{EncryptedLpPacket, LpFrame}; -use crate::peer_config::LpReceiverIndex; use crate::{LpError, LpTransportSession}; +use nym_lp_data::packet::header::LpReceiverIndex; +use nym_lp_data::packet::{EncryptedLpPacket, LpFrame}; use std::collections::HashMap; pub use crate::replay::validator::PacketCount; diff --git a/common/nym-lp/src/transport/traits.rs b/common/nym-lp/src/transport/traits.rs index 0d71632cf5..49c90b40db 100644 --- a/common/nym-lp/src/transport/traits.rs +++ b/common/nym-lp/src/transport/traits.rs @@ -1,10 +1,10 @@ // Copyright 2026 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use crate::packet::{EncryptedLpPacket, OuterHeader}; use crate::transport::error::LpTransportError; use nym_kkt::context::KKTMode; use nym_kkt_ciphersuite::KEM; +use nym_lp_data::packet::{EncryptedLpPacket, OuterHeader}; use std::net::SocketAddr; use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; use tokio::net::TcpStream; diff --git a/gateway/Cargo.toml b/gateway/Cargo.toml index d5c76b9b54..69a05d9288 100644 --- a/gateway/Cargo.toml +++ b/gateway/Cargo.toml @@ -80,7 +80,7 @@ nym-id = { workspace = true } nym-service-provider-requests-common = { workspace = true } nym-registration-common = { path = "../common/registration" } -nym-lp = { path = "../common/nym-lp" } +nym-lp-data.workspace = true defguard_wireguard_rs = { workspace = true } diff --git a/gateway/src/node/wireguard/new_peer_registration/lp.rs b/gateway/src/node/wireguard/new_peer_registration/lp.rs index 9e7a45d057..352e517ccf 100644 --- a/gateway/src/node/wireguard/new_peer_registration/lp.rs +++ b/gateway/src/node/wireguard/new_peer_registration/lp.rs @@ -7,7 +7,7 @@ use crate::node::wireguard::new_peer_registration::pending::{ use crate::node::wireguard::{GatewayWireguardError, PeerRegistrator}; use defguard_wireguard_rs::host::Peer; use defguard_wireguard_rs::key::Key; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp_data::packet::header::LpReceiverIndex; use nym_registration_common::{LpRegistrationResponse, WireguardRegistrationData}; use nym_wireguard::ip_pool::{allocated_ip_pair, IpPair}; use nym_wireguard_types::PeerPublicKey; diff --git a/gateway/src/node/wireguard/new_peer_registration/mod.rs b/gateway/src/node/wireguard/new_peer_registration/mod.rs index ddb53b5517..f21ee02096 100644 --- a/gateway/src/node/wireguard/new_peer_registration/mod.rs +++ b/gateway/src/node/wireguard/new_peer_registration/mod.rs @@ -31,7 +31,7 @@ use nym_credentials_interface::{BandwidthCredential, CredentialSpendingData}; use nym_crypto::asymmetric::x25519; use nym_gateway_requests::models::CredentialSpendingRequest; use nym_gateway_storage::models::PersistedBandwidth; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp_data::packet::header::LpReceiverIndex; use nym_node_metrics::prometheus_wrapper::{PrometheusMetric, PROMETHEUS_METRICS}; use nym_registration_common::dvpn::{ LpDvpnRegistrationFinalisation, LpDvpnRegistrationInitialRequest, diff --git a/gateway/src/node/wireguard/new_peer_registration/pending.rs b/gateway/src/node/wireguard/new_peer_registration/pending.rs index 1899ccf8c8..b8b9e4d7ef 100644 --- a/gateway/src/node/wireguard/new_peer_registration/pending.rs +++ b/gateway/src/node/wireguard/new_peer_registration/pending.rs @@ -8,7 +8,7 @@ use crate::node::wireguard::GatewayWireguardError; use defguard_wireguard_rs::key::Key; use nym_authenticator_requests::AuthenticatorVersion; use nym_crypto::asymmetric::x25519; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp_data::packet::header::LpReceiverIndex; use nym_registration_common::{LpRegistrationResponse, WireguardRegistrationData}; use nym_sdk::mixnet::Recipient; use nym_wireguard::ip_pool::IpPair; diff --git a/nym-gateway-probe/Cargo.toml b/nym-gateway-probe/Cargo.toml index 7cb0bf8575..18be3c9577 100644 --- a/nym-gateway-probe/Cargo.toml +++ b/nym-gateway-probe/Cargo.toml @@ -60,6 +60,7 @@ nym-ip-packet-client = { workspace = true } nym-ip-packet-requests = { workspace = true } nym-kkt-ciphersuite = { workspace = true } nym-lp = { path = "../common/nym-lp" } +nym-lp-data.workspace = true nym-network-defaults = { path = "../common/network-defaults" } nym-node-requests = { path = "../nym-node/nym-node-requests" } nym-registration-client = { path = "../nym-registration-client" } diff --git a/nym-gateway-probe/src/common/nodes.rs b/nym-gateway-probe/src/common/nodes.rs index c36daff81b..85c87614d0 100644 --- a/nym-gateway-probe/src/common/nodes.rs +++ b/nym-gateway-probe/src/common/nodes.rs @@ -12,8 +12,8 @@ use nym_bin_common::build_information::BinaryBuildInformationOwned; use nym_http_api_client::UserAgent; use nym_kkt_ciphersuite::Ciphersuite; use nym_kkt_ciphersuite::{KEM, KEMKeyDigests}; -use nym_lp::packet::version; use nym_lp::peer::{DHPublicKey, LpRemotePeer}; +use nym_lp_data::packet::version; use nym_network_defaults::DEFAULT_NYM_NODE_HTTP_PORT; use nym_node_requests::api::client::NymNodeApiClientExt; use nym_node_requests::api::v1::node::models::AuxiliaryDetails as NodeAuxiliaryDetails; diff --git a/nym-ip-packet-client/Cargo.toml b/nym-ip-packet-client/Cargo.toml index 4117d80350..837cab9fb2 100644 --- a/nym-ip-packet-client/Cargo.toml +++ b/nym-ip-packet-client/Cargo.toml @@ -26,4 +26,4 @@ tracing.workspace = true nym-sdk = { workspace = true } nym-ip-packet-requests = { workspace = true } -nym-lp = { workspace = true } +nym-lp-data = { workspace = true } diff --git a/nym-ip-packet-client/src/lp_stream.rs b/nym-ip-packet-client/src/lp_stream.rs index 736d55f378..e863fbafad 100644 --- a/nym-ip-packet-client/src/lp_stream.rs +++ b/nym-ip-packet-client/src/lp_stream.rs @@ -1,6 +1,6 @@ use bytes::BytesMut; use nym_ip_packet_requests::SPHINX_STREAM_VERSION_THRESHOLD; -use nym_lp::packet::frame::{ +use nym_lp_data::packet::frame::{ LpFrame, LpFrameHeader, LpFrameKind, SphinxStreamFrameAttributes, SphinxStreamMsgType, }; use nym_sdk::mixnet::ReconstructedMessage; @@ -65,7 +65,7 @@ pub fn encode_stream_frame(stream_id: u64, sequence_num: u32, payload: Vec) #[cfg(test)] mod tests { use super::*; - use nym_lp::packet::frame::SphinxStreamFrameAttributes; + use nym_lp_data::packet::frame::SphinxStreamFrameAttributes; #[test] fn stream_frame_roundtrip_unwraps_payload() { diff --git a/nym-node/Cargo.toml b/nym-node/Cargo.toml index 574d41d60a..a53c8dcc92 100644 --- a/nym-node/Cargo.toml +++ b/nym-node/Cargo.toml @@ -117,6 +117,7 @@ nym-ip-packet-router = { path = "../service-providers/ip-packet-router" } # LP dependencies nym-lp = { workspace = true } +nym-lp-data.workspace = true nym-registration-common = { path = "../common/registration" } bincode = { workspace = true } diff --git a/nym-node/src/node/lp/control/control_tests.rs b/nym-node/src/node/lp/control/control_tests.rs index f83e8c76e9..096d58e81b 100644 --- a/nym-node/src/node/lp/control/control_tests.rs +++ b/nym-node/src/node/lp/control/control_tests.rs @@ -9,8 +9,8 @@ mod tests { use crate::node::lp::directory::LpNodeDetails; use crate::node::lp::state::SharedLpNodeControlState; use anyhow::Context; - use nym_lp::packet::version; use nym_lp::peer::{LpLocalPeer, LpRemotePeer, mock_peers}; + use nym_lp_data::packet::version; use nym_test_utils::helpers::seeded_rng; use nym_test_utils::mocks::async_read_write::MockIOStream; use nym_test_utils::traits::TimeboxedSpawnable; diff --git a/nym-node/src/node/lp/control/ingress/client_handler.rs b/nym-node/src/node/lp/control/ingress/client_handler.rs index 6cd8a6c1b7..1613795601 100644 --- a/nym-node/src/node/lp/control/ingress/client_handler.rs +++ b/nym-node/src/node/lp/control/ingress/client_handler.rs @@ -6,13 +6,15 @@ use crate::node::lp::control::{LP_DURATION_BUCKETS, LpConnectionStats}; use crate::node::lp::error::LpHandlerError; use crate::node::lp::state::SharedLpClientControlState; use dashmap::mapref::one::RefMut; -use nym_lp::packet::frame::LpFrameKind; -use nym_lp::packet::{EncryptedLpPacket, ForwardPacketData, LpFrame}; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp::LpTransportSession; use nym_lp::session::{LpAction, LpInput}; use nym_lp::transport::LpHandshakeChannel; use nym_lp::transport::traits::LpTransportChannel; -use nym_lp::{LpTransportSession, packet::frame::ExpectedResponseSize}; +use nym_lp_data::packet::frame::LpFrameKind; +use nym_lp_data::packet::header::LpReceiverIndex; +use nym_lp_data::packet::{ + EncryptedLpPacket, ForwardPacketData, LpFrame, frame::ExpectedResponseSize, +}; use nym_metrics::{add_histogram_obs, inc}; use nym_node_metrics::NymNodeMetrics; use nym_registration_common::{LpRegistrationRequest, RegistrationStatus}; diff --git a/nym-node/src/node/lp/data/handler.rs b/nym-node/src/node/lp/data/handler.rs index 53e4af7ea1..d4961b3f12 100644 --- a/nym-node/src/node/lp/data/handler.rs +++ b/nym-node/src/node/lp/data/handler.rs @@ -17,7 +17,7 @@ use crate::node::lp::error::LpHandlerError; use crate::node::lp::state::SharedLpDataState; -use nym_lp::packet::OuterHeader; +use nym_lp_data::packet::OuterHeader; use nym_metrics::inc; use std::net::SocketAddr; use tracing::*; diff --git a/nym-node/src/node/lp/error.rs b/nym-node/src/node/lp/error.rs index c86b34b911..a0e84ccf60 100644 --- a/nym-node/src/node/lp/error.rs +++ b/nym-node/src/node/lp/error.rs @@ -1,11 +1,10 @@ // Copyright 2026 - Nym Technologies SA // SPDX-License-Identifier: Apache-2.0 -use nym_lp::packet::frame::LpFrameKind; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp::LpError; use nym_lp::session::LpAction; use nym_lp::transport::LpTransportError; -use nym_lp::{LpError, packet::MalformedLpPacketError}; +use nym_lp_data::packet::{MalformedLpPacketError, frame::LpFrameKind, header::LpReceiverIndex}; use nym_topology::NodeId; use std::net::{IpAddr, SocketAddr}; use thiserror::Error; diff --git a/nym-node/src/node/lp/registration.rs b/nym-node/src/node/lp/registration.rs index fa51d49ac0..4fd2a29144 100644 --- a/nym-node/src/node/lp/registration.rs +++ b/nym-node/src/node/lp/registration.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only use crate::node::lp::state::SharedLpClientControlState; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp_data::packet::header::LpReceiverIndex; use nym_metrics::{add_histogram_obs, inc}; use nym_registration_common::dvpn::{ LpDvpnRegistrationFinalisation, LpDvpnRegistrationInitialRequest, diff --git a/nym-node/src/node/lp/state.rs b/nym-node/src/node/lp/state.rs index c16dcf50ca..0afac45b85 100644 --- a/nym-node/src/node/lp/state.rs +++ b/nym-node/src/node/lp/state.rs @@ -10,7 +10,7 @@ use dashmap::mapref::one::RefMut; use nym_gateway::node::wireguard::PeerRegistrator; use nym_lp::LpTransportSession; use nym_lp::peer::LpLocalPeer; -use nym_lp::peer_config::LpReceiverIndex; +use nym_lp_data::packet::header::LpReceiverIndex; use nym_mixnet_client::forwarder::MixForwardingSender; use nym_node_metrics::NymNodeMetrics; use std::sync::Arc; diff --git a/nym-registration-client/Cargo.toml b/nym-registration-client/Cargo.toml index 9e5082689f..84e2471372 100644 --- a/nym-registration-client/Cargo.toml +++ b/nym-registration-client/Cargo.toml @@ -31,6 +31,7 @@ nym-credentials-interface = { workspace = true } nym-crypto = { workspace = true, features = ["asymmetric", "libcrux_x25519"] } nym-ip-packet-client = { workspace = true } nym-lp = { path = "../common/nym-lp" } +nym-lp-data.workspace = true nym-registration-common = { workspace = true } nym-sdk = { workspace = true } nym-validator-client = { workspace = true } diff --git a/nym-registration-client/src/lp_client/client.rs b/nym-registration-client/src/lp_client/client.rs index 45527b4bb7..5fa37662bd 100644 --- a/nym-registration-client/src/lp_client/client.rs +++ b/nym-registration-client/src/lp_client/client.rs @@ -13,13 +13,13 @@ use crate::lp_client::session_helpers::{extract_forwarded_response, prepare_send use nym_bandwidth_controller::{BandwidthTicketProvider, DEFAULT_TICKETS_TO_SPEND}; use nym_credentials_interface::TicketType; use nym_crypto::asymmetric::{ed25519, x25519}; +use nym_lp::Ciphersuite; use nym_lp::LpTransportSession; use nym_lp::peer::{DHKeyPair, LpLocalPeer, LpRemotePeer}; -use nym_lp::peer_config::LpReceiverIndex; use nym_lp::psq::initiator::HandshakeMode; use nym_lp::transport::traits::LpTransportChannel; use nym_lp::transport::{LpHandshakeChannel, LpTransportError}; -use nym_lp::{Ciphersuite, packet::EncryptedLpPacket, packet::version}; +use nym_lp_data::packet::{EncryptedLpPacket, header::LpReceiverIndex, version}; use nym_registration_common::dvpn::LpDvpnRegistrationResponseMessageContent; use nym_registration_common::{ LpRegistrationRequest, LpRegistrationResponse, WireguardConfiguration, @@ -708,7 +708,7 @@ where mod tests { use super::*; use nym_kkt::key_utils::generate_lp_keypair_x25519; - use nym_lp::packet::version; + use nym_lp_data::packet::version; use nym_test_utils::helpers::deterministic_rng_09; #[test] diff --git a/nym-registration-client/src/lp_client/error.rs b/nym-registration-client/src/lp_client/error.rs index 168ee3836e..4b6fc15b1e 100644 --- a/nym-registration-client/src/lp_client/error.rs +++ b/nym-registration-client/src/lp_client/error.rs @@ -4,10 +4,10 @@ //! Error types for LP (Lewes Protocol) client operations. use nym_lp::LpError; -use nym_lp::packet::MalformedLpPacketError; -use nym_lp::packet::frame::LpFrameKind; use nym_lp::session::LpAction; use nym_lp::transport::LpTransportError; +use nym_lp_data::packet::MalformedLpPacketError; +use nym_lp_data::packet::frame::LpFrameKind; use thiserror::Error; /// Errors that can occur during LP client operations. diff --git a/nym-registration-client/src/lp_client/helpers.rs b/nym-registration-client/src/lp_client/helpers.rs index bda1a67a69..c0f5747222 100644 --- a/nym-registration-client/src/lp_client/helpers.rs +++ b/nym-registration-client/src/lp_client/helpers.rs @@ -4,10 +4,10 @@ #![allow(dead_code)] use crate::LpClientError; -use nym_lp::packet::frame::LpFrameKind; -use nym_lp::packet::{ForwardPacketData, LpFrame}; use nym_lp::peer::LpRemotePeer; use nym_lp::session::{LpAction, LpInput}; +use nym_lp_data::packet::frame::LpFrameKind; +use nym_lp_data::packet::{ForwardPacketData, LpFrame}; use nym_registration_common::{ LpRegistrationRequest, LpRegistrationResponse, NymNodeLPInformation, }; diff --git a/nym-registration-client/src/lp_client/nested_session/connection.rs b/nym-registration-client/src/lp_client/nested_session/connection.rs index c446998756..9ae7488193 100644 --- a/nym-registration-client/src/lp_client/nested_session/connection.rs +++ b/nym-registration-client/src/lp_client/nested_session/connection.rs @@ -5,10 +5,10 @@ use crate::lp_client::helpers::{convert_forward_data, try_convert_forward_respon use crate::{LpClientError, LpRegistrationClient}; use bytes::{BufMut, BytesMut}; use nym_lp::KEM; -use nym_lp::packet::{EncryptedLpPacket, ForwardPacketData, frame::ExpectedResponseSize}; use nym_lp::session::{LpAction, LpInput}; use nym_lp::transport::traits::{HandshakeMessage, LpTransportChannel}; use nym_lp::transport::{LpHandshakeChannel, LpTransportError}; +use nym_lp_data::packet::{EncryptedLpPacket, ForwardPacketData, frame::ExpectedResponseSize}; use std::io; use std::net::SocketAddr; diff --git a/nym-registration-client/src/lp_client/nested_session/mod.rs b/nym-registration-client/src/lp_client/nested_session/mod.rs index 08ba26ee4d..fcf1fa32b5 100644 --- a/nym-registration-client/src/lp_client/nested_session/mod.rs +++ b/nym-registration-client/src/lp_client/nested_session/mod.rs @@ -27,13 +27,13 @@ use crate::lp_client::session_helpers::{extract_forwarded_response, prepare_send use nym_bandwidth_controller::{BandwidthTicketProvider, DEFAULT_TICKETS_TO_SPEND}; use nym_credentials_interface::TicketType; use nym_crypto::asymmetric::{ed25519, x25519}; -use nym_lp::packet::version; -use nym_lp::packet::{EncryptedLpPacket, LpFrame}; use nym_lp::peer::{DHKeyPair, LpLocalPeer, LpRemotePeer}; use nym_lp::psq::initiator::HandshakeMode; use nym_lp::transport::LpHandshakeChannel; use nym_lp::transport::traits::LpTransportChannel; use nym_lp::{Ciphersuite, KEM, LpTransportSession}; +use nym_lp_data::packet::version; +use nym_lp_data::packet::{EncryptedLpPacket, LpFrame}; use nym_registration_common::dvpn::LpDvpnRegistrationResponseMessageContent; use nym_registration_common::{ LpRegistrationRequest, LpRegistrationResponse, WireguardConfiguration, diff --git a/nym-registration-client/src/lp_client/session_helpers.rs b/nym-registration-client/src/lp_client/session_helpers.rs index fa7d0c9ef6..d411281ab1 100644 --- a/nym-registration-client/src/lp_client/session_helpers.rs +++ b/nym-registration-client/src/lp_client/session_helpers.rs @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 use crate::LpClientError; -use nym_lp::packet::LpFrame; +use nym_lp::LpTransportSession; use nym_lp::session::{LpAction, LpInput}; -use nym_lp::{LpTransportSession, packet::EncryptedLpPacket}; +use nym_lp_data::packet::{EncryptedLpPacket, LpFrame}; /// Attempt to prepare the provided data for sending by wrapping it in appropriate `LpAction`, /// and attempting to extract `EncryptedLpPacket` from the provided state machine. diff --git a/sdk/rust/nym-sdk/Cargo.toml b/sdk/rust/nym-sdk/Cargo.toml index 931c640edb..1391873b51 100644 --- a/sdk/rust/nym-sdk/Cargo.toml +++ b/sdk/rust/nym-sdk/Cargo.toml @@ -39,7 +39,7 @@ nym-credentials-interface = { workspace = true } nym-credential-storage = { workspace = true } nym-credential-utils = { workspace = true } nym-network-defaults = { workspace = true } -nym-lp = { workspace = true } +nym-lp-data = { workspace = true } nym-sphinx = { workspace = true } nym-statistics-common = { workspace = true } nym-task = { workspace = true } diff --git a/sdk/rust/nym-sdk/src/mixnet/stream/mixnet_stream.rs b/sdk/rust/nym-sdk/src/mixnet/stream/mixnet_stream.rs index c7de30e9ba..0b27bf2b79 100644 --- a/sdk/rust/nym-sdk/src/mixnet/stream/mixnet_stream.rs +++ b/sdk/rust/nym-sdk/src/mixnet/stream/mixnet_stream.rs @@ -19,7 +19,7 @@ use nym_sphinx::params::PacketType; use nym_task::connections::TransmissionLane; use tokio_util::sync::PollSender; -use nym_lp::packet::frame::SphinxStreamMsgType; +use nym_lp_data::packet::frame::SphinxStreamMsgType; use super::protocol::{encode_stream_message, StreamId}; use super::StreamMap; diff --git a/sdk/rust/nym-sdk/src/mixnet/stream/mod.rs b/sdk/rust/nym-sdk/src/mixnet/stream/mod.rs index 5f91536eab..9da2ce1701 100644 --- a/sdk/rust/nym-sdk/src/mixnet/stream/mod.rs +++ b/sdk/rust/nym-sdk/src/mixnet/stream/mod.rs @@ -40,7 +40,7 @@ use nym_sphinx::addressing::clients::Recipient; use nym_sphinx::anonymous_replies::requests::AnonymousSenderTag; use nym_task::connections::TransmissionLane; -use nym_lp::packet::frame::SphinxStreamMsgType; +use nym_lp_data::packet::frame::SphinxStreamMsgType; use protocol::{decode_stream_message, encode_stream_message}; use crate::mixnet::native_client::MixnetClient; diff --git a/sdk/rust/nym-sdk/src/mixnet/stream/protocol.rs b/sdk/rust/nym-sdk/src/mixnet/stream/protocol.rs index 058e6c445d..ddadcf11af 100644 --- a/sdk/rust/nym-sdk/src/mixnet/stream/protocol.rs +++ b/sdk/rust/nym-sdk/src/mixnet/stream/protocol.rs @@ -17,7 +17,7 @@ use std::fmt; use bytes::BytesMut; -use nym_lp::packet::frame::{ +use nym_lp_data::packet::frame::{ LpFrame, LpFrameHeader, LpFrameKind, SphinxStreamFrameAttributes, SphinxStreamMsgType, }; diff --git a/service-providers/ip-packet-router/Cargo.toml b/service-providers/ip-packet-router/Cargo.toml index 8c05b495e7..261fc676e9 100644 --- a/service-providers/ip-packet-router/Cargo.toml +++ b/service-providers/ip-packet-router/Cargo.toml @@ -26,7 +26,7 @@ nym-crypto = { workspace = true } nym-exit-policy = { workspace = true } nym-id = { workspace = true } nym-ip-packet-requests = { workspace = true } -nym-lp = { workspace = true } +nym-lp-data = { workspace = true } nym-network-defaults = { workspace = true } nym-network-requester = { path = "../network-requester" } nym-sdk = { workspace = true } diff --git a/service-providers/ip-packet-router/src/clients/connected_client_handler.rs b/service-providers/ip-packet-router/src/clients/connected_client_handler.rs index ff0e8e4924..da56306232 100644 --- a/service-providers/ip-packet-router/src/clients/connected_client_handler.rs +++ b/service-providers/ip-packet-router/src/clients/connected_client_handler.rs @@ -12,7 +12,7 @@ use nym_ip_packet_requests::{ v8::response::IpPacketResponse as IpPacketResponseV8, v9, }; -use nym_lp::packet::frame::{ +use nym_lp_data::packet::frame::{ LpFrame, LpFrameHeader, SphinxStreamFrameAttributes, SphinxStreamMsgType, }; use nym_sdk::mixnet::{ diff --git a/service-providers/ip-packet-router/src/mixnet_listener.rs b/service-providers/ip-packet-router/src/mixnet_listener.rs index 3295dfeeb1..6dd3613b7a 100644 --- a/service-providers/ip-packet-router/src/mixnet_listener.rs +++ b/service-providers/ip-packet-router/src/mixnet_listener.rs @@ -24,7 +24,7 @@ use crate::{ use futures::StreamExt; use nym_ip_packet_requests::codec::MultiIpPacketCodec; use nym_ip_packet_requests::{MAX_NON_STREAM_VERSION, SPHINX_STREAM_VERSION_THRESHOLD}; -use nym_lp::packet::frame::{LpFrameHeader, LpFrameKind, SphinxStreamFrameAttributes}; +use nym_lp_data::packet::frame::{LpFrameHeader, LpFrameKind, SphinxStreamFrameAttributes}; use nym_sdk::mixnet::MixnetMessageSender; use nym_sphinx::receiver::ReconstructedMessage; use nym_task::ShutdownToken; @@ -704,7 +704,7 @@ mod tests { #[test] fn test_lp_stream_frame_detected() { use bytes::BytesMut; - use nym_lp::packet::frame::{ + use nym_lp_data::packet::frame::{ LpFrameHeader, LpFrameKind, SphinxStreamFrameAttributes, SphinxStreamMsgType, }; @@ -713,7 +713,7 @@ mod tests { msg_type: SphinxStreamMsgType::Data, sequence_num: 42, }; - let frame = nym_lp::packet::frame::LpFrame::new_stream(attrs, vec![8, 1, 0]); // fake IPR payload + let frame = nym_lp_data::packet::frame::LpFrame::new_stream(attrs, vec![8, 1, 0]); // fake IPR payload let mut buf = BytesMut::new(); frame.encode(&mut buf); diff --git a/tools/nym-lp-client/Cargo.toml b/tools/nym-lp-client/Cargo.toml index c33b04f366..bbb576ebda 100644 --- a/tools/nym-lp-client/Cargo.toml +++ b/tools/nym-lp-client/Cargo.toml @@ -33,6 +33,7 @@ nym-kkt-ciphersuite = { workspace = true } nym-http-api-client = { path = "../../common/http-api-client" } nym-kcp = { path = "../../common/nym-kcp" } nym-lp = { path = "../../common/nym-lp" } +nym-lp-data.workspace = true nym-sphinx = { path = "../../common/nymsphinx" } nym-sphinx-framing = { path = "../../common/nymsphinx/framing", features = ["no-mix-acks"] } nym-sphinx-anonymous-replies = { path = "../../common/nymsphinx/anonymous-replies" } diff --git a/tools/nym-lp-client/src/client.rs b/tools/nym-lp-client/src/client.rs index 2d656b2334..e764eb74c2 100644 --- a/tools/nym-lp-client/src/client.rs +++ b/tools/nym-lp-client/src/client.rs @@ -33,8 +33,8 @@ use tracing::{debug, info, trace}; use crate::topology::{GatewayInfo, SpeedtestTopology}; use nym_ip_packet_requests::v8::request::IpPacketRequest; -use nym_lp::packet::version; use nym_lp::peer::{DHKeyPair, LpRemotePeer}; +use nym_lp_data::packet::version; use nym_sphinx::forwarding::packet::MixPacket; /// Conv ID for KCP - hash of source and destination addresses