mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-11 17:33:51 -04:00
Merge pull request #2020 from matrix-org/florianduros/bindings/add-missing-key-identity
Bindings JS: Add missing keys to `UserIdentity` and `OwnUserIdentity`
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
# Next version
|
||||
|
||||
- Add `masterKey`, `userSigningKey`, `selfSigningKey` to `UserIdentity` and `OwnUserIdentity`
|
||||
|
||||
# v0.1.0-alpha.9
|
||||
|
||||
- Extend `OlmDevice.markRequestAsSent` to accept responses to
|
||||
|
||||
@@ -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) -> Result<String, JsError> {
|
||||
let master_key = self.inner.master_key().as_ref();
|
||||
Ok(serde_json::to_string(master_key)?)
|
||||
}
|
||||
|
||||
/// Get the self-signing key of the identity.
|
||||
#[wasm_bindgen(getter, js_name = "selfSigningKey")]
|
||||
pub fn self_signing_key(&self) -> Result<String, JsError> {
|
||||
let self_signing_key = self.inner.self_signing_key().as_ref();
|
||||
Ok(serde_json::to_string(self_signing_key)?)
|
||||
}
|
||||
|
||||
/// 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) -> Result<String, JsError> {
|
||||
let user_signing_key = self.inner.user_signing_key().as_ref();
|
||||
Ok(serde_json::to_string(user_signing_key)?)
|
||||
}
|
||||
}
|
||||
|
||||
/// Struct representing a cross signing identity of a user.
|
||||
@@ -169,4 +191,18 @@ 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) -> Result<String, JsError> {
|
||||
let master_key = self.inner.master_key().as_ref();
|
||||
Ok(serde_json::to_string(master_key)?)
|
||||
}
|
||||
|
||||
/// Get the self-signing key of the identity.
|
||||
#[wasm_bindgen(getter, js_name = "selfSigningKey")]
|
||||
pub fn self_signing_key(&self) -> Result<String, JsError> {
|
||||
let self_signing_key = self.inner.self_signing_key().as_ref();
|
||||
Ok(serde_json::to_string(self_signing_key)?)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -601,6 +601,27 @@ describe(OlmMachine.name, () => {
|
||||
const identity = await m.getIdentity(user);
|
||||
|
||||
expect(identity).toBeInstanceOf(OwnUserIdentity);
|
||||
const masterKey = JSON.parse(identity.masterKey);
|
||||
const selfSigningKey = JSON.parse(identity.selfSigningKey);
|
||||
const userSigningKey = JSON.parse(identity.userSigningKey);
|
||||
|
||||
const masterObjKeys = Object.keys(masterKey.keys);
|
||||
const keyFromMasterKey = masterKey.keys[masterObjKeys[0]];
|
||||
|
||||
// self signing key exists
|
||||
expect(Object.keys(selfSigningKey.keys).length).toBe(1);
|
||||
// self signing key is different from the master key
|
||||
expect(selfSigningKey.keys[keyFromMasterKey]).not.toBeDefined();
|
||||
|
||||
const selfSigningObjKeys = Object.keys(selfSigningKey.keys);
|
||||
const keyFromSelfSigningKey = masterKey.keys[selfSigningObjKeys[0]];
|
||||
|
||||
// user signing key exists
|
||||
expect(Object.keys(userSigningKey.keys).length).toBe(1);
|
||||
// user signing key is different from the master key
|
||||
expect(userSigningKey.keys[keyFromMasterKey]).not.toBeDefined();
|
||||
// user signing key is different from the self signing key
|
||||
expect(userSigningKey.keys[keyFromSelfSigningKey]).not.toBeDefined();
|
||||
|
||||
const signatureUploadRequest = await identity.verify();
|
||||
expect(signatureUploadRequest).toBeInstanceOf(SignatureUploadRequest);
|
||||
|
||||
Reference in New Issue
Block a user