From 2bc564ad015e89cbabf45b111e3a9b7bee7f2101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Mon, 5 Jun 2023 14:09:28 +0100 Subject: [PATCH] updating managed keys after gateway registration (#3514) --- common/client-core/src/init/mod.rs | 8 ++++---- sdk/rust/nym-sdk/src/mixnet/client.rs | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/common/client-core/src/init/mod.rs b/common/client-core/src/init/mod.rs index 27cab34fb4..5dafc62b7d 100644 --- a/common/client-core/src/init/mod.rs +++ b/common/client-core/src/init/mod.rs @@ -155,7 +155,7 @@ pub async fn get_registered_gateway( key_store: &S::KeyStore, setup: GatewaySetup, overwrite_keys: bool, -) -> Result +) -> Result<(GatewayEndpointConfig, ManagedKeys), ClientCoreError> where S: MixnetClientStorage, ::StorageError: Send + Sync + 'static, @@ -164,11 +164,11 @@ where // try load keys let mut managed_keys = match ManagedKeys::try_load(key_store).await { - Ok(_) => { + Ok(loaded_keys) => { // if we loaded something and we don't have full gateway details, check if we can overwrite the data if let GatewaySetup::Predefined { config } = setup { // we already have defined gateway details AND a shared key, so nothing more for us to do - return Ok(config); + return Ok((config, loaded_keys)); } else if overwrite_keys { ManagedKeys::generate_new(&mut rng) } else { @@ -196,7 +196,7 @@ where // TODO: here we should be probably persisting gateway details as opposed to returning them - Ok(gateway_details) + Ok((gateway_details, managed_keys)) } /// Convenience function for setting up the gateway for a client given a `Config`. Depending on the diff --git a/sdk/rust/nym-sdk/src/mixnet/client.rs b/sdk/rust/nym-sdk/src/mixnet/client.rs index d0bbe86d61..f1c10b373e 100644 --- a/sdk/rust/nym-sdk/src/mixnet/client.rs +++ b/sdk/rust/nym-sdk/src/mixnet/client.rs @@ -356,7 +356,7 @@ where let api_endpoints = self.get_api_endpoints(); let gateway_setup = GatewaySetup::new(None, self.config.user_chosen_gateway.clone(), None); - let gateway_config = nym_client_core::init::get_registered_gateway::( + let (gateway_config, managed_keys) = nym_client_core::init::get_registered_gateway::( api_endpoints, &self.key_store, gateway_setup, @@ -367,6 +367,7 @@ where self.state = BuilderState::Registered { gateway_endpoint_config: gateway_config, }; + self.managed_keys = managed_keys; Ok(()) }