From e3b2e0fa3ebbb2efe91611a3bd427db84daed800 Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Wed, 2 Apr 2025 16:30:06 +0200 Subject: [PATCH] feat(base): Add the `Verification` request processor. --- .../src/response_processors/verification.rs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 crates/matrix-sdk-base/src/response_processors/verification.rs diff --git a/crates/matrix-sdk-base/src/response_processors/verification.rs b/crates/matrix-sdk-base/src/response_processors/verification.rs new file mode 100644 index 000000000..8b1d60253 --- /dev/null +++ b/crates/matrix-sdk-base/src/response_processors/verification.rs @@ -0,0 +1,37 @@ +// Copyright 2025 The Matrix.org Foundation C.I.C. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use matrix_sdk_crypto::OlmMachine; +use ruma::{events::AnySyncMessageLikeEvent, RoomId}; + +use super::Context; +use crate::Result; + +pub async fn verification( + _context: &mut Context, + verification_is_allowed: bool, + olm_machine: Option<&OlmMachine>, + event: &AnySyncMessageLikeEvent, + room_id: &RoomId, +) -> Result<()> { + if !verification_is_allowed { + return Ok(()); + } + + if let Some(olm) = olm_machine { + olm.receive_verification_event(&event.clone().into_full_event(room_id.to_owned())).await?; + } + + Ok(()) +}