json-web-key 0.1.0

A ser(de) for JWKS, and the basic structs for representing them.
Documentation
use serde::{Deserialize, Serialize};
use std::collections::HashSet;

pub use crate::ec::EcWebKey;
pub use crate::rsa::RsaWebKey;

#[derive(Debug, Deserialize, Serialize, PartialEq, Eq, Hash)]
#[serde(tag = "alg")]
pub enum JsonWebKey {
    ES256(EcWebKey),
    ES384(EcWebKey),
    ES512(EcWebKey),
    RS256(RsaWebKey),
    RS384(RsaWebKey),
    RS512(RsaWebKey),
    PS256(RsaWebKey),
    PS384(RsaWebKey),
    PS512(RsaWebKey),
}

#[derive(Debug, Deserialize, Serialize, PartialEq)]
pub struct JsonWebKeySet {
    pub keys: HashSet<JsonWebKey>,
}