Struct matrix_sdk_crypto::VerificationRequest

source ·
pub struct VerificationRequest { /* private fields */ }
Expand description

An object controlling key verification requests.

Interactive verification flows usually start with a verification request, this object lets you send and reply to such a verification request.

After the initial handshake the verification flow transitions into one of the verification methods.

Implementations§

source§

impl VerificationRequest

source

pub fn request( own_user_id: &UserId, own_device_id: &DeviceId, other_user_id: &UserId, methods: Option<Vec<VerificationMethod>>, ) -> KeyVerificationRequestEventContent

Create an event content that can be sent as a room event to request verification from the other side. This should be used only for verifications of other users and it should be sent to a room we consider to be a DM with the other user.

source

pub fn own_user_id(&self) -> &UserId

Our own user id.

source

pub fn other_user(&self) -> &UserId

The id of the other user that is participating in this verification request.

source

pub fn other_device_id(&self) -> Option<OwnedDeviceId>

The id of the other device that is participating in this verification.

source

pub fn room_id(&self) -> Option<&RoomId>

Get the room id if the verification is happening inside a room.

source

pub fn cancel_info(&self) -> Option<CancelInfo>

Get info about the cancellation if the verification request has been cancelled.

source

pub fn is_passive(&self) -> bool

Has the verification request been answered by another device.

source

pub fn is_ready(&self) -> bool

Is the verification request ready to start a verification flow.

source

pub fn timed_out(&self) -> bool

Has the verification flow timed out.

source

pub fn time_remaining(&self) -> Duration

Get the time left before the verification flow will time out, without further action.

source

pub fn their_supported_methods(&self) -> Option<Vec<VerificationMethod>>

Get the supported verification methods of the other side.

Will be present only if the other side requested the verification or if we’re in the ready state.

source

pub fn our_supported_methods(&self) -> Option<Vec<VerificationMethod>>

Get our own supported verification methods that we advertised.

Will be present only we requested the verification or if we’re in the ready state.

source

pub fn flow_id(&self) -> &FlowId

Get the unique ID of this verification request

source

pub fn is_self_verification(&self) -> bool

Is this a verification that is verifying one of our own devices

source

pub fn we_started(&self) -> bool

Did we initiate the verification request

source

pub fn is_done(&self) -> bool

Has the verification flow that was started with this request finished.

source

pub fn is_cancelled(&self) -> bool

Has the verification flow that was started with this request been cancelled.

source

pub async fn generate_qr_code( &self, ) -> Result<Option<QrVerification>, CryptoStoreError>

Available on crate feature qrcode only.

Generate a QR code that can be used by another client to start a QR code based verification.

source

pub async fn scan_qr_code( &self, data: QrVerificationData, ) -> Result<Option<QrVerification>, ScanError>

Available on crate feature qrcode only.

Start a QR code verification by providing a scanned QR code for this verification flow.

Returns a ScanError if the QR code isn’t valid, None if the verification request isn’t in the ready state or we don’t support QR code verification, otherwise a newly created QrVerification object which will be used for the remainder of the verification flow.

source

pub fn accept_with_methods( &self, methods: Vec<VerificationMethod>, ) -> Option<OutgoingVerificationRequest>

Accept the verification request signaling that our client supports the given verification methods.

§Arguments
  • methods - The methods that we should advertise as supported by us.
source

pub fn accept(&self) -> Option<OutgoingVerificationRequest>

Accept the verification request.

This method will accept the request and signal that it supports the m.sas.v1, the m.qr_code.show.v1, and m.reciprocate.v1 method.

m.qr_code.show.v1 will only be signaled if the qrcode feature is enabled. This feature is disabled by default. If it’s enabled and QR code scanning should be supported or QR code showing shouldn’t be supported the accept_with_methods() method should be used instead.

source

pub fn cancel(&self) -> Option<OutgoingVerificationRequest>

Cancel the verification request

source

pub async fn start_sas( &self, ) -> Result<Option<(Sas, OutgoingVerificationRequest)>, CryptoStoreError>

Transition from this verification request into a SAS verification flow.

source

pub fn changes(&self) -> impl Stream<Item = VerificationRequestState>

Listen for changes in the verification request.

The changes are presented as a stream of VerificationRequestState values.

source

pub fn state(&self) -> VerificationRequestState

Get the current state the verification request is in.

To listen to changes to the VerificationRequestState use the VerificationRequest::changes method.

Trait Implementations§

source§

impl Clone for VerificationRequest

source§

fn clone(&self) -> VerificationRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VerificationRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

source§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
source§

fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
source§

fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<>
source§

fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

source§

const WITNESS: W = W::MAKE

A constant of the type witness
source§

impl<T> Identity for T
where T: ?Sized,

§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> AsyncTraitDeps for T

source§

impl<T> SendOutsideWasm for T
where T: Send,

source§

impl<T> SyncOutsideWasm for T
where T: Sync,