diff --git a/Cargo.toml b/Cargo.toml index 7d11667eac..4107499754 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -397,14 +397,14 @@ prometheus = { version = "0.14.0" } # libcrux -libcrux-kem = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-ecdh = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-curve25519 = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-chacha20poly1305 = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-psq = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-ml-kem = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-sha3 = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } -libcrux-traits = { git = "https://github.com/jstuczyn/libcrux", branch = "jstuczyn/exposed-transport" } +libcrux-kem = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-ecdh = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-curve25519 = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-chacha20poly1305 = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-psq = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-ml-kem = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-sha3 = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } +libcrux-traits = { git = "https://github.com/cryspen/libcrux", rev = "b17f8687b67cdcfc10b55aeecc998bbbca28f775" } # Workspace dep definitions required by crates.io publication - we need a workspace version since `cargo workspaces` doesn't work with path imports from crate manifests nym-api-requests = { version = "1.20.4", path = "nym-api/nym-api-requests" } diff --git a/common/nym-lp/src/codec.rs b/common/nym-lp/src/codec.rs index 99ed876d9f..71a95b1923 100644 --- a/common/nym-lp/src/codec.rs +++ b/common/nym-lp/src/codec.rs @@ -53,7 +53,7 @@ pub fn parse_lp_header_only(src: &[u8]) -> Result { pub(crate) fn encrypt_data( plaintext: &[u8], - transport: &mut libcrux_psq::Transport, + transport: &mut libcrux_psq::session::Transport, ) -> Result, LpError> { let mut ciphertext = vec![0u8; plaintext.len() + CIPHERTEXT_OVERHEAD + 64]; let n = transport.write_message(&*plaintext, &mut ciphertext)?; @@ -69,7 +69,7 @@ pub(crate) fn encrypt_data( pub(crate) fn decrypt_data( ciphertext: &[u8], - transport: &mut libcrux_psq::Transport, + transport: &mut libcrux_psq::session::Transport, ) -> Result, LpError> { if ciphertext.len() < CIPHERTEXT_OVERHEAD { return Err(LpError::InsufficientBufferSize); @@ -87,7 +87,7 @@ pub(crate) fn decrypt_data( pub fn encrypt_lp_packet( packet: LpPacket, - transport: &mut libcrux_psq::Transport, + transport: &mut libcrux_psq::session::Transport, ) -> Result { let mut plaintext = BytesMut::with_capacity(InnerHeader::SIZE + packet.message().len()); packet.header().inner.encode(&mut plaintext); @@ -100,7 +100,7 @@ pub fn encrypt_lp_packet( pub fn decrypt_lp_packet( packet: EncryptedLpPacket, - transport: &mut libcrux_psq::Transport, + transport: &mut libcrux_psq::session::Transport, ) -> Result { if packet.ciphertext().len() < InnerHeader::SIZE + CIPHERTEXT_OVERHEAD { return Err(LpError::InsufficientBufferSize); @@ -136,7 +136,7 @@ pub fn decrypt_lp_packet( pub fn serialize_lp_packet( item: LpPacket, dst: &mut BytesMut, - transport: &mut libcrux_psq::Transport, + transport: &mut libcrux_psq::session::Transport, ) -> Result<(), LpError> { // 1. encrypt the inner header and payload let encrypted_packet = encrypt_lp_packet(item, transport)?; diff --git a/common/nym-lp/src/session.rs b/common/nym-lp/src/session.rs index 992412f80a..9ec330396a 100644 --- a/common/nym-lp/src/session.rs +++ b/common/nym-lp/src/session.rs @@ -36,7 +36,7 @@ pub struct LpSession { /// The current active transport channel // In the future it might get split between UDP and TCP transports - active_transport: libcrux_psq::Transport, + active_transport: libcrux_psq::session::Transport, /// Negotiated protocol version from handshake. protocol_version: u8, @@ -160,7 +160,7 @@ impl LpSession { &self.session_binding } - pub(crate) fn active_transport(&mut self) -> &mut libcrux_psq::Transport { + pub(crate) fn active_transport(&mut self) -> &mut libcrux_psq::session::Transport { &mut self.active_transport } diff --git a/integration-tests/src/lp_registration.rs b/integration-tests/src/lp_registration.rs index 349db4ee3d..b38e8e36e3 100644 --- a/integration-tests/src/lp_registration.rs +++ b/integration-tests/src/lp_registration.rs @@ -74,7 +74,6 @@ mod tests { let ed25519_keys = ed25519::KeyPair::new(&mut rng08); let x25519_wg_keys = Arc::new(x25519::KeyPair::new(&mut rng08)); - let lp_x25519_keys = Arc::new(generate_keypair_x25519(rng)); let mlkem_keypair = generate_keypair_mlkem(rng); let mceliece_keypair = generate_keypair_mceliece(rng); @@ -404,7 +403,7 @@ mod tests { #[tokio::test] async fn test_basic_lp_entry_registration() -> anyhow::Result<()> { - nym_test_utils::helpers::setup_test_logger(); + // nym_test_utils::helpers::setup_test_logger(); // initialise random, but deterministic, keys, addresses, etc. for the parties let mut client_rng = u64_seeded_rng_09(0); let mut gateway_rng = u64_seeded_rng_09(1); diff --git a/nym-wallet/Cargo.lock b/nym-wallet/Cargo.lock index a551f7d995..e14a11e92d 100644 --- a/nym-wallet/Cargo.lock +++ b/nym-wallet/Cargo.lock @@ -2871,6 +2871,43 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +[[package]] +name = "hax-lib" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "543f93241d32b3f00569201bfce9d7a93c92c6421b23c77864ac929dc947b9fc" +dependencies = [ + "hax-lib-macros", + "num-bigint", + "num-traits", +] + +[[package]] +name = "hax-lib-macros" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8755751e760b11021765bb04cb4a6c4e24742688d9f3aa14c2079638f537b0f" +dependencies = [ + "hax-lib-macros-types", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "hax-lib-macros-types" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f177c9ae8ea456e2f71ff3c1ea47bf4464f772a05133fcbba56cd5ba169035a2" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_json", + "uuid", +] + [[package]] name = "heck" version = "0.4.1" @@ -3804,6 +3841,51 @@ version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +[[package]] +name = "libcrux-curve25519" +version = "0.0.6" +source = "git+https://github.com/cryspen/libcrux?rev=b17f8687b67cdcfc10b55aeecc998bbbca28f775#b17f8687b67cdcfc10b55aeecc998bbbca28f775" +dependencies = [ + "libcrux-hacl-rs", + "libcrux-macros", + "libcrux-secrets", + "libcrux-traits", +] + +[[package]] +name = "libcrux-hacl-rs" +version = "0.0.4" +source = "git+https://github.com/cryspen/libcrux?rev=b17f8687b67cdcfc10b55aeecc998bbbca28f775#b17f8687b67cdcfc10b55aeecc998bbbca28f775" +dependencies = [ + "libcrux-macros", +] + +[[package]] +name = "libcrux-macros" +version = "0.0.3" +source = "git+https://github.com/cryspen/libcrux?rev=b17f8687b67cdcfc10b55aeecc998bbbca28f775#b17f8687b67cdcfc10b55aeecc998bbbca28f775" +dependencies = [ + "quote", + "syn 2.0.100", +] + +[[package]] +name = "libcrux-secrets" +version = "0.0.5" +source = "git+https://github.com/cryspen/libcrux?rev=b17f8687b67cdcfc10b55aeecc998bbbca28f775#b17f8687b67cdcfc10b55aeecc998bbbca28f775" +dependencies = [ + "hax-lib", +] + +[[package]] +name = "libcrux-traits" +version = "0.0.6" +source = "git+https://github.com/cryspen/libcrux?rev=b17f8687b67cdcfc10b55aeecc998bbbca28f775#b17f8687b67cdcfc10b55aeecc998bbbca28f775" +dependencies = [ + "libcrux-secrets", + "rand 0.9.2", +] + [[package]] name = "libloading" version = "0.7.4" @@ -4356,6 +4438,7 @@ dependencies = [ "curve25519-dalek", "ed25519-dalek", "jwt-simple", + "libcrux-curve25519", "nym-pemstore", "rand 0.8.5", "rand 0.9.2", @@ -5712,6 +5795,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated"