From b760c0e6ceb3dbabd3da40e3f2af9f8cae9b3bb5 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Tue, 6 Jun 2023 15:05:28 +0200 Subject: [PATCH] Add keys to `UserIdentity` and `OwnUserIdentity` --- .../matrix-sdk-crypto-js/src/identities.rs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/bindings/matrix-sdk-crypto-js/src/identities.rs b/bindings/matrix-sdk-crypto-js/src/identities.rs index 3e28e9aaf..cd9baf9ed 100644 --- a/bindings/matrix-sdk-crypto-js/src/identities.rs +++ b/bindings/matrix-sdk-crypto-js/src/identities.rs @@ -85,6 +85,28 @@ impl OwnUserIdentity { future_to_promise(async move { Ok(me.trusts_our_own_device().await?) }) } + + /// Get the master key of the identity. + #[wasm_bindgen(getter, js_name = "masterKey")] + pub fn master_key(&self) -> Option { + let master_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&master_key).ok() + } + + /// Get the self-signing key of the identity. + #[wasm_bindgen(getter, js_name = "selfSigningKey")] + pub fn self_signing_key(&self) -> Option { + let self_signing_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&self_signing_key).ok() + } + + /// Get the user-signing key of the identity, this is only present for our + /// own user identity.. + #[wasm_bindgen(getter, js_name = "userSigningKey")] + pub fn user_signing_key(&self) -> Option { + let user_signing_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&user_signing_key).ok() + } } /// Struct representing a cross signing identity of a user. @@ -169,4 +191,26 @@ impl UserIdentity { Ok(serde_json::to_string(&me.verification_request_content(methods).await)?) })) } + + /// Get the master key of the identity. + #[wasm_bindgen(getter, js_name = "masterKey")] + pub fn master_key(&self) -> Option { + let master_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&master_key).ok() + } + + /// Get the self-signing key of the identity. + #[wasm_bindgen(getter, js_name = "selfSigningKey")] + pub fn self_signing_key(&self) -> Option { + let self_signing_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&self_signing_key).ok() + } + + /// Get the user-signing key of the identity, this is only present for our + /// own user identity.. + #[wasm_bindgen(getter, js_name = "userSigningKey")] + pub fn user_signing_key(&self) -> Option { + let user_signing_key = self.inner.master_key().as_ref().to_owned(); + serde_json::to_string(&user_signing_key).ok() + } }