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 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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

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>).
§

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.
source§

impl<T> Instrument for T

source§

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

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

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> 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.
§

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

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

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,