identity_credential/validator/sd_jwt/
kb_validation_options.rs1use identity_core::common::Timestamp;
5use serde::Deserialize;
6use serde::Serialize;
7
8#[derive(Debug, Default, Clone, Serialize, Deserialize)]
10#[non_exhaustive]
11#[serde(rename_all = "camelCase")]
12pub struct KeyBindingJwtValidationOptions {
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub nonce: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub aud: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
22 pub earliest_issuance_date: Option<Timestamp>,
23 #[serde(skip_serializing_if = "Option::is_none")]
27 pub latest_issuance_date: Option<Timestamp>,
28}
29
30impl KeyBindingJwtValidationOptions {
31 pub fn new() -> Self {
33 Self::default()
34 }
35
36 pub fn nonce(mut self, nonce: impl Into<String>) -> Self {
38 self.nonce = Some(nonce.into());
39 self
40 }
41
42 pub fn aud(mut self, aud: impl Into<String>) -> Self {
44 self.aud = Some(aud.into());
45 self
46 }
47
48 pub fn earliest_issuance_date(mut self, earliest_issuance_date: Timestamp) -> Self {
51 self.earliest_issuance_date = Some(earliest_issuance_date);
52 self
53 }
54
55 pub fn latest_issuance_date(mut self, latest_issuance_date: Timestamp) -> Self {
59 self.latest_issuance_date = Some(latest_issuance_date);
60 self
61 }
62}