diff --git a/services/commtest/src/identity/device.rs b/services/commtest/src/identity/device.rs --- a/services/commtest/src/identity/device.rs +++ b/services/commtest/src/identity/device.rs @@ -3,11 +3,10 @@ get_auth_client, get_unauthenticated_client, PlatformMetadata, }; use rand::{distributions::Alphanumeric, Rng}; +use std::borrow::Cow; use crate::identity::olm_account_infos::generate_random_olm_key; -use crate::identity::olm_account_infos::{ - ClientPublicKeys, DEFAULT_CLIENT_KEYS, -}; +use crate::identity::olm_account_infos::ClientPublicKeys; use crate::service_addr; use grpc_clients::identity::protos::unauth::{ @@ -62,12 +61,11 @@ .map(char::from) .collect(); - // TODO: Generate dynamic valid olm account info - let keys = keys.unwrap_or_else(|| &DEFAULT_CLIENT_KEYS); - let example_payload = - serde_json::to_string(&keys).expect("Failed to serialize example payload"); + let device_keys = keys.map(Cow::Borrowed).unwrap_or_default(); + let example_payload = serde_json::to_string(&device_keys) + .expect("Failed to serialize example payload"); // The ed25519 value from the olm payload - let device_id = &keys.primary_identity_public_keys.ed25519; + let device_id = &device_keys.primary_identity_public_keys.ed25519; let device_type = device_type.unwrap_or(DeviceType::Keyserver); let mut client_registration = Registration::new(); @@ -145,12 +143,11 @@ device_type: Option, force: bool, ) -> DeviceInfo { - // TODO: Generate dynamic valid olm account info - let keys = keys.unwrap_or_else(|| &DEFAULT_CLIENT_KEYS); - let example_payload = - serde_json::to_string(&keys).expect("Failed to serialize example payload"); + let device_keys = keys.cloned().unwrap_or_default(); + let example_payload = serde_json::to_string(&device_keys) + .expect("Failed to serialize example payload"); // The ed25519 value from the olm payload - let device_id = &keys.primary_identity_public_keys.ed25519; + let device_id = &device_keys.primary_identity_public_keys.ed25519; let device_type = device_type.unwrap_or(DeviceType::Keyserver); let mut client_login = Login::new(); diff --git a/services/commtest/src/identity/mod.rs b/services/commtest/src/identity/mod.rs --- a/services/commtest/src/identity/mod.rs +++ b/services/commtest/src/identity/mod.rs @@ -2,14 +2,13 @@ use ed25519_dalek::{ed25519::signature::Signer, Keypair, Signature}; use rand::rngs::OsRng; -use self::olm_account_infos::{ - ClientPublicKeys, IdentityPublicKeys, DEFAULT_CLIENT_KEYS, -}; +use self::olm_account_infos::ClientPublicKeys; pub mod device; pub mod olm_account_infos; pub struct SigningCapableAccount { + // primary account ed25519 keypair signing_key: Keypair, } @@ -22,18 +21,11 @@ /// returns device public keys, required for device key upload pub fn public_keys(&self) -> ClientPublicKeys { - let default = DEFAULT_CLIENT_KEYS.clone(); let signing_public_key = self.signing_key.public.to_bytes(); let ed25519 = base64::engine::general_purpose::STANDARD_NO_PAD .encode(signing_public_key); - ClientPublicKeys { - primary_identity_public_keys: IdentityPublicKeys { - ed25519, - ..default.primary_identity_public_keys - }, - ..default - } + ClientPublicKeys::new(ed25519) } /// signs message, returns signature