Struct matrix_sdk_crypto::Device
source · pub struct Device { /* private fields */ }
Expand description
A device represents a E2EE capable client of an user.
Implementations§
source§impl Device
impl Device
sourcepub async fn start_verification(&self) -> StoreResult<(Sas, ToDeviceRequest)>
pub async fn start_verification(&self) -> StoreResult<(Sas, ToDeviceRequest)>
Start a interactive verification with this Device
Returns a Sas
object and a to-device request that needs to be sent
out.
This method has been deprecated in the spec and the
request_verification()
method should be used instead.
sourcepub fn is_our_own_device(&self) -> bool
pub fn is_our_own_device(&self) -> bool
Is this our own device?
sourcepub fn is_owner_of_session(
&self,
session: &InboundGroupSession
) -> Result<bool, MegolmError>
pub fn is_owner_of_session( &self, session: &InboundGroupSession ) -> Result<bool, MegolmError>
Does the given InboundGroupSession
belong to this device?
An InboundGroupSession
is exchanged between devices as an Olm
encrypted m.room_key
event. This method determines if this Device
can be confirmed as the creator and owner of the m.room_key
.
sourcepub fn is_cross_signed_by_owner(&self) -> bool
pub fn is_cross_signed_by_owner(&self) -> bool
Is this device cross signed by its owner?
sourcepub fn is_device_owner_verified(&self) -> bool
pub fn is_device_owner_verified(&self) -> bool
Is the device owner verified by us?
sourcepub async fn request_verification(
&self
) -> (VerificationRequest, OutgoingVerificationRequest)
pub async fn request_verification( &self ) -> (VerificationRequest, OutgoingVerificationRequest)
Request an interactive verification with this Device
.
Returns a VerificationRequest
object and a to-device request that
needs to be sent out.
sourcepub async fn request_verification_with_methods(
&self,
methods: Vec<VerificationMethod>
) -> (VerificationRequest, OutgoingVerificationRequest)
pub async fn request_verification_with_methods( &self, methods: Vec<VerificationMethod> ) -> (VerificationRequest, OutgoingVerificationRequest)
Request an interactive verification with this Device
.
Returns a VerificationRequest
object and a to-device request that
needs to be sent out.
Arguments
methods
- The verification methods that we want to support.
sourcepub fn is_verified(&self) -> bool
pub fn is_verified(&self) -> bool
Is this device considered to be verified.
This method returns true if either is_locally_trusted()
returns true
or if is_cross_signing_trusted()
returns true.
sourcepub fn is_cross_signing_trusted(&self) -> bool
pub fn is_cross_signing_trusted(&self) -> bool
Is this device considered to be verified using cross signing.
sourcepub async fn verify(&self) -> Result<SignatureUploadRequest, SignatureError>
pub async fn verify(&self) -> Result<SignatureUploadRequest, SignatureError>
Manually verify this device.
This method will attempt to sign the device using our private cross signing key.
This method will always fail if the device belongs to someone else, we can only sign our own devices.
It can also fail if we don’t have the private part of our self-signing key.
Returns a request that needs to be sent out for the device to be marked as verified.
sourcepub async fn set_local_trust(&self, trust_state: LocalTrust) -> StoreResult<()>
pub async fn set_local_trust(&self, trust_state: LocalTrust) -> StoreResult<()>
Set the local trust state of the device to the given state.
This won’t affect any cross signing trust state, this only sets a flag marking to have the given trust state.
Arguments
trust_state
- The new trust state that should be set for the device.
sourcepub async fn encrypt_room_key_for_forwarding(
&self,
session: InboundGroupSession,
message_index: Option<u32>
) -> Result<(Session, Raw<ToDeviceEncryptedEventContent>), OlmError>
pub async fn encrypt_room_key_for_forwarding( &self, session: InboundGroupSession, message_index: Option<u32> ) -> Result<(Session, Raw<ToDeviceEncryptedEventContent>), OlmError>
Encrypt the given inbound group session as a forwarded room key for this device.
Methods from Deref<Target = ReadOnlyDevice>§
sourcepub fn display_name(&self) -> Option<&str>
pub fn display_name(&self) -> Option<&str>
Get the human readable name of the device.
sourcepub fn get_key(&self, algorithm: DeviceKeyAlgorithm) -> Option<&DeviceKey>
pub fn get_key(&self, algorithm: DeviceKeyAlgorithm) -> Option<&DeviceKey>
Get the key of the given key algorithm belonging to this device.
sourcepub fn curve25519_key(&self) -> Option<Curve25519PublicKey>
pub fn curve25519_key(&self) -> Option<Curve25519PublicKey>
Get the Curve25519 key of the given device.
sourcepub fn ed25519_key(&self) -> Option<Ed25519PublicKey>
pub fn ed25519_key(&self) -> Option<Ed25519PublicKey>
Get the Ed25519 key of the given device.
sourcepub fn keys(&self) -> &BTreeMap<OwnedDeviceKeyId, DeviceKey>
pub fn keys(&self) -> &BTreeMap<OwnedDeviceKeyId, DeviceKey>
Get a map containing all the device keys.
sourcepub fn signatures(&self) -> &Signatures
pub fn signatures(&self) -> &Signatures
Get a map containing all the device signatures.
sourcepub fn local_trust_state(&self) -> LocalTrust
pub fn local_trust_state(&self) -> LocalTrust
Get the trust state of the device.
sourcepub fn is_locally_trusted(&self) -> bool
pub fn is_locally_trusted(&self) -> bool
Is the device locally marked as trusted.
sourcepub fn is_blacklisted(&self) -> bool
pub fn is_blacklisted(&self) -> bool
Is the device locally marked as blacklisted.
Blacklisted devices won’t receive any group sessions.
sourcepub fn was_withheld_code_sent(&self) -> bool
pub fn was_withheld_code_sent(&self) -> bool
Returns true if the m.no_olm
withheld code was already sent to this
device.
sourcepub fn algorithms(&self) -> &[EventEncryptionAlgorithm]
pub fn algorithms(&self) -> &[EventEncryptionAlgorithm]
Get the list of algorithms this device supports.
sourcepub fn supports_olm(&self) -> bool
pub fn supports_olm(&self) -> bool
Does this device support any of our known Olm encryption algorithms.
sourcepub fn olm_session_config(&self) -> SessionConfig
pub fn olm_session_config(&self) -> SessionConfig
Get the optimal SessionConfig
for this device.
sourcepub fn is_deleted(&self) -> bool
pub fn is_deleted(&self) -> bool
Is the device deleted.
sourcepub fn first_time_seen_ts(&self) -> MilliSecondsSinceUnixEpoch
pub fn first_time_seen_ts(&self) -> MilliSecondsSinceUnixEpoch
Get the local timestamp of when this device was first persisted, in milliseconds since epoch (client local time).