Struct Base

Source
pub struct Base<'b> {
    pub secret: Secret<'b>,
    pub algorithm: Algorithm,
    pub digits: Digits,
}
Expand description

Represents OTP base configuration.

Fields§

§secret: Secret<'b>

The secret to use as the key.

§algorithm: Algorithm

The algorithm to use.

§digits: Digits

The number of digits to return.

Implementations§

Source§

impl<'b> Base<'b>

Source

pub fn builder() -> BaseBuilder<'b>

Create an instance of Base using the builder syntax

Source§

impl Base<'_>

Source

pub fn generate(&self, input: u64) -> u32

Generates codes based on the given input.

§Panics

Even though unwrap and indexing are used, the code will never panic, provided the HMAC implementation is correct.

Source

pub fn generate_string(&self, input: u64) -> String

Calls generate and returns the string representation of the resulting code.

The resulting string is padded with zeros if needed (see string).

Source

pub fn verify(&self, input: u64, code: u32) -> bool

Verifies that the given code matches the given input.

Source

pub fn verify_string<S: AsRef<str>>(&self, input: u64, code: S) -> bool

Verifies that the given string code matches the given input in constant time.

This method exists to simplify verification.

Source§

impl Base<'_>

Source

pub fn query_for(&self, url: &mut Url)

Available on crate feature auth only.

Applies the base configuration to the given URL.

Source

pub fn extract_from(query: &mut Query<'_>) -> Result<Self, Error>

Available on crate feature auth only.

Extracts the base configuration from the given query.

§Errors

Returns Error if the base configuration can not be extracted.

Source§

impl Base<'_>

Source

pub fn into_owned(self) -> Owned

Converts Self into Owned.

Trait Implementations§

Source§

impl<'b> Clone for Base<'b>

Source§

fn clone(&self) -> Base<'b>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'b> Debug for Base<'b>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, 'b> Deserialize<'de> for Base<'b>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'b> Hash for Base<'b>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'b> PartialEq for Base<'b>

Source§

fn eq(&self, other: &Base<'b>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'b> Serialize for Base<'b>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'b> Eq for Base<'b>

Source§

impl<'b> StructuralPartialEq for Base<'b>

Auto Trait Implementations§

§

impl<'b> Freeze for Base<'b>

§

impl<'b> RefUnwindSafe for Base<'b>

§

impl<'b> Send for Base<'b>

§

impl<'b> Sync for Base<'b>

§

impl<'b> Unpin for Base<'b>

§

impl<'b> UnwindSafe for Base<'b>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,