Skip to main content

json_web_key/
jwk.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4pub use crate::ec::EcWebKey;
5pub use crate::rsa::RsaWebKey;
6
7#[derive(Debug, Deserialize, Serialize, PartialEq, Eq, Hash)]
8#[serde(tag = "alg")]
9pub enum JsonWebKey {
10    ES256(EcWebKey),
11    ES384(EcWebKey),
12    ES512(EcWebKey),
13    RS256(RsaWebKey),
14    RS384(RsaWebKey),
15    RS512(RsaWebKey),
16    PS256(RsaWebKey),
17    PS384(RsaWebKey),
18    PS512(RsaWebKey),
19}
20
21#[derive(Debug, Deserialize, Serialize, PartialEq)]
22pub struct JsonWebKeySet {
23    pub keys: HashSet<JsonWebKey>,
24}