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}