#[non_exhaustive]pub enum JwsAlgorithm {
HS256,
HS384,
HS512,
ES256,
ES384,
RS256,
RS384,
RS512,
PS256,
PS384,
PS512,
EdDSA,
}Expand description
A JWS signing / verification algorithm (RFC 7518 Section 3.1)
The alg header value of a JWT, shared by everything in the framework
that signs or verifies one: bearer authentication on the server side,
and private_key_jwt client assertions on the client side. The mapping
onto the underlying JWT implementation stays private to each crate, so
no consumer has to name it.
The variant names are the registered alg values verbatim, so the
derived serde impls are the wire form (JwsAlgorithm::EdDSA <-> "EdDSA").
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
HS256
HMAC using SHA-256
HS384
HMAC using SHA-384
HS512
HMAC using SHA-512
ES256
ECDSA using P-256 and SHA-256
ES384
ECDSA using P-384 and SHA-384
RS256
RSASSA-PKCS1-v1_5 using SHA-256
RS384
RSASSA-PKCS1-v1_5 using SHA-384
RS512
RSASSA-PKCS1-v1_5 using SHA-512
PS256
RSASSA-PSS using SHA-256
PS384
RSASSA-PSS using SHA-384
PS512
RSASSA-PSS using SHA-512
EdDSA
Edwards-curve Digital Signature Algorithm (EdDSA)
Implementations§
Source§impl JwsAlgorithm
impl JwsAlgorithm
Sourcepub const fn as_str(&self) -> &'static str
pub const fn as_str(&self) -> &'static str
Returns the registered alg header value of this algorithm
Use it to match against the algorithm lists a server advertises,
such as token_endpoint_auth_signing_alg_values_supported.
Sourcepub const fn is_symmetric(&self) -> bool
pub const fn is_symmetric(&self) -> bool
Returns true for the HMAC algorithms, where signer and verifier
hold the same secret
Anything built on proving possession of a private key - a
private_key_jwt client assertion, a key published in a JWKS -
must refuse these: a shared secret proves nothing about who signed.