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
impl VerificationRequest
sourcepub fn request(
own_user_id: &UserId,
own_device_id: &DeviceId,
other_user_id: &UserId,
methods: Option<Vec<VerificationMethod>>,
) -> KeyVerificationRequestEventContent
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.
sourcepub fn own_user_id(&self) -> &UserId
pub fn own_user_id(&self) -> &UserId
Our own user id.
sourcepub fn other_user(&self) -> &UserId
pub fn other_user(&self) -> &UserId
The id of the other user that is participating in this verification request.
sourcepub fn other_device_id(&self) -> Option<OwnedDeviceId>
pub fn other_device_id(&self) -> Option<OwnedDeviceId>
The id of the other device that is participating in this verification.
sourcepub fn room_id(&self) -> Option<&RoomId>
pub fn room_id(&self) -> Option<&RoomId>
Get the room id if the verification is happening inside a room.
sourcepub fn cancel_info(&self) -> Option<CancelInfo>
pub fn cancel_info(&self) -> Option<CancelInfo>
Get info about the cancellation if the verification request has been cancelled.
sourcepub fn is_passive(&self) -> bool
pub fn is_passive(&self) -> bool
Has the verification request been answered by another device.
sourcepub fn time_remaining(&self) -> Duration
pub fn time_remaining(&self) -> Duration
Get the time left before the verification flow will time out, without further action.
sourcepub fn their_supported_methods(&self) -> Option<Vec<VerificationMethod>>
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.
sourcepub fn our_supported_methods(&self) -> Option<Vec<VerificationMethod>>
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.
sourcepub fn is_self_verification(&self) -> bool
pub fn is_self_verification(&self) -> bool
Is this a verification that is verifying one of our own devices
sourcepub fn we_started(&self) -> bool
pub fn we_started(&self) -> bool
Did we initiate the verification request
sourcepub fn is_done(&self) -> bool
pub fn is_done(&self) -> bool
Has the verification flow that was started with this request finished.
sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Has the verification flow that was started with this request been cancelled.
sourcepub async fn generate_qr_code(
&self,
) -> Result<Option<QrVerification>, CryptoStoreError>
Available on crate feature qrcode
only.
pub async fn generate_qr_code( &self, ) -> Result<Option<QrVerification>, CryptoStoreError>
qrcode
only.Generate a QR code that can be used by another client to start a QR code based verification.
sourcepub async fn scan_qr_code(
&self,
data: QrVerificationData,
) -> Result<Option<QrVerification>, ScanError>
Available on crate feature qrcode
only.
pub async fn scan_qr_code( &self, data: QrVerificationData, ) -> Result<Option<QrVerification>, ScanError>
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.
sourcepub fn accept_with_methods(
&self,
methods: Vec<VerificationMethod>,
) -> Option<OutgoingVerificationRequest>
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.
sourcepub fn accept(&self) -> Option<OutgoingVerificationRequest>
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.
sourcepub fn cancel(&self) -> Option<OutgoingVerificationRequest>
pub fn cancel(&self) -> Option<OutgoingVerificationRequest>
Cancel the verification request
sourcepub async fn start_sas(
&self,
) -> Result<Option<(Sas, OutgoingVerificationRequest)>, CryptoStoreError>
pub async fn start_sas( &self, ) -> Result<Option<(Sas, OutgoingVerificationRequest)>, CryptoStoreError>
Transition from this verification request into a SAS verification flow.
sourcepub fn changes(&self) -> impl Stream<Item = VerificationRequestState>
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.
sourcepub fn state(&self) -> VerificationRequestState
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
impl Clone for VerificationRequest
source§fn clone(&self) -> VerificationRequest
fn clone(&self) -> VerificationRequest
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for VerificationRequest
impl RefUnwindSafe for VerificationRequest
impl Send for VerificationRequest
impl Sync for VerificationRequest
impl Unpin for VerificationRequest
impl UnwindSafe for VerificationRequest
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> CompatExt for T
impl<T> CompatExt for T
source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
source§fn consume_handle(handle: Handle) -> Arc<T>
fn consume_handle(handle: Handle) -> Arc<T>
Arc<>
source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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