mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-12 18:21:21 -04:00
task(crypto): Accept old PreviouslyVerified value of SenderData when deserializing
This commit is contained in:
@@ -215,6 +215,7 @@ enum SenderDataReader {
|
||||
legacy_session: bool,
|
||||
},
|
||||
|
||||
#[serde(alias = "SenderUnverifiedButPreviouslyVerified")]
|
||||
VerificationViolation(KnownSenderData),
|
||||
|
||||
SenderUnverified(KnownSenderData),
|
||||
@@ -286,7 +287,10 @@ mod tests {
|
||||
use vodozemac::Ed25519PublicKey;
|
||||
|
||||
use super::SenderData;
|
||||
use crate::types::{DeviceKeys, Signatures};
|
||||
use crate::{
|
||||
olm::KnownSenderData,
|
||||
types::{DeviceKeys, Signatures},
|
||||
};
|
||||
|
||||
#[test]
|
||||
fn serializing_unknown_device_correctly_preserves_owner_check_failed_if_true() {
|
||||
@@ -360,6 +364,47 @@ mod tests {
|
||||
assert_let!(SenderData::SenderVerified { .. } = end);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn deserializing_sender_unverified_but_previously_verified_migrates_to_verification_violation()
|
||||
{
|
||||
let json = r#"
|
||||
{
|
||||
"SenderUnverifiedButPreviouslyVerified":{
|
||||
"user_id":"@u:s.co",
|
||||
"master_key":[
|
||||
150,140,249,139,141,29,63,230,179,14,213,175,176,61,11,255,
|
||||
26,103,10,51,100,154,183,47,181,117,87,204,33,215,241,92
|
||||
],
|
||||
"master_key_verified":true
|
||||
}
|
||||
}
|
||||
"#;
|
||||
|
||||
let end: SenderData = serde_json::from_str(json).expect("Failed to parse!");
|
||||
assert_let!(SenderData::VerificationViolation(KnownSenderData { user_id, .. }) = end);
|
||||
assert_eq!(user_id, owned_user_id!("@u:s.co"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn deserializing_verification_violation() {
|
||||
let json = r#"
|
||||
{
|
||||
"VerificationViolation":{
|
||||
"user_id":"@u:s.co",
|
||||
"master_key":[
|
||||
150,140,249,139,141,29,63,230,179,14,213,175,176,61,11,255,
|
||||
26,103,10,51,100,154,183,47,181,117,87,204,33,215,241,92
|
||||
],
|
||||
"master_key_verified":true
|
||||
}
|
||||
}
|
||||
"#;
|
||||
|
||||
let end: SenderData = serde_json::from_str(json).expect("Failed to parse!");
|
||||
assert_let!(SenderData::VerificationViolation(KnownSenderData { user_id, .. }) = end);
|
||||
assert_eq!(user_id, owned_user_id!("@u:s.co"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn equal_sessions_have_same_trust_level() {
|
||||
let unknown = SenderData::unknown();
|
||||
|
||||
Reference in New Issue
Block a user