Struct jwt_compact::alg::Es256k
source · pub struct Es256k<D = Sha256> { /* private fields */ }
Expand description
Algorithm implementing elliptic curve digital signatures (ECDSA) on the secp256k1 curve.
The algorithm does not fix the choice of the message digest algorithm; instead, it is provided as a type parameter. SHA-256 is the default parameter value, but it can be set to any cryptographically secure hash function with 32-byte output (e.g., SHA3-256).
Implementations§
Trait Implementations§
source§impl<D> Algorithm for Es256k<D>
impl<D> Algorithm for Es256k<D>
§type SigningKey = SecretKey
type SigningKey = SecretKey
Key used when issuing new tokens.
§type VerifyingKey = PublicKey
type VerifyingKey = PublicKey
Key used when verifying tokens. May coincide with
Self::SigningKey
for symmetric
algorithms (e.g., HS*
).source§fn name(&self) -> Cow<'static, str>
fn name(&self) -> Cow<'static, str>
Returns the name of this algorithm, as mentioned in the
alg
field of the JWT header.source§fn sign(
&self,
signing_key: &Self::SigningKey,
message: &[u8],
) -> Self::Signature
fn sign( &self, signing_key: &Self::SigningKey, message: &[u8], ) -> Self::Signature
Signs a
message
with the signing_key
.source§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
.source§impl SigningKey<Es256k> for SecretKey
impl SigningKey<Es256k> for SecretKey
This implementation initializes a libsecp256k1
context once on the first call to
to_verifying_key
if it was not initialized previously.
source§fn from_slice(raw: &[u8]) -> Result<Self>
fn from_slice(raw: &[u8]) -> Result<Self>
Creates a key from
raw
bytes. Returns an error if the bytes do not represent
a valid key.source§fn to_verifying_key(&self) -> PublicKey
fn to_verifying_key(&self) -> PublicKey
Converts a signing key to a verification key.
source§fn as_bytes(&self) -> SecretBytes<'_>
fn as_bytes(&self) -> SecretBytes<'_>
Returns the key as raw bytes. Read more
source§impl VerifyingKey<Es256k> for PublicKey
impl VerifyingKey<Es256k> for PublicKey
Auto Trait Implementations§
impl<D> Freeze for Es256k<D>
impl<D> RefUnwindSafe for Es256k<D>where
D: RefUnwindSafe,
impl<D> Send for Es256k<D>where
D: Send,
impl<D> Sync for Es256k<D>where
D: Sync,
impl<D> Unpin for Es256k<D>where
D: Unpin,
impl<D> UnwindSafe for Es256k<D>where
D: UnwindSafe,
Blanket Implementations§
source§impl<A> AlgorithmExt for Awhere
A: Algorithm,
impl<A> AlgorithmExt for Awhere
A: Algorithm,
source§fn token<T>(
&self,
header: &Header<impl Serialize>,
claims: &Claims<T>,
signing_key: &<A as Algorithm>::SigningKey,
) -> Result<String, CreationError>where
T: Serialize,
fn token<T>(
&self,
header: &Header<impl Serialize>,
claims: &Claims<T>,
signing_key: &<A as Algorithm>::SigningKey,
) -> Result<String, CreationError>where
T: Serialize,
Creates a new token and serializes it to string.
source§fn compact_token<T>(
&self,
header: &Header<impl Serialize>,
claims: &Claims<T>,
signing_key: &<A as Algorithm>::SigningKey,
) -> Result<String, CreationError>where
T: Serialize,
fn compact_token<T>(
&self,
header: &Header<impl Serialize>,
claims: &Claims<T>,
signing_key: &<A as Algorithm>::SigningKey,
) -> Result<String, CreationError>where
T: Serialize,
Available on crate feature
ciborium
only.Creates a new token with CBOR-encoded claims and serializes it to string.
source§fn validator<'a, T>(
&'a self,
verifying_key: &'a <A as Algorithm>::VerifyingKey,
) -> Validator<'a, A, T>
fn validator<'a, T>( &'a self, verifying_key: &'a <A as Algorithm>::VerifyingKey, ) -> Validator<'a, A, T>
Creates a JWT validator for the specified verifying key and the claims type.
The validator can then be used to validate integrity of one or more tokens.
source§fn validate_integrity<T>(
&self,
token: &UntrustedToken<'_>,
verifying_key: &<A as Algorithm>::VerifyingKey,
) -> Result<Token<T>, ValidationError>where
T: DeserializeOwned,
fn validate_integrity<T>(
&self,
token: &UntrustedToken<'_>,
verifying_key: &<A as Algorithm>::VerifyingKey,
) -> Result<Token<T>, ValidationError>where
T: DeserializeOwned,
👎Deprecated: Use
.validator().validate()
for added flexibilityValidates the token integrity against the provided
verifying_key
.source§fn validate_for_signed_token<T>(
&self,
token: &UntrustedToken<'_>,
verifying_key: &<A as Algorithm>::VerifyingKey,
) -> Result<SignedToken<A, T>, ValidationError>where
T: DeserializeOwned,
fn validate_for_signed_token<T>(
&self,
token: &UntrustedToken<'_>,
verifying_key: &<A as Algorithm>::VerifyingKey,
) -> Result<SignedToken<A, T>, ValidationError>where
T: DeserializeOwned,
👎Deprecated: Use
.validator().validate_for_signed_token()
for added flexibilityValidates the token integrity against the provided
verifying_key
. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more