Struct jwt_compact::Renamed [−][src]
pub struct Renamed<A> { /* fields omitted */ }
Expand description
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::new(b"super_secret_key_donut_steel"); let token_string = alg.token(Header::default(), &Claims::empty(), &key)?; let token = UntrustedToken::new(&token_string)?; 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());
Implementations
Trait Implementations
impl<A: Algorithm> Algorithm for Renamed<A>
[src]
impl<A: Algorithm> Algorithm for Renamed<A>
[src]type SigningKey = A::SigningKey
type SigningKey = A::SigningKey
Key used when issuing new tokens.
type VerifyingKey = A::VerifyingKey
type VerifyingKey = A::VerifyingKey
Key used when verifying tokens. May coincide with SigningKey
for symmetric
algorithms (e.g., HS*
). Read more
fn name(&self) -> Cow<'static, str>
[src]
fn name(&self) -> Cow<'static, str>
[src]Returns the name of this algorithm, as mentioned in the alg
field of the JWT header.
fn sign(
&self,
signing_key: &Self::SigningKey,
message: &[u8]
) -> Self::Signature
[src]
fn sign(
&self,
signing_key: &Self::SigningKey,
message: &[u8]
) -> Self::Signature
[src]Signs a message
with the signing_key
.
fn verify_signature(
&self,
signature: &Self::Signature,
verifying_key: &Self::VerifyingKey,
message: &[u8]
) -> bool
[src]
fn verify_signature(
&self,
signature: &Self::Signature,
verifying_key: &Self::VerifyingKey,
message: &[u8]
) -> bool
[src]Verifies the message
against the signature
and verifying_key
.
impl<A: Copy> Copy for Renamed<A>
[src]
Auto Trait Implementations
impl<A> RefUnwindSafe for Renamed<A> where
A: RefUnwindSafe,
A: RefUnwindSafe,
impl<A> Send for Renamed<A> where
A: Send,
A: Send,
impl<A> Sync for Renamed<A> where
A: Sync,
A: Sync,
impl<A> Unpin for Renamed<A> where
A: Unpin,
A: Unpin,
impl<A> UnwindSafe for Renamed<A> where
A: UnwindSafe,
A: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,