Struct jwt_compact::alg::StrongAlg [−][src]
pub struct StrongAlg<T>(pub T);
Expand description
Wrapper around a JWT algorithm signalling that it supports only StrongKey
s.
The wrapper will implement Algorithm
if the wrapped value is an Algorithm
with both
signing and verifying keys convertible to StrongKey
s.
Examples
let weak_key = Hs256Key::new(b"too short!");
assert!(StrongKey::try_from(weak_key).is_err());
// There is no way to create a `StrongKey` from `weak_key`!
let strong_key: StrongKey<_> = Hs256Key::generate(&mut thread_rng());
let claims = // ...
let token = StrongAlg(Hs256)
.token(Header::default(), &claims, &strong_key)?;
Tuple Fields
0: T
Trait Implementations
impl<T: Algorithm> Algorithm for StrongAlg<T> where
StrongKey<T::SigningKey>: TryFrom<T::SigningKey>,
StrongKey<T::VerifyingKey>: TryFrom<T::VerifyingKey>,
impl<T: Algorithm> Algorithm for StrongAlg<T> where
StrongKey<T::SigningKey>: TryFrom<T::SigningKey>,
StrongKey<T::VerifyingKey>: TryFrom<T::VerifyingKey>,
type SigningKey = StrongKey<T::SigningKey>
type SigningKey = StrongKey<T::SigningKey>
Key used when issuing new tokens.
type VerifyingKey = StrongKey<T::VerifyingKey>
type VerifyingKey = StrongKey<T::VerifyingKey>
Key used when verifying tokens. May coincide with Self::SigningKey
for symmetric
algorithms (e.g., HS*
). Read more
Returns the name of this algorithm, as mentioned in the alg
field of the JWT header.
Signs a message
with the signing_key
.
fn verify_signature(
&self,
signature: &Self::Signature,
verifying_key: &Self::VerifyingKey,
message: &[u8]
) -> bool
fn verify_signature(
&self,
signature: &Self::Signature,
verifying_key: &Self::VerifyingKey,
message: &[u8]
) -> bool
Verifies the message
against the signature
and verifying_key
.
Auto Trait Implementations
impl<T> RefUnwindSafe for StrongAlg<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for StrongAlg<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more