AuthenticationRequest

Struct AuthenticationRequest 

Source
pub struct AuthenticationRequest {
    pub parameter: AuthenticationParameter,
    pub challenge: [u8; 32],
    pub application: [u8; 32],
    pub key_handle: Vec<u8>,
}
Expand description

This message is used to initiate a U2F token authentication. The FIDO Client first contacts the relying party to obtain a challenge, and then constructs the authentication request message.

Fields§

§parameter: AuthenticationParameter

During registration, the FIDO Client MAY send authentication request messages to the U2F token to figure out whether the U2F token has already been registered. In this case, the FIDO client will use the AuthenticationParameter::CheckOnly value for the control byte. In all other cases (i.e., during authentication), the FIDO Client MUST use the AuthenticationParameter::EnforceUserPresence or AuthenticationParameter::DontEnforceUserPresence

§challenge: [u8; 32]

The challenge parameter is the SHA-256 hash of the Client Data, a stringified JSON data structure that the FIDO Client prepares. Among other things, the Client Data contains the challenge from the relying party (hence the name of the parameter).

§application: [u8; 32]

The application parameter is the SHA-256 hash of the UTF-8 encoding of the application identity of the application requesting the authentication as provided by the relying party.

§key_handle: Vec<u8>

This is provided by the relying party, and was obtained by the relying party during registration.

Implementations§

Source§

impl AuthenticationRequest

Source

pub fn try_from( data: &[u8], parameter: impl Into<AuthenticationParameter>, ) -> Result<Self, TryFromSliceError>

Try parsing a data payload into an authentication request with the given parameter taken from the u2f message frame.

Trait Implementations§

Source§

impl Debug for AuthenticationRequest

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.

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