[][src]Struct jwt_compact::Renamed

pub struct Renamed<A> { /* fields omitted */ }

Algorithm that uses a custom name when creating and validating tokens.

Examples

use jwt_compact::{alg::{Hs256, Hs256Key}, prelude::*, Empty, Renamed};

let alg = Renamed::new(Hs256, "HS2");
let key = Hs256Key::from(b"super_secret_key_donut_steel" as &[_]);
let token_string = alg.token(Header::default(), &Claims::empty(), &key).unwrap();

let token = UntrustedToken::try_from(token_string.as_str()).unwrap();
assert_eq!(token.algorithm(), "HS2");
// Note that the created token cannot be verified against the original algorithm
// since the algorithm name recorded in the token header doesn't match.
assert!(Hs256.validate_integrity::<Empty>(&token, &key).is_err());

// ...but the modified alg is working as expected.
assert!(alg.validate_integrity::<Empty>(&token, &key).is_ok());

Methods

impl<A: Algorithm> Renamed<A>[src]

pub fn new(algorithm: A, new_name: &'static str) -> Self[src]

Creates a renamed algorithm.

Trait Implementations

impl<A: Algorithm> Algorithm for Renamed<A>[src]

type SigningKey = A::SigningKey

Key used when issuing new tokens.

type VerifyingKey = A::VerifyingKey

Key used when verifying tokens. May coincide with SigningKey for symmetric algorithms (e.g., HS*). Read more

type Signature = A::Signature

Signature produced by the algorithm.

impl<A: Copy> Copy for Renamed<A>[src]

impl<A: Clone> Clone for Renamed<A>[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<A: Debug> Debug for Renamed<A>[src]

Auto Trait Implementations

impl<A> Send for Renamed<A> where
    A: Send

impl<A> Unpin for Renamed<A> where
    A: Unpin

impl<A> Sync for Renamed<A> where
    A: Sync

impl<A> UnwindSafe for Renamed<A> where
    A: UnwindSafe

impl<A> RefUnwindSafe for Renamed<A> where
    A: RefUnwindSafe

Blanket Implementations

impl<A> AlgorithmExt for A where
    A: Algorithm
[src]

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

type Owned = T

The resulting type after obtaining ownership.

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[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<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self