Struct jwt_compact::alg::Rsa
source · pub struct Rsa { /* private fields */ }Available on crate feature
rsa only.Expand description
Integrity algorithm using RSA digital signatures.
Depending on the variation, the algorithm employs PKCS#1 v1.5 or PSS padding and
one of the hash functions from the SHA-2 family: SHA-256, SHA-384, or SHA-512.
See RFC 7518 for more details. Depending on the chosen parameters,
the name of the algorithm is one of RS256, RS384, RS512, PS256, PS384, PS512:
R/Pdenote the padding scheme: PKCS#1 v1.5 forR, PSS forP256/384/512denote the hash function
The length of RSA keys is not unequivocally specified by the algorithm; nevertheless,
it MUST be at least 2048 bits as per RFC 7518. To minimize risks of misconfiguration,
use StrongAlg wrapper around Rsa:
const ALG: StrongAlg<Rsa> = StrongAlg(Rsa::rs256());
// `ALG` will not support RSA keys with unsecure lengths by design!Implementations§
Trait Implementations§
source§impl Algorithm for Rsa
impl Algorithm for Rsa
§type SigningKey = RsaPrivateKey
type SigningKey = RsaPrivateKey
Key used when issuing new tokens.
§type VerifyingKey = RsaPublicKey
type VerifyingKey = RsaPublicKey
Key used when verifying tokens. May coincide with
Self::SigningKey for symmetric
algorithms (e.g., HS*).§type Signature = RsaSignature
type Signature = RsaSignature
Signature produced by the algorithm.
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.