vodozemac::sas

Struct Sas

Source
pub struct Sas { /* private fields */ }
Expand description

A struct representing a short auth string verification object.

This object can be used to establish a shared secret to perform the short auth string based key verification.

Implementations§

Source§

impl Sas

Source

pub fn new() -> Self

Create a new random verification object

This creates an ephemeral curve25519 keypair that can be used to establish a shared secret.

Source

pub const fn public_key(&self) -> Curve25519PublicKey

Get the public key that can be used to establish a shared secret.

Source

pub fn diffie_hellman( self, their_public_key: Curve25519PublicKey, ) -> Result<EstablishedSas, KeyError>

Establishes a SAS secret by performing a DH handshake with another public key.

Returns an EstablishedSas object which can be used to generate SasBytes if the given public key was valid, otherwise None.

Source

pub fn diffie_hellman_with_raw( self, other_public_key: &str, ) -> Result<EstablishedSas, KeyError>

Establishes a SAS secret by performing a DH handshake with another public key in “raw”, base64-encoded form.

Returns an EstablishedSas object which can be used to generate SasBytes if the received public key is valid, otherwise None.

Trait Implementations§

Source§

impl Default for Sas

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Sas

§

impl RefUnwindSafe for Sas

§

impl Send for Sas

§

impl Sync for Sas

§

impl Unpin for Sas

§

impl UnwindSafe for Sas

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.

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

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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