feat: Lewes Protocol with PSQv2 (#6491)

* merging georgio/lp-psqv2-integration

* use authenicator on the responder's side

* nym-lp crate compiling

* moved the e2e test to nym-lp

* move key generation to peer

* moved principal generation

* update KKTResponder

* encapsulation key parsing

* Adding concrete types within KKT exchange

* initiator side of the full handshake

* responder side of the handshake and full e2e test

* fixed unit-tests within nym-kkt

* LpSession cleanup

* helpers for Transport

* revamp of the transport traits and initial work on client-side transport

* compiling nym-crypto

* 'working' client-entry dvpn reg

* Fix key conversion

* Slightly reduce use of rand08

* reverted back to libcrux repo refs

* intial telescoping reg

* removing dead code

* wip

* moved data encryption into the state machine

* restoring nym-lp tests

* update lp api model

* Add receiver index derivation

* Add receiver index derivation

* use derived receiver index

* feat: add kem key generation to nodes

* generate fresh x25519, mlkem768 and mceliece keys on config migration

* add lp peer config

* nym-node startup cleanup

* removed dependency on pre-rand09 from nym-lp

* re-expose LP information on the http API

* fixed tests compilation

* add peer config happy path tests

* formatting

* add more tests and fix bug

* better docs

* clippy and formatting issues

* return error on mceliece within NestedSession

* wasm fixes

* removed legacy nym-vpn-lib-wasm

* fixing wasm for real this time

* additional fixes

* add payload to kkt

* make clippy happy

* moved LP to nym-node crate

* cargo fmt

* integrate lpconfig payload

* fix response size trait impl

* Migrate receiver index

* Change receiver index to u32 and regorganize crates

* clippy

* hopefully final wasm fixes

* simple conversion method from semver to ciphersuite

* updated nym-node config template

* chore: remove duplicated code

---------

Co-authored-by: Georgio Nicolas <me@georgio.xyz>
This commit is contained in:
Jędrzej Stuczyński
2026-02-27 13:49:08 +00:00
committed by GitHub
parent e5c3f39a57
commit f6bd511599
167 changed files with 10977 additions and 16911 deletions
+2
View File
@@ -1,6 +1,8 @@
[build]
target = "wasm32-unknown-unknown"
target_arch = "wasm32"
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
[target.wasm32-unknown-unknown]
runner = 'wasm-bindgen-test-runner'
+1
View File
@@ -44,6 +44,7 @@ nym-node-tester-wasm = { path = "../node-tester", optional = true }
tokio_with_wasm = { workspace = true, features = ["full"] }
[dev-dependencies]
wasm-bindgen-test = { workspace = true }
+1
View File
@@ -1,3 +1,4 @@
[build]
target = "wasm32-unknown-unknown"
target_arch = "wasm32"
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
+1
View File
@@ -1,3 +1,4 @@
[build]
target = "wasm32-unknown-unknown"
target_arch = "wasm32"
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
+1
View File
@@ -25,6 +25,7 @@ pub(crate) async fn get_network_requester(
url::Url::parse(&nym_api_url.unwrap_or(NYM_API_URL.to_string()))?,
None,
);
#[allow(deprecated)]
let nodes = client.get_all_described_nodes().await?;
let providers: Vec<_> = nodes
.iter()
+1
View File
@@ -1,3 +1,4 @@
[build]
target = "wasm32-unknown-unknown"
target_arch = "wasm32"
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
+1
View File
@@ -1,3 +1,4 @@
[build]
target = "wasm32-unknown-unknown"
target_arch = "wasm32"
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]
-10
View File
@@ -16,31 +16,21 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
async-trait.workspace = true
bs58.workspace = true
getrandom = { workspace = true, features = ["js"] }
js-sys.workspace = true
wasm-bindgen.workspace = true
serde = { workspace = true, features = ["derive"] }
thiserror.workspace = true
tsify = { workspace = true, features = ["js"] }
uuid = { workspace = true, features = ["serde"] }
reqwest = { workspace = true }
wasmtimer = { workspace = true }
zeroize.workspace = true
rand = { workspace = true }
nym-bin-common = { workspace = true }
nym-compact-ecash = { workspace = true }
nym-credentials = { workspace = true }
nym-crypto = { workspace = true, features = ["asymmetric", "rand"] }
nym-http-api-client = { workspace = true }
nym-wasm-utils = { workspace = true }
[dev-dependencies]
anyhow = { workspace = true }
tokio = { workspace = true, features = ["full"] }
[package.metadata.wasm-pack.profile.release]