[][src]Struct textnonce::TextNonce

pub struct TextNonce(pub String);

A nonce is a cryptographic concept of an arbitrary number that is never used more than once.

TextNonce is a nonce because the first 16 characters represents the current time, which will never have been generated before, nor will it be generated again, across the period of time in which a Timespec (or chrono::DateTime) is valid.

TextNonce additionally includes bytes of randomness, making it difficult to predict. This makes it suitable to be used for session IDs.

It is also text-based, using only characters in the base64 character set.

Methods

impl TextNonce[src]

pub fn new() -> TextNonce[src]

Generate a new TextNonce with 16 characters of time and 16 characters of randomness

pub fn sized(length: usize) -> Result<TextNonce, String>[src]

Generate a new TextNonce. length must be at least 16, and divisible by 4. The first 16 characters come from the time component, and all characters after that will be random.

pub fn sized_urlsafe(length: usize) -> Result<TextNonce, String>[src]

Generate a new TextNonce using the URL_SAFE variant of base64 (using '_' and '-') length must be at least 16, and divisible by 4. The first 16 characters come from the time component, and all characters after that will be random.

pub fn sized_configured(
    length: usize,
    config: Config
) -> Result<TextNonce, String>
[src]

Generate a new TextNonce specifying the Base64 configuration to use. length must be at least 16, and divisible by 4. The first 16 characters come from the time component, and all characters after that will be random.

pub fn into_string(self) -> String[src]

Convert into a string

Trait Implementations

impl Clone for TextNonce[src]

impl Debug for TextNonce[src]

impl Default for TextNonce[src]

impl Deref for TextNonce[src]

type Target = str

The resulting type after dereferencing.

impl<'de> Deserialize<'de> for TextNonce[src]

impl Display for TextNonce[src]

impl PartialEq<TextNonce> for TextNonce[src]

impl Serialize for TextNonce[src]

impl StructuralPartialEq for TextNonce[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,