deltachat::securejoin

Function observe_securejoin_on_other_device

source
pub(crate) async fn observe_securejoin_on_other_device(
    context: &Context,
    mime_message: &MimeMessage,
    contact_id: ContactId,
) -> Result<HandshakeMessage>
Expand description

Observe self-sent Securejoin message.

In a multi-device-setup, there may be other devices that “see” the handshake messages. If we see self-sent messages encrypted+signed correctly with our key, we can make some conclusions of it.

If we see self-sent {vc,vg}-request-with-auth, we know that we are Bob (joiner-observer) that just marked peer (Alice) as forward-verified either after receiving {vc,vg}-auth-required or immediately after scanning the QR-code if the key was already known.

If we see self-sent vc-contact-confirm or vg-member-added message, we know that we are Alice (inviter-observer) that just marked peer (Bob) as forward (and backward)-verified in response to correct vc-request-with-auth message.

In both cases we can mark the peer as forward-verified.