mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-02-15 10:03:26 -05:00
114 lines
3.8 KiB
Rust
114 lines
3.8 KiB
Rust
mod backups;
|
|
mod cross_signing;
|
|
mod recovery;
|
|
mod secret_storage;
|
|
mod shared_history;
|
|
#[cfg(feature = "experimental-encrypted-state-events")]
|
|
mod state_events;
|
|
mod to_device;
|
|
mod verification;
|
|
|
|
/// The backup key, which is also returned (encrypted) as part of the secret
|
|
/// storage data by [`mock_secret_store_with_backup_key`].
|
|
const BACKUP_DECRYPTION_KEY_BASE64: &str = "IeJv45zHC4AamrFtCi3MedkLMBZYXjPbKUnv53Iqzho";
|
|
|
|
async fn mock_secret_store_with_backup_key(
|
|
user_id: &ruma::UserId,
|
|
key_id: &str,
|
|
server: &wiremock::MockServer,
|
|
) {
|
|
use serde_json::json;
|
|
use wiremock::{
|
|
Mock, ResponseTemplate,
|
|
matchers::{header, method, path},
|
|
};
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!(
|
|
"_matrix/client/r0/user/{user_id}/account_data/m.secret_storage.default_key"
|
|
)))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(200).set_body_json(json!({
|
|
"key": key_id,
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!(
|
|
"_matrix/client/r0/user/{user_id}/account_data/m.secret_storage.key.{key_id}"
|
|
)))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(200).set_body_json(json!({
|
|
"algorithm": "m.secret_storage.v1.aes-hmac-sha2",
|
|
"iv": "1Sl4os6UhNRkVQcT6ArQ0g",
|
|
"mac": "UCZlTzqVT7mNvLkwlcCJmuq9nA27oxqpXGdLr9SxD/Y",
|
|
"name": null,
|
|
"passphrase": {
|
|
"algorithm": "m.pbkdf2",
|
|
"iterations": 1,
|
|
"salt": "ooLiz7Kz0TeWH2eYcyjP2fCegEB7PH5B"
|
|
}
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!("_matrix/client/r0/user/{user_id}/account_data/m.cross_signing.master")))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(404).set_body_json(json!({
|
|
"errcode": "M_NOT_FOUND",
|
|
"error": "Account data not found"
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!(
|
|
"_matrix/client/r0/user/{user_id}/account_data/m.cross_signing.user_signing"
|
|
)))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(404).set_body_json(json!({
|
|
"errcode": "M_NOT_FOUND",
|
|
"error": "Account data not found"
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!(
|
|
"_matrix/client/r0/user/{user_id}/account_data/m.cross_signing.self_signing"
|
|
)))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(404).set_body_json(json!({
|
|
"errcode": "M_NOT_FOUND",
|
|
"error": "Account data not found"
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("POST"))
|
|
.and(path("_matrix/client/r0/keys/query"))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(200).set_body_json(json!({
|
|
"device_keys": {}
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
|
|
Mock::given(method("GET"))
|
|
.and(path(format!("_matrix/client/r0/user/{user_id}/account_data/m.megolm_backup.v1")))
|
|
.and(header("authorization", "Bearer 1234"))
|
|
.respond_with(ResponseTemplate::new(200).set_body_json(json!({
|
|
"encrypted": {
|
|
"yJWwBm2Ts8jHygTBslKpABFyykavhhfA": {
|
|
"ciphertext": "c39B25f6GSvW7gCUZI1OC0V821Ht2WUfxPWB43rvFSsubouHf16ImqLrwQ",
|
|
"iv": "hpyoGAElX8YRuigbqa7tfA",
|
|
"mac": "nE/RCVmFQxu+KuqxmYDDzIxf2JUlxz2oTpoJTj5pUxM"
|
|
}
|
|
}
|
|
})))
|
|
.mount(server)
|
|
.await;
|
|
}
|