diff --git a/nym-vpn-core/Cargo.lock b/nym-vpn-core/Cargo.lock index 316018c0eb..2917170e57 100644 --- a/nym-vpn-core/Cargo.lock +++ b/nym-vpn-core/Cargo.lock @@ -2631,7 +2631,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.6", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -3561,7 +3561,7 @@ dependencies = [ [[package]] name = "nym-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmrs", @@ -3578,10 +3578,36 @@ dependencies = [ "time", ] +[[package]] +name = "nym-authenticator-client" +version = "0.1.0" +dependencies = [ + "futures", + "nym-authenticator-requests", + "nym-sdk", + "nym-wireguard-types", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "nym-authenticator-requests" +version = "0.1.0" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" +dependencies = [ + "bincode", + "nym-sphinx", + "nym-wireguard-types", + "rand 0.8.5", + "serde", +] + [[package]] name = "nym-bandwidth-controller" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bip39", "log", @@ -3601,7 +3627,7 @@ dependencies = [ [[package]] name = "nym-bin-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "const-str", "log", @@ -3615,7 +3641,7 @@ dependencies = [ [[package]] name = "nym-client-core" version = "1.1.15" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.21.7", @@ -3671,7 +3697,7 @@ dependencies = [ [[package]] name = "nym-client-core-config-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "humantime-serde", "nym-config", @@ -3687,7 +3713,7 @@ dependencies = [ [[package]] name = "nym-client-core-gateways-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "cosmrs", @@ -3706,7 +3732,7 @@ dependencies = [ [[package]] name = "nym-client-core-surb-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "dashmap", @@ -3723,7 +3749,7 @@ dependencies = [ [[package]] name = "nym-coconut" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "bs58 0.5.1", @@ -3744,7 +3770,7 @@ dependencies = [ [[package]] name = "nym-coconut-bandwidth-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -3754,7 +3780,7 @@ dependencies = [ [[package]] name = "nym-coconut-dkg-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -3768,7 +3794,7 @@ dependencies = [ [[package]] name = "nym-config" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dirs 5.0.1", "handlebars", @@ -3798,7 +3824,7 @@ dependencies = [ [[package]] name = "nym-contracts-common" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmwasm-schema", @@ -3813,7 +3839,7 @@ dependencies = [ [[package]] name = "nym-country-group" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "tracing", @@ -3822,7 +3848,7 @@ dependencies = [ [[package]] name = "nym-credential-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -3835,7 +3861,7 @@ dependencies = [ [[package]] name = "nym-credential-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-bandwidth-controller", @@ -3852,7 +3878,7 @@ dependencies = [ [[package]] name = "nym-credentials" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "bls12_381", @@ -3871,7 +3897,7 @@ dependencies = [ [[package]] name = "nym-credentials-interface" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "nym-coconut", @@ -3882,7 +3908,7 @@ dependencies = [ [[package]] name = "nym-crypto" version = "0.4.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "aes 0.8.4", "blake3", @@ -3908,7 +3934,7 @@ dependencies = [ [[package]] name = "nym-dkg" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bitvec", "bls12_381", @@ -3930,7 +3956,7 @@ dependencies = [ [[package]] name = "nym-exit-policy" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "thiserror", @@ -3940,7 +3966,7 @@ dependencies = [ [[package]] name = "nym-explorer-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-api-requests", "nym-contracts-common", @@ -3952,7 +3978,7 @@ dependencies = [ [[package]] name = "nym-explorer-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-explorer-api-requests", @@ -3965,7 +3991,7 @@ dependencies = [ [[package]] name = "nym-gateway-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", @@ -4054,7 +4080,7 @@ dependencies = [ [[package]] name = "nym-gateway-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "futures", @@ -4078,7 +4104,7 @@ dependencies = [ [[package]] name = "nym-group-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cw-controllers", @@ -4103,7 +4129,7 @@ dependencies = [ [[package]] name = "nym-http-api-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "http 1.1.0", @@ -4120,7 +4146,7 @@ dependencies = [ [[package]] name = "nym-id" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-credential-storage", "nym-credentials", @@ -4147,7 +4173,7 @@ dependencies = [ [[package]] name = "nym-ip-packet-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "bytes", @@ -4165,7 +4191,7 @@ dependencies = [ [[package]] name = "nym-metrics" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dashmap", "lazy_static", @@ -4176,7 +4202,7 @@ dependencies = [ [[package]] name = "nym-mixnet-contract-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.4.0", "cosmwasm-schema", @@ -4195,7 +4221,7 @@ dependencies = [ [[package]] name = "nym-multisig-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4211,7 +4237,7 @@ dependencies = [ [[package]] name = "nym-network-defaults" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cfg-if", "dotenvy", @@ -4227,7 +4253,7 @@ dependencies = [ [[package]] name = "nym-node-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.21.7", @@ -4249,7 +4275,7 @@ dependencies = [ [[package]] name = "nym-nonexhaustive-delayqueue" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "tokio", "tokio-stream", @@ -4260,7 +4286,7 @@ dependencies = [ [[package]] name = "nym-ordered-buffer" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "thiserror", @@ -4269,7 +4295,7 @@ dependencies = [ [[package]] name = "nym-outfox" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "blake3", "chacha20 0.9.1", @@ -4287,7 +4313,7 @@ dependencies = [ [[package]] name = "nym-pemstore" version = "0.3.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "pem", ] @@ -4295,7 +4321,7 @@ dependencies = [ [[package]] name = "nym-sdk" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bip39", @@ -4331,7 +4357,7 @@ dependencies = [ [[package]] name = "nym-service-providers-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -4345,7 +4371,7 @@ dependencies = [ [[package]] name = "nym-socks5-client-core" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "anyhow", "dirs 4.0.0", @@ -4378,7 +4404,7 @@ dependencies = [ [[package]] name = "nym-socks5-proxy-helpers" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "futures", @@ -4393,7 +4419,7 @@ dependencies = [ [[package]] name = "nym-socks5-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "log", @@ -4409,7 +4435,7 @@ dependencies = [ [[package]] name = "nym-sphinx" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-crypto", @@ -4433,7 +4459,7 @@ dependencies = [ [[package]] name = "nym-sphinx-acknowledgements" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-pemstore", @@ -4450,7 +4476,7 @@ dependencies = [ [[package]] name = "nym-sphinx-addressing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -4461,7 +4487,7 @@ dependencies = [ [[package]] name = "nym-sphinx-anonymous-replies" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "nym-crypto", @@ -4479,7 +4505,7 @@ dependencies = [ [[package]] name = "nym-sphinx-chunking" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-sphinx-addressing", @@ -4492,7 +4518,7 @@ dependencies = [ [[package]] name = "nym-sphinx-cover" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-acknowledgements", @@ -4510,7 +4536,7 @@ dependencies = [ [[package]] name = "nym-sphinx-forwarding" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "nym-sphinx-addressing", @@ -4522,7 +4548,7 @@ dependencies = [ [[package]] name = "nym-sphinx-framing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "nym-sphinx-params", @@ -4534,7 +4560,7 @@ dependencies = [ [[package]] name = "nym-sphinx-params" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -4545,7 +4571,7 @@ dependencies = [ [[package]] name = "nym-sphinx-routing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-sphinx-addressing", "nym-sphinx-types", @@ -4555,7 +4581,7 @@ dependencies = [ [[package]] name = "nym-sphinx-types" version = "0.2.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "sphinx-packet", @@ -4565,7 +4591,7 @@ dependencies = [ [[package]] name = "nym-task" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "log", @@ -4579,7 +4605,7 @@ dependencies = [ [[package]] name = "nym-topology" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bs58 0.5.1", @@ -4602,7 +4628,7 @@ dependencies = [ [[package]] name = "nym-validator-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.13.1", @@ -4649,7 +4675,7 @@ dependencies = [ [[package]] name = "nym-vesting-contract-common" version = "0.7.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4712,6 +4738,8 @@ dependencies = [ "netdev", "nix 0.23.2", "nix 0.28.0", + "nym-authenticator-client", + "nym-authenticator-requests", "nym-bandwidth-controller", "nym-bin-common", "nym-client-core", @@ -4828,7 +4856,7 @@ dependencies = [ [[package]] name = "nym-wireguard-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "base64 0.21.7", "dashmap", @@ -5441,7 +5469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.58", @@ -8360,7 +8388,7 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", diff --git a/nym-vpn-core/Cargo.toml b/nym-vpn-core/Cargo.toml index 19f8b0ab3b..afb89dca7e 100644 --- a/nym-vpn-core/Cargo.toml +++ b/nym-vpn-core/Cargo.toml @@ -1,6 +1,7 @@ [workspace] resolver = "2" members = [ + "crates/nym-authenticator-client", "crates/nym-connection-monitor", "crates/nym-gateway-directory", "crates/nym-gateway-probe", @@ -91,20 +92,21 @@ uniffi = { version = "0.27.3", features = ["cli"] } url = "2.5" vergen = { version = "8.3.1", default-features = false } -nym-bandwidth-controller = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-client-core = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-config = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-credential-storage = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-credentials = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-crypto = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-explorer-client = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-http-api-client = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-id = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-ip-packet-requests = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-node-requests = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-sdk = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-task = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-topology = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-validator-client = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-wireguard-types = { git = "https://github.com/nymtech/nym", rev = "70599b9" } +nym-authenticator-requests = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-bandwidth-controller = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-client-core = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-config = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-credential-storage = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-credentials = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-crypto = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-explorer-client = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-http-api-client = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-id = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-ip-packet-requests = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-node-requests = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-sdk = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-task = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-topology = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-validator-client = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-wireguard-types = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } diff --git a/nym-vpn-core/crates/nym-authenticator-client/Cargo.toml b/nym-vpn-core/crates/nym-authenticator-client/Cargo.toml new file mode 100644 index 0000000000..e7203679cd --- /dev/null +++ b/nym-vpn-core/crates/nym-authenticator-client/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "nym-authenticator-client" +version = "0.1.0" +authors.workspace = true +repository.workspace = true +homepage.workspace = true +documentation.workspace = true +edition.workspace = true +license.workspace = true + +[dependencies] +nym-authenticator-requests.workspace = true +nym-sdk.workspace = true +nym-wireguard-types.workspace = true +tracing.workspace = true +thiserror.workspace = true +tokio.workspace = true +tracing-subscriber.workspace = true +futures.workspace = true diff --git a/nym-vpn-core/crates/nym-authenticator-client/src/error.rs b/nym-vpn-core/crates/nym-authenticator-client/src/error.rs new file mode 100644 index 0000000000..a3c2af638e --- /dev/null +++ b/nym-vpn-core/crates/nym-authenticator-client/src/error.rs @@ -0,0 +1,26 @@ +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("got reply for connect request, but it appears intended for the wrong address?")] + GotReplyIntendedForWrongAddress, + + #[error("mixnet client stopped returning responses")] + NoMixnetMessagesReceived, + + #[error("failed to get version from message")] + NoVersionInMessage, + + #[error("received response with version v{received}, the client is too new and can only understand v{expected}")] + ReceivedResponseWithOldVersion { expected: u8, received: u8 }, + + #[error("received response with version v{received}, the client is too old and can only understand v{expected}")] + ReceivedResponseWithNewVersion { expected: u8, received: u8 }, + + #[error(transparent)] + SdkError(#[from] nym_sdk::Error), + + #[error("timeout waiting for connect response from exit gateway (authenticator)")] + TimeoutWaitingForConnectResponse, +} + +// Result type based on our error type +pub type Result = std::result::Result; diff --git a/nym-vpn-core/crates/nym-authenticator-client/src/lib.rs b/nym-vpn-core/crates/nym-authenticator-client/src/lib.rs new file mode 100644 index 0000000000..036211a665 --- /dev/null +++ b/nym-vpn-core/crates/nym-authenticator-client/src/lib.rs @@ -0,0 +1,186 @@ +use std::{cmp::Ordering, sync::Arc, time::Duration}; + +use nym_authenticator_requests::v1::{ + request::AuthenticatorRequest, response::AuthenticatorResponse, +}; +use nym_sdk::mixnet::{ + MixnetClient, MixnetClientSender, MixnetMessageSender, Recipient, ReconstructedMessage, + TransmissionLane, +}; +use nym_wireguard_types::ClientMessage; +use tracing::{debug, error}; + +mod error; + +pub use crate::error::{Error, Result}; + +#[derive(Clone)] +pub struct SharedMixnetClient(Arc>>); + +impl SharedMixnetClient { + pub fn new(mixnet_client: MixnetClient) -> Self { + Self(Arc::new(tokio::sync::Mutex::new(Some(mixnet_client)))) + } + + pub async fn lock(&self) -> tokio::sync::MutexGuard<'_, Option> { + self.0.lock().await + } + + pub async fn nym_address(&self) -> Recipient { + *self.lock().await.as_ref().unwrap().nym_address() + } + + pub async fn send(&self, msg: nym_sdk::mixnet::InputMessage) -> Result<()> { + self.lock().await.as_mut().unwrap().send(msg).await?; + Ok(()) + } + + pub fn inner(&self) -> Arc>> { + self.0.clone() + } +} + +pub struct AuthClient { + mixnet_client: SharedMixnetClient, + mixnet_sender: MixnetClientSender, + nym_address: Recipient, +} + +impl AuthClient { + pub async fn new(mixnet_client: SharedMixnetClient) -> Self { + let mixnet_sender = mixnet_client.lock().await.as_ref().unwrap().split_sender(); + let nym_address = *mixnet_client + .inner() + .lock() + .await + .as_ref() + .unwrap() + .nym_address(); + Self { + mixnet_client, + mixnet_sender, + nym_address, + } + } + + // A workaround until we can extract SharedMixnetClient to a common crate + pub async fn new_from_inner( + mixnet_client: Arc>>, + ) -> Self { + let mixnet_client = SharedMixnetClient(mixnet_client); + Self::new(mixnet_client).await + } + + pub async fn send( + &mut self, + message: ClientMessage, + authenticator_address: Recipient, + ) -> Result { + self.send_inner(message, authenticator_address).await + } + + async fn send_inner( + &mut self, + message: ClientMessage, + authenticator_address: Recipient, + ) -> Result { + let request_id = self + .send_connect_request(message, authenticator_address) + .await?; + + debug!("Waiting for reply..."); + self.listen_for_connect_response(request_id).await + } + + async fn send_connect_request( + &self, + message: ClientMessage, + authenticator_address: Recipient, + ) -> Result { + let (request, request_id) = match message { + ClientMessage::Initial(init_message) => { + AuthenticatorRequest::new_initial_request(init_message, self.nym_address) + } + ClientMessage::Final(gateway_client) => { + AuthenticatorRequest::new_final_request(gateway_client, self.nym_address) + } + }; + debug!("Sent connect request with version v{}", request.version); + + self.mixnet_sender + .send(nym_sdk::mixnet::InputMessage::new_regular( + authenticator_address, + request.to_bytes().unwrap(), + TransmissionLane::General, + None, + )) + .await?; + + Ok(request_id) + } + + async fn listen_for_connect_response(&self, request_id: u64) -> Result { + // Connecting is basically synchronous from the perspective of the mixnet client, so it's safe + // to just grab ahold of the mutex and keep it until we get the response. + let mut mixnet_client_handle = self.mixnet_client.lock().await; + let mixnet_client = mixnet_client_handle.as_mut().unwrap(); + + let timeout = tokio::time::sleep(Duration::from_secs(5)); + tokio::pin!(timeout); + + loop { + tokio::select! { + _ = &mut timeout => { + error!("Timed out waiting for reply to connect request"); + return Err(Error::TimeoutWaitingForConnectResponse); + } + msgs = mixnet_client.wait_for_messages() => match msgs { + None => { + return Err(Error::NoMixnetMessagesReceived); + } + Some(msgs) => { + for msg in msgs { + // Confirm that the version is correct + check_auth_message_version(&msg)?; + + // Then we deserialize the message + debug!("AuthClient: got message while waiting for connect response"); + let Ok(response) = AuthenticatorResponse::from_reconstructed_message(&msg) else { + // This is ok, it's likely just one of our self-pings + debug!("Failed to deserialize reconstructed message"); + continue; + }; + + if response.id() == Some(request_id) { + debug!("Got response with matching id"); + return Ok(response); + } + } + } + } + } + } + } +} + +fn check_auth_message_version(message: &ReconstructedMessage) -> Result<()> { + // Assuing it's an Authenticator message, it will have a version as its first byte + if let Some(version) = message.message.first() { + match version.cmp(&nym_authenticator_requests::CURRENT_VERSION) { + Ordering::Greater => Err(Error::ReceivedResponseWithNewVersion { + expected: nym_authenticator_requests::CURRENT_VERSION, + received: *version, + }), + Ordering::Less => Err(Error::ReceivedResponseWithOldVersion { + expected: nym_authenticator_requests::CURRENT_VERSION, + received: *version, + }), + Ordering::Equal => { + // We're good + Ok(()) + } + } + } else { + Err(Error::NoVersionInMessage) + } +} diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/entries/auth_addresses.rs b/nym-vpn-core/crates/nym-gateway-directory/src/entries/auth_addresses.rs new file mode 100644 index 0000000000..5651a48017 --- /dev/null +++ b/nym-vpn-core/crates/nym-gateway-directory/src/entries/auth_addresses.rs @@ -0,0 +1,63 @@ +// Copyright 2023 - Nym Technologies SA +// SPDX-License-Identifier: GPL-3.0-only + +use std::{fmt::Display, str::FromStr}; + +use crate::{error::Result, DescribedGatewayWithLocation, Error}; +use nym_sdk::mixnet::Recipient; + +// optional, until we remove the wireguard feature flag +#[derive(Debug, Copy, Clone)] +pub struct AuthAddress(pub Option); + +#[derive(Debug, Copy, Clone)] +pub struct AuthAddresses { + entry_addr: AuthAddress, + exit_addr: AuthAddress, +} + +impl AuthAddresses { + pub fn new(entry_addr: AuthAddress, exit_addr: AuthAddress) -> Self { + AuthAddresses { + entry_addr, + exit_addr, + } + } + + pub fn entry(&self) -> AuthAddress { + self.entry_addr + } + + pub fn exit(&self) -> AuthAddress { + self.exit_addr + } +} + +impl Display for AuthAddresses { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "entry: {:?} exit: {:?}", + self.entry_addr.0, self.exit_addr.0 + ) + } +} + +pub fn extract_authenticator( + gateways: &[DescribedGatewayWithLocation], + identity: String, +) -> Result { + let auth_addr = gateways + .iter() + .find(|gw| *gw.gateway.bond.identity() == identity) + .ok_or(Error::RequestedGatewayIdNotFound(identity.clone()))? + .gateway + .self_described + .clone() + .ok_or(Error::NoGatewayDescriptionAvailable(identity))? + .authenticator + .map(|auth| Recipient::from_str(&auth.address)) + .transpose() + .map_err(|_| Error::RecipientFormattingError)?; + Ok(AuthAddress(auth_addr)) +} diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/entries/exit_point.rs b/nym-vpn-core/crates/nym-gateway-directory/src/entries/exit_point.rs index b2ca9ea15c..263c056d44 100644 --- a/nym-vpn-core/crates/nym-gateway-directory/src/entries/exit_point.rs +++ b/nym-vpn-core/crates/nym-gateway-directory/src/entries/exit_point.rs @@ -1,7 +1,10 @@ // Copyright 2023 - Nym Technologies SA // SPDX-License-Identifier: GPL-3.0-only -use std::fmt::{Display, Formatter}; +use std::{ + fmt::{Display, Formatter}, + str::FromStr, +}; use crate::{ entries::described_gateway::{by_location_described, by_random_described}, @@ -145,3 +148,25 @@ impl LookupGateway for ExitPoint { } } } + +pub fn extract_router_address( + gateways: &[DescribedGatewayWithLocation], + identity_key: String, +) -> Result { + Ok(IpPacketRouterAddress( + Recipient::from_str( + &gateways + .iter() + .find(|gw| *gw.gateway.bond.identity() == identity_key) + .ok_or(Error::NoMatchingGateway)? + .gateway + .self_described + .clone() + .ok_or(Error::NoGatewayDescriptionAvailable(identity_key))? + .ip_packet_router + .ok_or(Error::MissingIpPacketRouterAddress)? + .address, + ) + .map_err(|_| Error::RecipientFormattingError)?, + )) +} diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/entries/ipr_address.rs b/nym-vpn-core/crates/nym-gateway-directory/src/entries/ipr_addresses.rs similarity index 100% rename from nym-vpn-core/crates/nym-gateway-directory/src/entries/ipr_address.rs rename to nym-vpn-core/crates/nym-gateway-directory/src/entries/ipr_addresses.rs diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/entries/mod.rs b/nym-vpn-core/crates/nym-gateway-directory/src/entries/mod.rs index afc97f44ac..7864ffbcb6 100644 --- a/nym-vpn-core/crates/nym-gateway-directory/src/entries/mod.rs +++ b/nym-vpn-core/crates/nym-gateway-directory/src/entries/mod.rs @@ -1,4 +1,5 @@ +pub(crate) mod auth_addresses; pub(crate) mod described_gateway; pub(crate) mod entry_point; pub(crate) mod exit_point; -pub(crate) mod ipr_address; +pub(crate) mod ipr_addresses; diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/error.rs b/nym-vpn-core/crates/nym-gateway-directory/src/error.rs index 179cf5882e..007083bbaf 100644 --- a/nym-vpn-core/crates/nym-gateway-directory/src/error.rs +++ b/nym-vpn-core/crates/nym-gateway-directory/src/error.rs @@ -80,6 +80,9 @@ pub enum Error { #[error("tunnel in a tunnel works for gateway id or location")] InvalidExitPointDescription, + #[error("gateway {0} doesn't have a description available")] + NoGatewayDescriptionAvailable(String), + #[error("the only available exit gateway is the entry gateway")] OnlyAvailableExitGatewayIsTheEntryGateway { requested_location: String, diff --git a/nym-vpn-core/crates/nym-gateway-directory/src/lib.rs b/nym-vpn-core/crates/nym-gateway-directory/src/lib.rs index a520ea52fe..1e6793bcb1 100644 --- a/nym-vpn-core/crates/nym-gateway-directory/src/lib.rs +++ b/nym-vpn-core/crates/nym-gateway-directory/src/lib.rs @@ -8,10 +8,11 @@ mod helpers; pub use crate::{ entries::{ + auth_addresses::{extract_authenticator, AuthAddress, AuthAddresses}, described_gateway::{DescribedGatewayWithLocation, LookupGateway}, entry_point::EntryPoint, - exit_point::ExitPoint, - ipr_address::IpPacketRouterAddress, + exit_point::{extract_router_address, ExitPoint}, + ipr_addresses::IpPacketRouterAddress, }, error::Error, gateway_client::{Config, GatewayClient, GatewayQueryResult}, diff --git a/nym-vpn-core/crates/nym-gateway-probe/src/lib.rs b/nym-vpn-core/crates/nym-gateway-probe/src/lib.rs index 50b1d1ab0a..0934fbdd91 100644 --- a/nym-vpn-core/crates/nym-gateway-probe/src/lib.rs +++ b/nym-vpn-core/crates/nym-gateway-probe/src/lib.rs @@ -176,7 +176,7 @@ async fn do_ping( exit_router_address.gateway().to_base58_string() ); let mut ipr_client = IprClient::new(shared_mixnet_client.clone()).await; - let Ok(our_ips) = ipr_client.connect(&exit_router_address, None, false).await else { + let Ok(our_ips) = ipr_client.connect(exit_router_address.0, None, false).await else { return Ok(ProbeOutcome { as_entry: Entry::success(), as_exit: Some(Exit::fail_to_connect()), diff --git a/nym-vpn-core/crates/nym-ip-packet-client/src/lib.rs b/nym-vpn-core/crates/nym-ip-packet-client/src/lib.rs index 373b7eb605..6824f313ce 100644 --- a/nym-vpn-core/crates/nym-ip-packet-client/src/lib.rs +++ b/nym-vpn-core/crates/nym-ip-packet-client/src/lib.rs @@ -16,8 +16,6 @@ use nym_sdk::mixnet::{ }; use tracing::{debug, error}; -use nym_gateway_directory::IpPacketRouterAddress; - mod error; pub use crate::error::{Error, Result}; @@ -95,7 +93,7 @@ impl IprClient { pub async fn connect( &mut self, - ip_packet_router_address: &IpPacketRouterAddress, + ip_packet_router_address: Recipient, ips: Option, enable_two_hop: bool, ) -> Result { @@ -124,7 +122,7 @@ impl IprClient { async fn connect_inner( &mut self, - ip_packet_router_address: &IpPacketRouterAddress, + ip_packet_router_address: Recipient, ips: Option, enable_two_hop: bool, ) -> Result { @@ -138,7 +136,7 @@ impl IprClient { async fn send_connect_request( &self, - ip_packet_router_address: &IpPacketRouterAddress, + ip_packet_router_address: Recipient, ips: Option, enable_two_hop: bool, ) -> Result { @@ -154,7 +152,7 @@ impl IprClient { self.mixnet_sender .send(nym_sdk::mixnet::InputMessage::new_regular_with_custom_hops( - ip_packet_router_address.0, + ip_packet_router_address, request.to_bytes().unwrap(), TransmissionLane::General, None, diff --git a/nym-vpn-core/nym-vpn-cli/src/main.rs b/nym-vpn-core/nym-vpn-cli/src/main.rs index f7c41641f1..9739e42f54 100644 --- a/nym-vpn-core/nym-vpn-cli/src/main.rs +++ b/nym-vpn-core/nym-vpn-cli/src/main.rs @@ -162,10 +162,12 @@ async fn run_vpn(args: commands::RunArgs, data_path: Option) -> Result< nym_vpn.dns = args.dns; nym_vpn.disable_routing = args.disable_routing; nym_vpn.enable_two_hop = args.enable_two_hop; - nym_vpn.vpn_config.mixnet_data_path = data_path; - nym_vpn.vpn_config.enable_poisson_rate = args.enable_poisson_rate; - nym_vpn.vpn_config.disable_background_cover_traffic = args.disable_background_cover_traffic; - nym_vpn.vpn_config.enable_credentials_mode = args.enable_credentials_mode; + nym_vpn.mixnet_client_config.mixnet_data_path = data_path; + nym_vpn.mixnet_client_config.enable_poisson_rate = args.enable_poisson_rate; + nym_vpn + .mixnet_client_config + .disable_background_cover_traffic = args.disable_background_cover_traffic; + nym_vpn.mixnet_client_config.enable_credentials_mode = args.enable_credentials_mode; nym_vpn.user_agent = Some(bin_info!().into()); nym_vpn.into() }; diff --git a/nym-vpn-core/nym-vpn-lib/Cargo.toml b/nym-vpn-core/nym-vpn-lib/Cargo.toml index 18955e8060..1ad2a16f3a 100644 --- a/nym-vpn-core/nym-vpn-lib/Cargo.toml +++ b/nym-vpn-core/nym-vpn-lib/Cargo.toml @@ -46,6 +46,7 @@ talpid-tunnel = { git = "https://github.com/nymtech/nym-vpn-mullvad-libs", rev = talpid-types = { git = "https://github.com/nymtech/nym-vpn-mullvad-libs", rev = "164e254aa" } talpid-wireguard = { git = "https://github.com/nymtech/nym-vpn-mullvad-libs", rev = "164e254aa" } +nym-authenticator-requests.workspace = true nym-bandwidth-controller.workspace = true nym-bin-common.workspace = true nym-client-core.workspace = true @@ -63,6 +64,7 @@ nym-topology.workspace = true nym-validator-client.workspace = true nym-wireguard-types.workspace = true +nym-authenticator-client = { path = "../crates/nym-authenticator-client" } nym-connection-monitor = { path = "../crates/nym-connection-monitor" } nym-gateway-directory = { path = "../crates/nym-gateway-directory" } nym-ip-packet-client = { path = "../crates/nym-ip-packet-client" } diff --git a/nym-vpn-core/nym-vpn-lib/src/bandwidth_controller.rs b/nym-vpn-core/nym-vpn-lib/src/bandwidth_controller.rs new file mode 100644 index 0000000000..ebd07510a5 --- /dev/null +++ b/nym-vpn-core/nym-vpn-lib/src/bandwidth_controller.rs @@ -0,0 +1,31 @@ +// Copyright 2024 - Nym Technologies SA +// SPDX-License-Identifier: GPL-3.0-only + +use nym_sdk::TaskClient; + +use crate::mixnet_connect::SharedMixnetClient; + +pub struct BandwidthController { + shared_mixnet_client: SharedMixnetClient, + shutdown: TaskClient, +} + +impl BandwidthController { + pub fn new(shared_mixnet_client: SharedMixnetClient, shutdown: TaskClient) -> Self { + BandwidthController { + shared_mixnet_client, + shutdown, + } + } + + pub async fn run(mut self) { + while !self.shutdown.is_shutdown() { + tokio::select! { + _ = self.shutdown.recv() => { + log::trace!("BandwidthController: Received shutdown"); + self.shared_mixnet_client.clone().disconnect().await; + } + } + } + } +} diff --git a/nym-vpn-core/nym-vpn-lib/src/error.rs b/nym-vpn-core/nym-vpn-lib/src/error.rs index 2e228f50dd..f24302b711 100644 --- a/nym-vpn-core/nym-vpn-lib/src/error.rs +++ b/nym-vpn-core/nym-vpn-lib/src/error.rs @@ -81,9 +81,6 @@ pub enum Error { #[error("gateway was requested by location, but we don't have any location data - is the explorer-api set correctly?")] RequestedGatewayByLocationWithoutLocationDataAvailable, - #[error("invalid Gateway API response")] - InvalidGatewayAPIResponse, - #[error("{0}")] WireguardTypesError(#[from] nym_wireguard_types::error::Error), @@ -229,6 +226,15 @@ pub enum Error { #[error("received bad event for wireguard tunnel creation")] BadWireguardEvent, + + #[error("received invalid response from gateway API")] + InvalidGatewayAPIResponse, + + #[error(transparent)] + AuthenticatorClientError(#[from] nym_authenticator_client::Error), + + #[error("wiregurad authentication is not possible due to one of the gateways not running the authenticator process: {0}")] + AuthenticationNotPossible(String), } // Result type based on our error type diff --git a/nym-vpn-core/nym-vpn-lib/src/lib.rs b/nym-vpn-core/nym-vpn-lib/src/lib.rs index 7b688e7fe1..89315c0413 100644 --- a/nym-vpn-core/nym-vpn-lib/src/lib.rs +++ b/nym-vpn-core/nym-vpn-lib/src/lib.rs @@ -21,10 +21,8 @@ use nym_task::TaskManager; use std::net::{IpAddr, Ipv4Addr}; use std::path::PathBuf; use std::sync::{Arc, Mutex}; -use std::time::Duration; use talpid_core::dns::DnsMonitor; use talpid_routing::RouteManager; -use tokio::time::timeout; use tunnel_setup::{setup_tunnel, AllTunnelsSetup, TunnelSetup}; use util::wait_for_interrupt_and_signal; @@ -50,6 +48,7 @@ use talpid_tunnel::tun_provider::TunProvider; use tokio::task::JoinHandle; use tun2::AsyncDevice; +mod bandwidth_controller; mod platform; mod tunnel_setup; mod uniffi_custom_impls; @@ -66,20 +65,21 @@ pub mod wg_gateway_client; mod wireguard_setup; const MIXNET_CLIENT_STARTUP_TIMEOUT_SECS: u64 = 30; +pub const SHUTDOWN_TIMER_SECS: u64 = 10; async fn init_wireguard_config( gateway_client: &GatewayClient, wg_gateway_client: &WgGatewayClient, - entry_gateway_identity: &str, + auth_recipient: Recipient, mtu: u16, ) -> Result { // First we need to register with the gateway to setup keys and IP assignment info!("Registering with wireguard gateway"); - let entry_gateway_identity = gateway_client - .lookup_gateway_ip(entry_gateway_identity) + let gateway_host = gateway_client + .lookup_gateway_ip(&auth_recipient.gateway().to_base58_string()) .await?; let wg_gateway_data = wg_gateway_client - .register_wireguard(entry_gateway_identity) + .register_wireguard(auth_recipient, gateway_host) .await?; debug!("Received wireguard gateway data: {wg_gateway_data:?}"); @@ -92,19 +92,7 @@ struct ShadowHandle { _inner: Option>>, } -pub struct MixnetVpn { - /// Path to the data directory of a previously initialised mixnet client, where the keys reside. - pub mixnet_data_path: Option, - - /// Enable Poission process rate limiting of outbound traffic. - pub enable_poisson_rate: bool, - - /// Disable constant rate background loop cover traffic - pub disable_background_cover_traffic: bool, - - /// Enable the wireguard traffic between the client and the entry gateway. - pub enable_credentials_mode: bool, -} +pub struct MixnetVpn {} pub struct WireguardVpn { /// The IP address of the entry wireguard interface. @@ -136,7 +124,24 @@ impl From> for SpecificVpn { } } +#[derive(Clone, Debug)] +pub struct MixnetClientConfig { + /// Path to the data directory of a previously initialised mixnet client, where the keys reside. + pub mixnet_data_path: Option, + + /// Enable Poission process rate limiting of outbound traffic. + pub enable_poisson_rate: bool, + + /// Disable constant rate background loop cover traffic + pub disable_background_cover_traffic: bool, + + /// Enable the credentials mode between the client and the entry gateway. + pub enable_credentials_mode: bool, +} + pub struct NymVpn { + pub mixnet_client_config: MixnetClientConfig, + /// Gateway configuration pub gateway_config: GatewayDirectoryConfig, @@ -210,6 +215,12 @@ impl NymVpn { ))); Self { + mixnet_client_config: MixnetClientConfig { + mixnet_data_path: None, + enable_poisson_rate: false, + disable_background_cover_traffic: false, + enable_credentials_mode: false, + }, gateway_config: nym_gateway_directory::Config::default(), entry_point, exit_point, @@ -250,6 +261,12 @@ impl NymVpn { ))); Self { + mixnet_client_config: MixnetClientConfig { + mixnet_data_path: None, + enable_poisson_rate: false, + disable_background_cover_traffic: false, + enable_credentials_mode: false, + }, gateway_config: nym_gateway_directory::Config::default(), entry_point, exit_point, @@ -259,12 +276,7 @@ impl NymVpn { disable_routing: false, enable_two_hop: false, user_agent: None, - vpn_config: MixnetVpn { - mixnet_data_path: None, - enable_poisson_rate: false, - disable_background_cover_traffic: false, - enable_credentials_mode: false, - }, + vpn_config: MixnetVpn {}, tun_provider, #[cfg(target_os = "ios")] ios_tun_provider, @@ -277,20 +289,19 @@ impl NymVpn { &mut self, mixnet_client: SharedMixnetClient, route_manager: &mut RouteManager, - exit_router: &IpPacketRouterAddress, + exit_mix_addresses: &IpPacketRouterAddress, task_manager: &TaskManager, gateway_client: &GatewayClient, default_lan_gateway_ip: routing::LanGatewayIp, dns_monitor: &mut DnsMonitor, ) -> Result { - let exit_gateway = *exit_router.gateway(); + let exit_gateway = *exit_mix_addresses.gateway(); info!("Connecting to exit gateway: {exit_gateway}"); - debug!("Connecting to exit IPR: {exit_router}"); // Currently the IPR client is only used to connect. The next step would be to use it to // spawn a separate task that handles IPR request/responses. let mut ipr_client = IprClient::new_from_inner(mixnet_client.inner()).await; let our_ips = ipr_client - .connect(exit_router, self.nym_ips, self.enable_two_hop) + .connect(exit_mix_addresses.0, self.nym_ips, self.enable_two_hop) .await?; info!("Successfully connected to exit gateway"); info!("Using mixnet VPN IP addresses: {our_ips}"); @@ -324,7 +335,7 @@ impl NymVpn { .await?; info!("Setting up mixnet processor"); - let processor_config = mixnet_processor::Config::new(*exit_router); + let processor_config = mixnet_processor::Config::new(exit_mix_addresses.0); debug!("Mixnet processor config: {:#?}", processor_config); // For other components that will want to send mixnet packets @@ -349,13 +360,13 @@ impl NymVpn { mixnet_client_sender, mixnet_client_address, our_ips, - exit_router.0, + exit_mix_addresses.0, task_manager, ); Ok(MixnetExitConnectionInfo { exit_gateway, - exit_ipr: exit_router.0, + exit_ipr: exit_mix_addresses.0, ips: our_ips, }) } @@ -363,32 +374,14 @@ impl NymVpn { #[allow(clippy::too_many_arguments)] async fn setup_tunnel_services( &mut self, + mixnet_client: SharedMixnetClient, route_manager: &mut RouteManager, - entry_gateway: &NodeIdentity, - exit_router: &IpPacketRouterAddress, + exit_mix_addresses: &IpPacketRouterAddress, task_manager: &TaskManager, gateway_client: &GatewayClient, default_lan_gateway_ip: routing::LanGatewayIp, dns_monitor: &mut DnsMonitor, ) -> Result<(MixnetConnectionInfo, MixnetExitConnectionInfo)> { - info!("Setting up mixnet client"); - info!("Connecting to entry gateway: {entry_gateway}"); - let mixnet_client = timeout( - Duration::from_secs(MIXNET_CLIENT_STARTUP_TIMEOUT_SECS), - setup_mixnet_client( - entry_gateway, - &self.vpn_config.mixnet_data_path, - task_manager.subscribe_named("mixnet_client_main"), - false, - self.enable_two_hop, - self.vpn_config.enable_poisson_rate, - self.vpn_config.disable_background_cover_traffic, - self.vpn_config.enable_credentials_mode, - ), - ) - .await - .map_err(|_| Error::StartMixnetTimeout(MIXNET_CLIENT_STARTUP_TIMEOUT_SECS))??; - // Now that we have a connection, collection some info about that and return let nym_address = mixnet_client.nym_address().await; let entry_gateway = *(nym_address.gateway()); @@ -408,7 +401,7 @@ impl NymVpn { .setup_post_mixnet( mixnet_client.clone(), route_manager, - exit_router, + exit_mix_addresses, task_manager, gateway_client, default_lan_gateway_ip, @@ -435,6 +428,13 @@ impl NymVpn { } } impl SpecificVpn { + pub fn mixnet_client_config(&self) -> MixnetClientConfig { + match self { + SpecificVpn::Wg(vpn) => vpn.mixnet_client_config.clone(), + SpecificVpn::Mix(vpn) => vpn.mixnet_client_config.clone(), + } + } + pub fn gateway_config(&self) -> GatewayDirectoryConfig { match self { SpecificVpn::Wg(vpn) => vpn.gateway_config.clone(), @@ -456,6 +456,13 @@ impl SpecificVpn { } } + pub fn enable_two_hop(&self) -> bool { + match self { + SpecificVpn::Wg(vpn) => vpn.enable_two_hop, + SpecificVpn::Mix(vpn) => vpn.enable_two_hop, + } + } + pub fn user_agent(&self) -> Option { match self { SpecificVpn::Wg(vpn) => vpn.user_agent.clone(), @@ -467,7 +474,8 @@ impl SpecificVpn { // applications where the main way to interact with the running process is to send SIGINT // (ctrl-c) pub async fn run(&mut self) -> Result<()> { - let tunnels = setup_tunnel(self).await?; + let mut task_manager = TaskManager::new(SHUTDOWN_TIMER_SECS).named("nym_vpn_lib"); + let tunnels = setup_tunnel(self, &mut task_manager).await?; info!("Nym VPN is now running"); // Finished starting everything, now wait for mixnet client shutdown @@ -475,7 +483,7 @@ impl SpecificVpn { AllTunnelsSetup::Mix(TunnelSetup { mut specific_setup, .. }) => { - wait_for_interrupt(specific_setup.task_manager).await; + wait_for_interrupt(task_manager).await; handle_interrupt(specific_setup.route_manager, None) .await .inspect_err(|err| { @@ -490,12 +498,13 @@ impl SpecificVpn { } AllTunnelsSetup::Wg { route_manager, + _mixnet_client, entry, exit, mut firewall, mut dns_monitor, } => { - wait_for_interrupt(TaskManager::new(10)).await; + wait_for_interrupt(task_manager).await; handle_interrupt( route_manager, Some([entry.specific_setup, exit.specific_setup]), @@ -527,7 +536,8 @@ impl SpecificVpn { mut vpn_status_tx: nym_task::StatusSender, vpn_ctrl_rx: mpsc::UnboundedReceiver, ) -> std::result::Result<(), Box> { - let tunnels = setup_tunnel(self).await?; + let mut task_manager = TaskManager::new(SHUTDOWN_TIMER_SECS).named("nym_vpn_lib"); + let tunnels = setup_tunnel(self, &mut task_manager).await?; // Finished starting everything, now wait for mixnet client shutdown match tunnels { @@ -545,8 +555,7 @@ impl SpecificVpn { .entry_gateway .to_base58_string(), ); - specific_setup - .task_manager + task_manager .start_status_listener(vpn_status_tx.clone(), start_status) .await; @@ -558,9 +567,7 @@ impl SpecificVpn { .await .unwrap(); - let result = - wait_for_interrupt_and_signal(Some(specific_setup.task_manager), vpn_ctrl_rx) - .await; + let result = wait_for_interrupt_and_signal(Some(task_manager), vpn_ctrl_rx).await; handle_interrupt(specific_setup.route_manager, None) .await .map_err(|err| { @@ -577,12 +584,13 @@ impl SpecificVpn { } AllTunnelsSetup::Wg { route_manager, + _mixnet_client, entry, exit, mut firewall, mut dns_monitor, } => { - let result = wait_for_interrupt_and_signal(None, vpn_ctrl_rx).await; + let result = wait_for_interrupt_and_signal(Some(task_manager), vpn_ctrl_rx).await; handle_interrupt( route_manager, Some([entry.specific_setup, exit.specific_setup]), diff --git a/nym-vpn-core/nym-vpn-lib/src/mixnet_processor.rs b/nym-vpn-core/nym-vpn-lib/src/mixnet_processor.rs index 3cf17c7534..57afeb6570 100644 --- a/nym-vpn-core/nym-vpn-lib/src/mixnet_processor.rs +++ b/nym-vpn-core/nym-vpn-lib/src/mixnet_processor.rs @@ -24,7 +24,6 @@ use nym_connection_monitor::{ is_icmp_beacon_reply, is_icmp_v6_beacon_reply, ConnectionMonitorTask, ConnectionStatusEvent, IcmpBeaconReply, Icmpv6BeaconReply, }; -use nym_gateway_directory::IpPacketRouterAddress; use crate::{ error::{Error, Result}, @@ -33,11 +32,11 @@ use crate::{ #[derive(Debug)] pub struct Config { - pub ip_packet_router_address: IpPacketRouterAddress, + pub ip_packet_router_address: Recipient, } impl Config { - pub fn new(ip_packet_router_address: IpPacketRouterAddress) -> Self { + pub fn new(ip_packet_router_address: Recipient) -> Self { Config { ip_packet_router_address, } @@ -78,7 +77,7 @@ pub struct MixnetProcessor { device: AsyncDevice, mixnet_client: SharedMixnetClient, connection_event_tx: mpsc::UnboundedSender, - ip_packet_router_address: IpPacketRouterAddress, + ip_packet_router_address: Recipient, our_ips: nym_ip_packet_requests::IpPair, icmp_beacon_identifier: u16, // TODO: handle this as part of setting up the mixnet client @@ -90,7 +89,7 @@ impl MixnetProcessor { device: AsyncDevice, mixnet_client: SharedMixnetClient, connection_monitor: &ConnectionMonitorTask, - ip_packet_router_address: IpPacketRouterAddress, + ip_packet_router_address: Recipient, our_ips: nym_ip_packet_requests::IpPair, enable_two_hop: bool, ) -> Self { @@ -131,7 +130,7 @@ impl MixnetProcessor { let mut multi_ip_packet_decoder = MultiIpPacketCodec::new(nym_ip_packet_requests::codec::BUFFER_TIMEOUT); - let message_creator = MessageCreator::new(recipient.0, self.enable_two_hop); + let message_creator = MessageCreator::new(recipient, self.enable_two_hop); info!("Mixnet processor is running"); while !shutdown.is_shutdown() { diff --git a/nym-vpn-core/nym-vpn-lib/src/platform/mod.rs b/nym-vpn-core/nym-vpn-lib/src/platform/mod.rs index 6da0a55010..4c7b929778 100644 --- a/nym-vpn-core/nym-vpn-lib/src/platform/mod.rs +++ b/nym-vpn-core/nym-vpn-lib/src/platform/mod.rs @@ -169,7 +169,7 @@ fn sync_run_vpn(config: VPNConfig) -> Result, FFIError> { vpn.gateway_config.explorer_url = Some(config.explorer_url); vpn.gateway_config.harbour_master_url = None; vpn.enable_two_hop = config.enable_two_hop; - vpn.vpn_config + vpn.mixnet_client_config .mixnet_data_path .clone_from(&config.credential_data_path); Ok(vpn) diff --git a/nym-vpn-core/nym-vpn-lib/src/tunnel_setup.rs b/nym-vpn-core/nym-vpn-lib/src/tunnel_setup.rs index 089a145ae8..a5df4d90f2 100644 --- a/nym-vpn-core/nym-vpn-lib/src/tunnel_setup.rs +++ b/nym-vpn-core/nym-vpn-lib/src/tunnel_setup.rs @@ -1,7 +1,11 @@ // Copyright 2024 - Nym Technologies SA // SPDX-License-Identifier: GPL-3.0-only +use std::time::Duration; + +use crate::bandwidth_controller::BandwidthController; use crate::error::{Error, Result}; +use crate::mixnet_connect::SharedMixnetClient; use crate::platform; use crate::routing::{catch_all_ipv4, catch_all_ipv6, replace_default_prefixes}; use crate::tunnel::setup_route_manager; @@ -9,7 +13,7 @@ use crate::uniffi_custom_impls::TunStatus; use crate::util::handle_interrupt; use crate::wg_gateway_client::WgGatewayClient; use crate::wireguard_setup::create_wireguard_tunnel; -use crate::{init_wireguard_config, WireguardVpn}; +use crate::{init_wireguard_config, WireguardVpn, MIXNET_CLIENT_STARTUP_TIMEOUT_SECS}; use crate::{routing, MixnetConnectionInfo, NymVpn}; use crate::{MixnetExitConnectionInfo, MixnetVpn, SpecificVpn}; use futures::channel::{mpsc, oneshot}; @@ -18,7 +22,8 @@ use ipnetwork::IpNetwork; use log::*; use nym_bin_common::bin_info; use nym_gateway_directory::{ - GatewayClient, GatewayQueryResult, IpPacketRouterAddress, LookupGateway, NodeIdentity, + extract_authenticator, extract_router_address, AuthAddresses, GatewayClient, + GatewayQueryResult, IpPacketRouterAddress, LookupGateway, }; use nym_task::TaskManager; use rand::rngs::OsRng; @@ -27,6 +32,7 @@ use talpid_core::firewall::Firewall; use talpid_routing::RouteManager; use talpid_tunnel::{TunnelEvent, TunnelMetadata}; use tap::TapFallible; +use tokio::time::timeout; pub struct TunnelSetup { pub specific_setup: T, @@ -38,7 +44,6 @@ pub struct MixTunnelSetup { pub route_manager: RouteManager, pub mixnet_connection_info: MixnetConnectionInfo, pub exit_connection_info: MixnetExitConnectionInfo, - pub task_manager: TaskManager, pub dns_monitor: DnsMonitor, } @@ -56,6 +61,7 @@ pub enum AllTunnelsSetup { Mix(TunnelSetup), Wg { route_manager: RouteManager, + _mixnet_client: SharedMixnetClient, entry: TunnelSetup, exit: TunnelSetup, firewall: Firewall, @@ -130,14 +136,14 @@ async fn wait_interface_up( async fn setup_wg_tunnel( nym_vpn: &mut NymVpn, + mixnet_client: SharedMixnetClient, route_manager: RouteManager, gateway_directory_client: GatewayClient, - entry_gateway_id: NodeIdentity, - exit_gateway_id: NodeIdentity, + auth_addresses: AuthAddresses, ) -> Result { let mut rng = OsRng; - let wg_entry_gateway_client = WgGatewayClient::new(&mut rng); - let wg_exit_gateway_client = WgGatewayClient::new(&mut rng); + let wg_entry_gateway_client = WgGatewayClient::new(&mut rng, mixnet_client.clone()); + let wg_exit_gateway_client = WgGatewayClient::new(&mut rng, mixnet_client.clone()); log::info!("Created wg gateway client"); // MTU is computed as (MTU of wire interface) - ((IP header size) + (UDP header size) + (WireGuard metadata size)) // The IP header size is 20 for IPv4 and 40 for IPv6 @@ -149,17 +155,23 @@ async fn setup_wg_tunnel( // 1440 - (40 + 8 + 32) let exit_mtu = 1360; + let (Some(entry_auth_recipient), Some(exit_auth_recipient)) = + (auth_addresses.entry().0, auth_addresses.exit().0) + else { + return Err(Error::AuthenticationNotPossible(auth_addresses.to_string())); + }; + let mut entry_wireguard_config = init_wireguard_config( &gateway_directory_client, &wg_entry_gateway_client, - &entry_gateway_id.to_base58_string(), + entry_auth_recipient, entry_mtu, ) .await?; let mut exit_wireguard_config = init_wireguard_config( &gateway_directory_client, &wg_exit_gateway_client, - &exit_gateway_id.to_base58_string(), + exit_auth_recipient, exit_mtu, ) .await?; @@ -227,6 +239,7 @@ async fn setup_wg_tunnel( Ok(AllTunnelsSetup::Wg { route_manager, + _mixnet_client: mixnet_client, entry, exit, firewall, @@ -236,11 +249,11 @@ async fn setup_wg_tunnel( async fn setup_mix_tunnel( nym_vpn: &mut NymVpn, - mut task_manager: TaskManager, + mixnet_client: SharedMixnetClient, + task_manager: &mut TaskManager, mut route_manager: RouteManager, gateway_directory_client: GatewayClient, - entry_gateway_id: NodeIdentity, - exit_router_address: IpPacketRouterAddress, + exit_mix_addresses: &IpPacketRouterAddress, default_lan_gateway_ip: routing::LanGatewayIp, ) -> Result { info!("Wireguard is disabled"); @@ -257,10 +270,10 @@ async fn setup_mix_tunnel( // - Starts processing packets let ret = nym_vpn .setup_tunnel_services( + mixnet_client, &mut route_manager, - &entry_gateway_id, - &exit_router_address, - &task_manager, + exit_mix_addresses, + task_manager, &gateway_directory_client, default_lan_gateway_ip, &mut dns_monitor, @@ -302,13 +315,15 @@ async fn setup_mix_tunnel( route_manager, mixnet_connection_info: connection_info.0, exit_connection_info: connection_info.1, - task_manager, dns_monitor, }, })) } -pub async fn setup_tunnel(nym_vpn: &mut SpecificVpn) -> Result { +pub async fn setup_tunnel( + nym_vpn: &mut SpecificVpn, + task_manager: &mut TaskManager, +) -> Result { // The user agent is set on HTTP REST API calls, and ideally should idenfy the type of client. // This means it needs to be set way higher in the call stack, but set a default for what we // know here if we don't have anything. @@ -345,13 +360,22 @@ pub async fn setup_tunnel(nym_vpn: &mut SpecificVpn) -> Result .await .map_err(|err| Error::FailedToLookupGatewayIdentity { source: err })?; let entry_location_str = entry_location.as_deref().unwrap_or("unknown"); + let entry_authenticator_address = + extract_authenticator(&entry_gateways, entry_gateway_id.to_string())?; - let (exit_router_address, exit_location) = nym_vpn + let (exit_gateway_id, exit_location) = nym_vpn .exit_point() - .lookup_router_address(&exit_gateways, Some(&entry_gateway_id)) - .map_err(|err| Error::FailedToLookupRouterAddress { source: err })?; + .lookup_gateway_identity(&exit_gateways) + .await + .map_err(|err| Error::FailedToLookupGatewayIdentity { source: err })?; + let exit_authenticator_address = + extract_authenticator(&exit_gateways, exit_gateway_id.to_string())?; + + let exit_router_address = extract_router_address(&exit_gateways, exit_gateway_id.to_string())?; let exit_location_str = exit_location.as_deref().unwrap_or("unknown"); let exit_gateway_id = exit_router_address.gateway(); + let auth_addresses = + AuthAddresses::new(entry_authenticator_address, exit_authenticator_address); info!("Using entry gateway: {entry_gateway_id}, location: {entry_location_str}"); info!("Using exit gateway: {exit_gateway_id}, location: {exit_location_str}"); @@ -361,34 +385,58 @@ pub async fn setup_tunnel(nym_vpn: &mut SpecificVpn) -> Result let default_lan_gateway_ip = routing::LanGatewayIp::get_default_interface()?; debug!("default_lan_gateway_ip: {default_lan_gateway_ip}"); - let task_manager = TaskManager::new(10).named("nym_vpn_lib"); info!("Setting up route manager"); let route_manager = setup_route_manager().await?; platform::set_listener_status(TunStatus::EstablishingConnection); - match nym_vpn { + info!("Setting up mixnet client"); + info!("Connecting to entry gateway: {entry_gateway_id}"); + let mixnet_client = timeout( + Duration::from_secs(MIXNET_CLIENT_STARTUP_TIMEOUT_SECS), + crate::setup_mixnet_client( + &entry_gateway_id, + &nym_vpn.mixnet_client_config().mixnet_data_path, + task_manager.subscribe_named("mixnet_client_main"), + false, + nym_vpn.enable_two_hop(), + nym_vpn.mixnet_client_config().enable_poisson_rate, + nym_vpn + .mixnet_client_config() + .disable_background_cover_traffic, + nym_vpn.mixnet_client_config().enable_credentials_mode, + ), + ) + .await + .map_err(|_| Error::StartMixnetTimeout(MIXNET_CLIENT_STARTUP_TIMEOUT_SECS))??; + + let bandwidth_controller = + BandwidthController::new(mixnet_client.clone(), task_manager.subscribe()); + tokio::spawn(bandwidth_controller.run()); + + let tunnels_setup = match nym_vpn { SpecificVpn::Wg(vpn) => { setup_wg_tunnel( vpn, + mixnet_client, route_manager, gateway_directory_client, - entry_gateway_id, - *exit_gateway_id, + auth_addresses, ) .await } SpecificVpn::Mix(vpn) => { setup_mix_tunnel( vpn, + mixnet_client, task_manager, route_manager, gateway_directory_client, - entry_gateway_id, - exit_router_address, + &exit_router_address, default_lan_gateway_ip, ) .await } - } + }?; + Ok(tunnels_setup) } diff --git a/nym-vpn-core/nym-vpn-lib/src/wg_gateway_client.rs b/nym-vpn-core/nym-vpn-lib/src/wg_gateway_client.rs index 6598c2cf85..7de0ebae2c 100644 --- a/nym-vpn-core/nym-vpn-lib/src/wg_gateway_client.rs +++ b/nym-vpn-core/nym-vpn-lib/src/wg_gateway_client.rs @@ -2,12 +2,16 @@ // SPDX-License-Identifier: GPL-3.0-only use crate::error::Result; -use nym_config::defaults::DEFAULT_NYM_NODE_HTTP_PORT; +use crate::mixnet_connect::SharedMixnetClient; +use nym_authenticator_client::AuthClient; +use nym_authenticator_requests::v1::response::{ + AuthenticatorResponseData, PendingRegistrationResponse, +}; use nym_crypto::asymmetric::encryption; use nym_crypto::asymmetric::x25519::KeyPair; -use nym_node_requests::api::client::NymNodeApiClientExt; +use nym_gateway_directory::Recipient; use nym_node_requests::api::v1::gateway::client_interfaces::wireguard::models::{ - ClientMessage, ClientRegistrationResponse, InitMessage, PeerPublicKey, + ClientMessage, InitMessage, PeerPublicKey, }; use nym_wireguard_types::registration::RegistrationData; use nym_wireguard_types::GatewayClient; @@ -26,13 +30,17 @@ pub struct GatewayData { pub struct WgGatewayClient { keypair: encryption::KeyPair, + mixnet_client: SharedMixnetClient, } impl WgGatewayClient { - pub fn new(rng: &mut R) -> Self { + pub fn new(rng: &mut R, mixnet_client: SharedMixnetClient) -> Self { let keypair = KeyPair::new(rng); - WgGatewayClient { keypair } + WgGatewayClient { + keypair, + mixnet_client, + } } pub fn keypair(&self) -> &encryption::KeyPair { @@ -41,29 +49,25 @@ impl WgGatewayClient { pub async fn register_wireguard( &self, - // gateway_identity: &str, + auth_recipient: Recipient, gateway_host: IpAddr, ) -> Result { - // info!("Lookup ip for {}", gateway_identity); - // let gateway_host = self.lookup_gateway_ip(gateway_identity).await?; - // info!("Received wg gateway ip: {}", gateway_host); - - let gateway_api_client = nym_node_requests::api::Client::new_url( - format!("{}:{}", gateway_host, DEFAULT_NYM_NODE_HTTP_PORT), - None, - )?; + let mut auth_client = AuthClient::new_from_inner(self.mixnet_client.inner()).await; debug!("Registering with the wg gateway..."); let init_message = ClientMessage::Initial(InitMessage { pub_key: PeerPublicKey::new(self.keypair.public_key().to_bytes().into()), }); - let ClientRegistrationResponse::PendingRegistration(RegistrationData { - nonce, - gateway_data, - wg_port, - }) = gateway_api_client - .post_gateway_register_client(&init_message) - .await? + let response = auth_client.send(init_message, auth_recipient).await?; + let AuthenticatorResponseData::PendingRegistration(PendingRegistrationResponse { + reply: + RegistrationData { + nonce, + gateway_data, + wg_port, + }, + .. + }) = response.data else { return Err(crate::error::Error::InvalidGatewayAPIResponse); }; @@ -81,10 +85,8 @@ impl WgGatewayClient { gateway_data.private_ip, nonce, )); - let ClientRegistrationResponse::Registered = gateway_api_client - .post_gateway_register_client(&finalized_message) - .await? - else { + let response = auth_client.send(finalized_message, auth_recipient).await?; + let AuthenticatorResponseData::Registered(_) = response.data else { return Err(crate::error::Error::InvalidGatewayAPIResponse); }; let gateway_data = GatewayData { diff --git a/nym-vpn-core/nym-vpnd/src/main.rs b/nym-vpn-core/nym-vpnd/src/main.rs index 0d460ce444..21def7d108 100644 --- a/nym-vpn-core/nym-vpnd/src/main.rs +++ b/nym-vpn-core/nym-vpnd/src/main.rs @@ -3,7 +3,7 @@ use clap::Parser; use nym_task::TaskManager; -use nym_vpn_lib::nym_config::defaults::setup_env; +use nym_vpn_lib::{nym_config::defaults::setup_env, SHUTDOWN_TIMER_SECS}; use tokio::sync::broadcast; use crate::{ @@ -21,7 +21,7 @@ mod service; mod windows_service; fn run_inner(args: CliArgs) -> Result<(), Box> { - let task_manager = TaskManager::new(10).named("nym_vpnd"); + let task_manager = TaskManager::new(SHUTDOWN_TIMER_SECS).named("nym_vpnd"); let service_task_client = task_manager.subscribe_named("vpn_service"); let state_changes_tx = broadcast::channel(10).0; diff --git a/nym-vpn-core/nym-vpnd/src/service/error.rs b/nym-vpn-core/nym-vpnd/src/service/error.rs index d237187a25..a7ccffb086 100644 --- a/nym-vpn-core/nym-vpnd/src/service/error.rs +++ b/nym-vpn-core/nym-vpnd/src/service/error.rs @@ -161,7 +161,6 @@ impl From<&nym_vpn_lib::error::Error> for ConnectionFailedError { | nym_vpn_lib::error::Error::KeyRecoveryError(_) | nym_vpn_lib::error::Error::NymNodeApiClientError(_) | nym_vpn_lib::error::Error::RequestedGatewayByLocationWithoutLocationDataAvailable - | nym_vpn_lib::error::Error::InvalidGatewayAPIResponse | nym_vpn_lib::error::Error::WireguardTypesError(_) | nym_vpn_lib::error::Error::DefaultInterfaceError | nym_vpn_lib::error::Error::ReceivedResponseWithOldVersion { .. } @@ -191,6 +190,9 @@ impl From<&nym_vpn_lib::error::Error> for ConnectionFailedError { | nym_vpn_lib::error::Error::ImportCredentialError(_) | nym_vpn_lib::error::Error::IpPacketRouterClientError(_) | nym_vpn_lib::error::Error::FailedWireguardRegistration + | nym_vpn_lib::error::Error::InvalidGatewayAPIResponse + | nym_vpn_lib::error::Error::AuthenticatorClientError(_) + | nym_vpn_lib::error::Error::AuthenticationNotPossible(_) | nym_vpn_lib::error::Error::BadWireguardEvent => { ConnectionFailedError::Unhandled(format!("unhandled error: {err:#?}")) } diff --git a/nym-vpn-core/nym-vpnd/src/service/vpn_service.rs b/nym-vpn-core/nym-vpnd/src/service/vpn_service.rs index 52287c51d8..c95dcf4f11 100644 --- a/nym-vpn-core/nym-vpnd/src/service/vpn_service.rs +++ b/nym-vpn-core/nym-vpnd/src/service/vpn_service.rs @@ -397,17 +397,18 @@ impl NymVpnService { let mut nym_vpn = nym_vpn_lib::NymVpn::new_mixnet_vpn(config.entry_point, config.exit_point); nym_vpn.gateway_config = gateway_directory::Config::new_from_env(); - nym_vpn.vpn_config.mixnet_data_path = Some(self.data_dir.clone()); + nym_vpn.mixnet_client_config.mixnet_data_path = Some(self.data_dir.clone()); nym_vpn.dns = options.dns; nym_vpn.disable_routing = options.disable_routing; nym_vpn.enable_two_hop = options.enable_two_hop; // TODO: add user agent to options struct so we can pass it from the connected client if we // want to nym_vpn.user_agent = Some(bin_info!().into()); - nym_vpn.vpn_config.enable_poisson_rate = options.enable_poisson_rate; - nym_vpn.vpn_config.disable_background_cover_traffic = - options.disable_background_cover_traffic; - nym_vpn.vpn_config.enable_credentials_mode = options.enable_credentials_mode; + nym_vpn.mixnet_client_config.enable_poisson_rate = options.enable_poisson_rate; + nym_vpn + .mixnet_client_config + .disable_background_cover_traffic = options.disable_background_cover_traffic; + nym_vpn.mixnet_client_config.enable_credentials_mode = options.enable_credentials_mode; let handle = nym_vpn_lib::spawn_nym_vpn_with_new_runtime(nym_vpn.into()).unwrap(); diff --git a/nym-vpn-core/nym-vpnd/src/windows_service/service.rs b/nym-vpn-core/nym-vpnd/src/windows_service/service.rs index a3a356100c..e20ebae3ba 100644 --- a/nym-vpn-core/nym-vpnd/src/windows_service/service.rs +++ b/nym-vpn-core/nym-vpnd/src/windows_service/service.rs @@ -1,6 +1,7 @@ use std::{env, ffi::OsString, time::Duration}; use nym_task::TaskManager; +use nym_vpn_lib::SHUTDOWN_TIMER_SECS; use tokio::sync::broadcast; use tracing::{error, info}; use windows_service::{ @@ -66,7 +67,7 @@ fn run_service(_arguments: Vec) -> windows_service::Result<()> { process_id: None, })?; - let task_manager = TaskManager::new(10).named("nym_vpnd"); + let task_manager = TaskManager::new(SHUTDOWN_TIMER_SECS).named("nym_vpnd"); let service_task_client = task_manager.subscribe_named("vpn_service"); let state_changes_tx = broadcast::channel(10).0; diff --git a/nym-vpn-desktop/src-tauri/Cargo.lock b/nym-vpn-desktop/src-tauri/Cargo.lock index 9fb3ad0d55..483238acde 100644 --- a/nym-vpn-desktop/src-tauri/Cargo.lock +++ b/nym-vpn-desktop/src-tauri/Cargo.lock @@ -4638,7 +4638,7 @@ dependencies = [ [[package]] name = "nym-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmrs", @@ -4655,10 +4655,36 @@ dependencies = [ "time", ] +[[package]] +name = "nym-authenticator-client" +version = "0.1.0" +dependencies = [ + "futures", + "nym-authenticator-requests", + "nym-sdk", + "nym-wireguard-types", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "nym-authenticator-requests" +version = "0.1.0" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" +dependencies = [ + "bincode", + "nym-sphinx", + "nym-wireguard-types", + "rand 0.8.5", + "serde", +] + [[package]] name = "nym-bandwidth-controller" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bip39", "log", @@ -4678,7 +4704,7 @@ dependencies = [ [[package]] name = "nym-bin-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "const-str", "log", @@ -4692,7 +4718,7 @@ dependencies = [ [[package]] name = "nym-client-core" version = "1.1.15" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.21.7", @@ -4748,7 +4774,7 @@ dependencies = [ [[package]] name = "nym-client-core-config-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "humantime-serde", "nym-config", @@ -4764,7 +4790,7 @@ dependencies = [ [[package]] name = "nym-client-core-gateways-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "cosmrs", @@ -4783,7 +4809,7 @@ dependencies = [ [[package]] name = "nym-client-core-surb-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "dashmap", @@ -4800,7 +4826,7 @@ dependencies = [ [[package]] name = "nym-coconut" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "bs58 0.5.1", @@ -4821,7 +4847,7 @@ dependencies = [ [[package]] name = "nym-coconut-bandwidth-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4831,7 +4857,7 @@ dependencies = [ [[package]] name = "nym-coconut-dkg-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4845,7 +4871,7 @@ dependencies = [ [[package]] name = "nym-config" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dirs 5.0.1", "handlebars", @@ -4875,7 +4901,7 @@ dependencies = [ [[package]] name = "nym-contracts-common" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmwasm-schema", @@ -4890,7 +4916,7 @@ dependencies = [ [[package]] name = "nym-country-group" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "tracing", @@ -4899,7 +4925,7 @@ dependencies = [ [[package]] name = "nym-credential-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -4912,7 +4938,7 @@ dependencies = [ [[package]] name = "nym-credential-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-bandwidth-controller", @@ -4929,7 +4955,7 @@ dependencies = [ [[package]] name = "nym-credentials" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "bls12_381", @@ -4948,7 +4974,7 @@ dependencies = [ [[package]] name = "nym-credentials-interface" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "nym-coconut", @@ -4959,7 +4985,7 @@ dependencies = [ [[package]] name = "nym-crypto" version = "0.4.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "aes 0.8.4", "blake3", @@ -4985,7 +5011,7 @@ dependencies = [ [[package]] name = "nym-dkg" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bitvec", "bls12_381", @@ -5007,7 +5033,7 @@ dependencies = [ [[package]] name = "nym-exit-policy" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "thiserror", @@ -5017,7 +5043,7 @@ dependencies = [ [[package]] name = "nym-explorer-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-api-requests", "nym-contracts-common", @@ -5029,7 +5055,7 @@ dependencies = [ [[package]] name = "nym-explorer-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-explorer-api-requests", @@ -5042,7 +5068,7 @@ dependencies = [ [[package]] name = "nym-gateway-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", @@ -5099,7 +5125,7 @@ dependencies = [ [[package]] name = "nym-gateway-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "futures", @@ -5123,7 +5149,7 @@ dependencies = [ [[package]] name = "nym-group-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cw-controllers", @@ -5148,7 +5174,7 @@ dependencies = [ [[package]] name = "nym-http-api-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "http 1.1.0", @@ -5165,7 +5191,7 @@ dependencies = [ [[package]] name = "nym-id" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-credential-storage", "nym-credentials", @@ -5192,7 +5218,7 @@ dependencies = [ [[package]] name = "nym-ip-packet-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "bytes", @@ -5210,7 +5236,7 @@ dependencies = [ [[package]] name = "nym-metrics" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dashmap", "lazy_static", @@ -5221,7 +5247,7 @@ dependencies = [ [[package]] name = "nym-mixnet-contract-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.4.0", "cosmwasm-schema", @@ -5240,7 +5266,7 @@ dependencies = [ [[package]] name = "nym-multisig-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -5256,7 +5282,7 @@ dependencies = [ [[package]] name = "nym-network-defaults" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cfg-if", "dotenvy", @@ -5272,7 +5298,7 @@ dependencies = [ [[package]] name = "nym-node-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.21.7", @@ -5294,7 +5320,7 @@ dependencies = [ [[package]] name = "nym-nonexhaustive-delayqueue" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "tokio", "tokio-stream", @@ -5305,7 +5331,7 @@ dependencies = [ [[package]] name = "nym-ordered-buffer" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "thiserror", @@ -5314,7 +5340,7 @@ dependencies = [ [[package]] name = "nym-outfox" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "blake3", "chacha20 0.9.1", @@ -5332,7 +5358,7 @@ dependencies = [ [[package]] name = "nym-pemstore" version = "0.3.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "pem", ] @@ -5340,7 +5366,7 @@ dependencies = [ [[package]] name = "nym-sdk" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bip39", @@ -5376,7 +5402,7 @@ dependencies = [ [[package]] name = "nym-service-providers-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -5390,7 +5416,7 @@ dependencies = [ [[package]] name = "nym-socks5-client-core" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "anyhow", "dirs 4.0.0", @@ -5423,7 +5449,7 @@ dependencies = [ [[package]] name = "nym-socks5-proxy-helpers" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "futures", @@ -5438,7 +5464,7 @@ dependencies = [ [[package]] name = "nym-socks5-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "log", @@ -5454,7 +5480,7 @@ dependencies = [ [[package]] name = "nym-sphinx" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-crypto", @@ -5478,7 +5504,7 @@ dependencies = [ [[package]] name = "nym-sphinx-acknowledgements" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-pemstore", @@ -5495,7 +5521,7 @@ dependencies = [ [[package]] name = "nym-sphinx-addressing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -5506,7 +5532,7 @@ dependencies = [ [[package]] name = "nym-sphinx-anonymous-replies" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "nym-crypto", @@ -5524,7 +5550,7 @@ dependencies = [ [[package]] name = "nym-sphinx-chunking" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-sphinx-addressing", @@ -5537,7 +5563,7 @@ dependencies = [ [[package]] name = "nym-sphinx-cover" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-acknowledgements", @@ -5555,7 +5581,7 @@ dependencies = [ [[package]] name = "nym-sphinx-forwarding" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "nym-sphinx-addressing", @@ -5567,7 +5593,7 @@ dependencies = [ [[package]] name = "nym-sphinx-framing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "nym-sphinx-params", @@ -5579,7 +5605,7 @@ dependencies = [ [[package]] name = "nym-sphinx-params" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -5590,7 +5616,7 @@ dependencies = [ [[package]] name = "nym-sphinx-routing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-sphinx-addressing", "nym-sphinx-types", @@ -5600,7 +5626,7 @@ dependencies = [ [[package]] name = "nym-sphinx-types" version = "0.2.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "sphinx-packet", @@ -5610,7 +5636,7 @@ dependencies = [ [[package]] name = "nym-task" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "log", @@ -5624,7 +5650,7 @@ dependencies = [ [[package]] name = "nym-topology" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bs58 0.5.1", @@ -5647,7 +5673,7 @@ dependencies = [ [[package]] name = "nym-validator-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.13.1", @@ -5694,7 +5720,7 @@ dependencies = [ [[package]] name = "nym-vesting-contract-common" version = "0.7.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -5739,7 +5765,7 @@ dependencies = [ [[package]] name = "nym-vpn-lib" -version = "0.1.10-dev" +version = "0.1.11-dev" dependencies = [ "android_logger", "anyhow", @@ -5758,6 +5784,8 @@ dependencies = [ "netdev", "nix 0.23.2", "nix 0.28.0", + "nym-authenticator-client", + "nym-authenticator-requests", "nym-bandwidth-controller", "nym-bin-common", "nym-client-core", @@ -5804,7 +5832,7 @@ dependencies = [ [[package]] name = "nym-wireguard-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "base64 0.21.7", "dashmap", @@ -10182,7 +10210,7 @@ dependencies = [ [[package]] name = "wasm-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", diff --git a/nym-vpn-desktop/src-tauri/Cargo.toml b/nym-vpn-desktop/src-tauri/Cargo.toml index dc0b98865d..0208f55a13 100644 --- a/nym-vpn-desktop/src-tauri/Cargo.toml +++ b/nym-vpn-desktop/src-tauri/Cargo.toml @@ -38,7 +38,7 @@ ts-rs = { version = "7.0.0", features = ["chrono-impl"] } once_cell = "1.18.0" toml = "0.8.5" time = "0.3.9" -nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "70599b9" } +nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } nym-vpn-lib = { path = "../../nym-vpn-core/nym-vpn-lib" } futures = "0.3.15" reqwest = { version = "0.11", features = ["json"] } diff --git a/nym-vpn-desktop/src-tauri/src/commands/connection.rs b/nym-vpn-desktop/src-tauri/src/commands/connection.rs index 6abd8a734f..0301514078 100644 --- a/nym-vpn-desktop/src-tauri/src/commands/connection.rs +++ b/nym-vpn-desktop/src-tauri/src/commands/connection.rs @@ -107,7 +107,7 @@ pub async fn connect( "using path for mixnet data: {}", BACKEND_DATA_PATH.to_string_lossy() ); - vpn_config.vpn_config.mixnet_data_path = Some(BACKEND_DATA_PATH.clone()); + vpn_config.mixnet_client_config.mixnet_data_path = Some(BACKEND_DATA_PATH.clone()); } // spawn the VPN client and start a new connection diff --git a/nym-vpn-x/src-tauri/Cargo.lock b/nym-vpn-x/src-tauri/Cargo.lock index c384b6415f..7a599ca13b 100644 --- a/nym-vpn-x/src-tauri/Cargo.lock +++ b/nym-vpn-x/src-tauri/Cargo.lock @@ -3717,7 +3717,7 @@ dependencies = [ [[package]] name = "nym-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmrs", @@ -3737,7 +3737,7 @@ dependencies = [ [[package]] name = "nym-bandwidth-controller" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bip39", "log", @@ -3757,7 +3757,7 @@ dependencies = [ [[package]] name = "nym-bin-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "const-str", "log", @@ -3771,7 +3771,7 @@ dependencies = [ [[package]] name = "nym-client-core" version = "1.1.15" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.21.7", @@ -3827,7 +3827,7 @@ dependencies = [ [[package]] name = "nym-client-core-config-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "humantime-serde", "nym-config", @@ -3843,7 +3843,7 @@ dependencies = [ [[package]] name = "nym-client-core-gateways-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "cosmrs", @@ -3862,7 +3862,7 @@ dependencies = [ [[package]] name = "nym-client-core-surb-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "dashmap", @@ -3879,7 +3879,7 @@ dependencies = [ [[package]] name = "nym-coconut" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "bs58 0.5.1", @@ -3900,7 +3900,7 @@ dependencies = [ [[package]] name = "nym-coconut-bandwidth-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -3910,7 +3910,7 @@ dependencies = [ [[package]] name = "nym-coconut-dkg-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -3924,7 +3924,7 @@ dependencies = [ [[package]] name = "nym-config" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dirs 5.0.1", "handlebars", @@ -3938,7 +3938,7 @@ dependencies = [ [[package]] name = "nym-contracts-common" version = "0.5.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "cosmwasm-schema", @@ -3953,7 +3953,7 @@ dependencies = [ [[package]] name = "nym-country-group" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "tracing", @@ -3962,7 +3962,7 @@ dependencies = [ [[package]] name = "nym-credential-storage" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -3975,7 +3975,7 @@ dependencies = [ [[package]] name = "nym-credential-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-bandwidth-controller", @@ -3992,7 +3992,7 @@ dependencies = [ [[package]] name = "nym-credentials" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "bls12_381", @@ -4011,7 +4011,7 @@ dependencies = [ [[package]] name = "nym-credentials-interface" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bls12_381", "nym-coconut", @@ -4022,7 +4022,7 @@ dependencies = [ [[package]] name = "nym-crypto" version = "0.4.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "aes", "blake3", @@ -4048,7 +4048,7 @@ dependencies = [ [[package]] name = "nym-dkg" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bitvec", "bls12_381", @@ -4070,7 +4070,7 @@ dependencies = [ [[package]] name = "nym-exit-policy" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "serde", "thiserror", @@ -4080,7 +4080,7 @@ dependencies = [ [[package]] name = "nym-explorer-api-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-api-requests", "nym-contracts-common", @@ -4092,7 +4092,7 @@ dependencies = [ [[package]] name = "nym-explorer-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-explorer-api-requests", @@ -4105,7 +4105,7 @@ dependencies = [ [[package]] name = "nym-gateway-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", @@ -4162,7 +4162,7 @@ dependencies = [ [[package]] name = "nym-gateway-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "futures", @@ -4186,7 +4186,7 @@ dependencies = [ [[package]] name = "nym-group-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cw-controllers", @@ -4211,7 +4211,7 @@ dependencies = [ [[package]] name = "nym-http-api-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "http 1.1.0", @@ -4228,7 +4228,7 @@ dependencies = [ [[package]] name = "nym-id" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-credential-storage", "nym-credentials", @@ -4241,7 +4241,7 @@ dependencies = [ [[package]] name = "nym-metrics" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "dashmap", "lazy_static", @@ -4252,7 +4252,7 @@ dependencies = [ [[package]] name = "nym-mixnet-contract-common" version = "0.6.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.4.0", "cosmwasm-schema", @@ -4271,7 +4271,7 @@ dependencies = [ [[package]] name = "nym-multisig-contract-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4287,7 +4287,7 @@ dependencies = [ [[package]] name = "nym-network-defaults" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cfg-if", "dotenvy", @@ -4303,7 +4303,7 @@ dependencies = [ [[package]] name = "nym-node-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "base64 0.21.7", "celes", @@ -4323,7 +4323,7 @@ dependencies = [ [[package]] name = "nym-nonexhaustive-delayqueue" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "tokio", "tokio-stream", @@ -4334,7 +4334,7 @@ dependencies = [ [[package]] name = "nym-ordered-buffer" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "thiserror", @@ -4343,7 +4343,7 @@ dependencies = [ [[package]] name = "nym-outfox" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "blake3", "chacha20", @@ -4361,7 +4361,7 @@ dependencies = [ [[package]] name = "nym-pemstore" version = "0.3.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "pem", ] @@ -4369,7 +4369,7 @@ dependencies = [ [[package]] name = "nym-sdk" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bip39", @@ -4405,7 +4405,7 @@ dependencies = [ [[package]] name = "nym-service-providers-common" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "log", @@ -4419,7 +4419,7 @@ dependencies = [ [[package]] name = "nym-socks5-client-core" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "anyhow", "dirs 4.0.0", @@ -4452,7 +4452,7 @@ dependencies = [ [[package]] name = "nym-socks5-proxy-helpers" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "futures", @@ -4467,7 +4467,7 @@ dependencies = [ [[package]] name = "nym-socks5-requests" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bincode", "log", @@ -4483,7 +4483,7 @@ dependencies = [ [[package]] name = "nym-sphinx" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-crypto", @@ -4507,7 +4507,7 @@ dependencies = [ [[package]] name = "nym-sphinx-acknowledgements" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-pemstore", @@ -4524,7 +4524,7 @@ dependencies = [ [[package]] name = "nym-sphinx-addressing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -4535,7 +4535,7 @@ dependencies = [ [[package]] name = "nym-sphinx-anonymous-replies" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bs58 0.5.1", "nym-crypto", @@ -4553,7 +4553,7 @@ dependencies = [ [[package]] name = "nym-sphinx-chunking" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "log", "nym-sphinx-addressing", @@ -4566,7 +4566,7 @@ dependencies = [ [[package]] name = "nym-sphinx-cover" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-acknowledgements", @@ -4584,7 +4584,7 @@ dependencies = [ [[package]] name = "nym-sphinx-forwarding" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "nym-sphinx-addressing", @@ -4596,7 +4596,7 @@ dependencies = [ [[package]] name = "nym-sphinx-framing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "bytes", "nym-sphinx-params", @@ -4608,7 +4608,7 @@ dependencies = [ [[package]] name = "nym-sphinx-params" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-crypto", "nym-sphinx-types", @@ -4619,7 +4619,7 @@ dependencies = [ [[package]] name = "nym-sphinx-routing" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-sphinx-addressing", "nym-sphinx-types", @@ -4629,7 +4629,7 @@ dependencies = [ [[package]] name = "nym-sphinx-types" version = "0.2.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "nym-outfox", "sphinx-packet", @@ -4639,7 +4639,7 @@ dependencies = [ [[package]] name = "nym-task" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "log", @@ -4653,7 +4653,7 @@ dependencies = [ [[package]] name = "nym-topology" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "bs58 0.5.1", @@ -4676,7 +4676,7 @@ dependencies = [ [[package]] name = "nym-validator-client" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "async-trait", "base64 0.13.1", @@ -4723,7 +4723,7 @@ dependencies = [ [[package]] name = "nym-vesting-contract-common" version = "0.7.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -4784,7 +4784,7 @@ dependencies = [ [[package]] name = "nym-wireguard-types" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "base64 0.21.7", "dashmap", @@ -8078,7 +8078,7 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-utils" version = "0.1.0" -source = "git+https://github.com/nymtech/nym?rev=70599b9#70599b97b985d6a5f0be478fcdedb559d14bbe47" +source = "git+https://github.com/nymtech/nym?rev=1f144690da9692ad61c60b754f0333dabeaf29d8#1f144690da9692ad61c60b754f0333dabeaf29d8" dependencies = [ "futures", "getrandom 0.2.12", diff --git a/nym-vpn-x/src-tauri/Cargo.toml b/nym-vpn-x/src-tauri/Cargo.toml index cda8ced41a..88450a4247 100644 --- a/nym-vpn-x/src-tauri/Cargo.toml +++ b/nym-vpn-x/src-tauri/Cargo.toml @@ -41,8 +41,8 @@ rust_iso3166 = "0.1" # nym deps nym-vpn-proto = { path = "../../nym-vpn-core/crates/nym-vpn-proto" } nym-gateway-directory = { path = "../../nym-vpn-core/crates/nym-gateway-directory/" } -nym-config = { git = "https://github.com/nymtech/nym", rev = "70599b9" } -nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "70599b9" } +nym-config = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } +nym-bin-common = { git = "https://github.com/nymtech/nym", rev = "1f144690da9692ad61c60b754f0333dabeaf29d8" } [target."cfg(windows)".dependencies] windows = { version = "0.57.0", features = ["Win32_System_Console", "Win32_Foundation"] }