Trait JsonWebKey

Source
pub trait JsonWebKey<JS, JT, JU>:
    Clone
    + Debug
    + DeserializeOwned
    + Serialize
    + 'static{
    // Required methods
    fn key_id(&self) -> Option<&JsonWebKeyId>;
    fn key_type(&self) -> &JT;
    fn key_use(&self) -> Option<&JU>;
    fn new_symmetric(key: Vec<u8>) -> Self;
    fn verify_signature(
        &self,
        signature_alg: &JS,
        message: &[u8],
        signature: &[u8],
    ) -> Result<(), SignatureVerificationError>;
}
Expand description

JSON Web Key.

Required Methods§

Source

fn key_id(&self) -> Option<&JsonWebKeyId>

Returns the key ID, or None if no key ID is specified.

Source

fn key_type(&self) -> &JT

Returns the key type (e.g., RSA).

Source

fn key_use(&self) -> Option<&JU>

Returns the allowed key usage (e.g., signing or encryption), or None if no usage is specified.

Source

fn new_symmetric(key: Vec<u8>) -> Self

Initializes a new symmetric key or shared signing secret from the specified raw bytes.

Source

fn verify_signature( &self, signature_alg: &JS, message: &[u8], signature: &[u8], ) -> Result<(), SignatureVerificationError>

Verifies the given signature using the given signature algorithm (signature_alg) over the given message.

Returns Ok if the signature is valid, or an Err otherwise.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§