Skip to main content

json_web_key/
cert.rs

1use serde::{Deserialize, Serialize};
2
3use crate::encoded_bytes_field::EncodedOptionalBytesField;
4
5mod chain_field;
6mod encoded_item;
7mod encoded_list;
8
9use chain_field::{BoxedChain, ChainField};
10
11#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
12pub struct Certificate {
13    #[serde(
14        default,
15        rename = "x5c",
16        skip_serializing_if = "Option::is_none",
17        with = "ChainField"
18    )]
19    pub chain: Option<BoxedChain>,
20    #[serde(
21        default,
22        rename = "x5t#S256",
23        skip_serializing_if = "Option::is_none",
24        with = "EncodedOptionalBytesField"
25    )]
26    pub sha256_thumbprint: Option<Box<[u8]>>,
27    #[serde(
28        default,
29        rename = "x5t",
30        skip_serializing_if = "Option::is_none",
31        with = "EncodedOptionalBytesField"
32    )]
33    pub thumbprint: Option<Box<[u8]>>,
34    #[serde(default, rename = "x5u", skip_serializing_if = "Option::is_none")]
35    pub url: Option<Box<str>>,
36}