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}