Skip to main content

SasMatch

Struct SasMatch 

Source
#[non_exhaustive]
pub struct SasMatch { /* private fields */ }
Expand description

Zero-sized proof that the user visually compared both SAS outputs and confirmed they match. The only constructor is SasMatch::user_confirmed_visual_match; callers cannot forge one without having seen both SAS arrays.

Implementations§

Source§

impl SasMatch

Source

pub fn user_confirmed_visual_match(_ours: &[u8; 10], _theirs: &[u8; 10]) -> Self

Produce a SasMatch after the user has visually compared both SAS outputs and confirmed they match. Callers pass both byte arrays so the proof is at least textually bound to a specific pair; the actual equality is the USER’s judgement (that’s the protocol’s whole point).

In tests, this is constructed freely. In production UIs, this MUST be called only after the user has pressed “match” on the confirmation screen (fn-129 plan §2.1.4 / §2.2.4).

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.

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