diff --git a/src/peerstate.rs b/src/peerstate.rs index 6a2a83380..4efd1f96d 100644 --- a/src/peerstate.rs +++ b/src/peerstate.rs @@ -427,42 +427,37 @@ impl Peerstate { &mut self, which_key: PeerstateKeyType, fingerprint: Fingerprint, - verified: PeerstateVerifiedStatus, verifier: String, ) -> Result<()> { - if verified == PeerstateVerifiedStatus::BidirectVerified { - match which_key { - PeerstateKeyType::PublicKey => { - if self.public_key_fingerprint.is_some() - && self.public_key_fingerprint.as_ref().unwrap() == &fingerprint - { - self.verified_key = self.public_key.clone(); - self.verified_key_fingerprint = Some(fingerprint); - self.verifier = Some(verifier); - Ok(()) - } else { - Err(Error::msg(format!( - "{fingerprint} is not peer's public key fingerprint", - ))) - } - } - PeerstateKeyType::GossipKey => { - if self.gossip_key_fingerprint.is_some() - && self.gossip_key_fingerprint.as_ref().unwrap() == &fingerprint - { - self.verified_key = self.gossip_key.clone(); - self.verified_key_fingerprint = Some(fingerprint); - self.verifier = Some(verifier); - Ok(()) - } else { - Err(Error::msg(format!( - "{fingerprint} is not peer's gossip key fingerprint", - ))) - } + match which_key { + PeerstateKeyType::PublicKey => { + if self.public_key_fingerprint.is_some() + && self.public_key_fingerprint.as_ref().unwrap() == &fingerprint + { + self.verified_key = self.public_key.clone(); + self.verified_key_fingerprint = Some(fingerprint); + self.verifier = Some(verifier); + Ok(()) + } else { + Err(Error::msg(format!( + "{fingerprint} is not peer's public key fingerprint", + ))) + } + } + PeerstateKeyType::GossipKey => { + if self.gossip_key_fingerprint.is_some() + && self.gossip_key_fingerprint.as_ref().unwrap() == &fingerprint + { + self.verified_key = self.gossip_key.clone(); + self.verified_key_fingerprint = Some(fingerprint); + self.verifier = Some(verifier); + Ok(()) + } else { + Err(Error::msg(format!( + "{fingerprint} is not peer's gossip key fingerprint", + ))) } } - } else { - Err(Error::msg("BidirectVerified required")) } } diff --git a/src/receive_imf.rs b/src/receive_imf.rs index b20ca98a1..c17c5bee3 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -30,7 +30,7 @@ use crate::message::{ }; use crate::mimeparser::{parse_message_ids, AvatarAction, MimeMessage, SystemMessage}; use crate::param::{Param, Params}; -use crate::peerstate::{Peerstate, PeerstateKeyType, PeerstateVerifiedStatus}; +use crate::peerstate::{Peerstate, PeerstateKeyType}; use crate::reaction::{set_msg_reaction, Reaction}; use crate::securejoin::{self, handle_securejoin_handshake, observe_securejoin_on_other_device}; use crate::simplify; @@ -2342,7 +2342,6 @@ async fn has_verified_encryption( peerstate.set_verified( PeerstateKeyType::GossipKey, fp, - PeerstateVerifiedStatus::BidirectVerified, contact.get_addr().to_owned(), )?; peerstate.save_to_db(&context.sql).await?; diff --git a/src/securejoin.rs b/src/securejoin.rs index df045ad4c..ba8876a88 100644 --- a/src/securejoin.rs +++ b/src/securejoin.rs @@ -18,7 +18,7 @@ use crate::key::{load_self_public_key, DcKey, Fingerprint}; use crate::message::{Message, Viewtype}; use crate::mimeparser::{MimeMessage, SystemMessage}; use crate::param::Param; -use crate::peerstate::{Peerstate, PeerstateKeyType, PeerstateVerifiedStatus}; +use crate::peerstate::{Peerstate, PeerstateKeyType}; use crate::qr::check_qr; use crate::stock_str; use crate::token; @@ -614,12 +614,9 @@ pub(crate) async fn observe_securejoin_on_other_device( return Ok(HandshakeMessage::Ignore); } }; - if let Err(err) = peerstate.set_verified( - PeerstateKeyType::GossipKey, - fingerprint, - PeerstateVerifiedStatus::BidirectVerified, - addr, - ) { + if let Err(err) = + peerstate.set_verified(PeerstateKeyType::GossipKey, fingerprint, addr) + { could_not_establish_secure_connection( context, contact_id, @@ -743,12 +740,8 @@ async fn mark_peer_as_verified( verifier: String, ) -> Result<()> { if let Some(ref mut peerstate) = Peerstate::from_fingerprint(context, &fingerprint).await? { - if let Err(err) = peerstate.set_verified( - PeerstateKeyType::PublicKey, - fingerprint, - PeerstateVerifiedStatus::BidirectVerified, - verifier, - ) { + if let Err(err) = peerstate.set_verified(PeerstateKeyType::PublicKey, fingerprint, verifier) + { error!(context, "Could not mark peer as verified: {}", err); return Err(err); }