From 76d57baa11b5967b03502595bde06a32ca6a8867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Fri, 9 Jul 2021 11:40:21 +0200 Subject: [PATCH] crypto: Add the verification to the cache after we scan a QR code --- matrix_sdk_crypto/src/verification/qrcode.rs | 3 +- .../src/verification/requests.rs | 28 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/matrix_sdk_crypto/src/verification/qrcode.rs b/matrix_sdk_crypto/src/verification/qrcode.rs index 605b248c..d460f54b 100644 --- a/matrix_sdk_crypto/src/verification/qrcode.rs +++ b/matrix_sdk_crypto/src/verification/qrcode.rs @@ -947,7 +947,8 @@ mod test { .await .unwrap(); - let content = bob_verification.reciprocate().unwrap(); + let request = bob_verification.reciprocate().unwrap(); + let content = OutgoingContent::from(request); let content = StartContent::try_from(&content).unwrap(); alice_verification.receive_reciprocation(&content); diff --git a/matrix_sdk_crypto/src/verification/requests.rs b/matrix_sdk_crypto/src/verification/requests.rs index 7c224d55..5c987a13 100644 --- a/matrix_sdk_crypto/src/verification/requests.rs +++ b/matrix_sdk_crypto/src/verification/requests.rs @@ -271,19 +271,21 @@ impl VerificationRequest { let state = self.inner.lock().unwrap(); if let InnerRequest::Ready(r) = &*state { - Ok(Some( - QrVerification::from_scan( - r.store.clone(), - r.account.clone(), - r.private_cross_signing_identity.clone(), - r.other_user_id.clone(), - r.state.other_device_id.clone(), - r.flow_id.as_ref().to_owned(), - data, - self.we_started, - ) - .await?, - )) + let qr_verification = QrVerification::from_scan( + r.store.clone(), + r.account.clone(), + r.private_cross_signing_identity.clone(), + r.other_user_id.clone(), + r.state.other_device_id.clone(), + r.flow_id.as_ref().to_owned(), + data, + self.we_started, + ) + .await?; + + self.verification_cache.insert_qr(qr_verification.clone()); + + Ok(Some(qr_verification)) } else { Ok(None) }