identity_credential/validator/sd_jwt/
kb_validation_options.rs1use identity_core::common::Timestamp;
5use identity_document::verifiable::JwsVerificationOptions;
6use serde::Deserialize;
7use serde::Serialize;
8
9#[derive(Debug, Default, Clone, Serialize, Deserialize)]
11#[non_exhaustive]
12#[serde(rename_all = "camelCase")]
13pub struct KeyBindingJWTValidationOptions {
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub nonce: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub aud: Option<String>,
20 pub jws_options: JwsVerificationOptions,
22 #[serde(skip_serializing_if = "Option::is_none")]
25 pub earliest_issuance_date: Option<Timestamp>,
26 #[serde(skip_serializing_if = "Option::is_none")]
30 pub latest_issuance_date: Option<Timestamp>,
31}
32
33impl KeyBindingJWTValidationOptions {
34 pub fn new() -> Self {
36 Self::default()
37 }
38
39 pub fn nonce(mut self, nonce: impl Into<String>) -> Self {
41 self.nonce = Some(nonce.into());
42 self
43 }
44
45 pub fn jws_verifier_options(mut self, options: JwsVerificationOptions) -> Self {
47 self.jws_options = options;
48 self
49 }
50
51 pub fn aud(mut self, aud: impl Into<String>) -> Self {
53 self.aud = Some(aud.into());
54 self
55 }
56
57 pub fn earliest_issuance_date(mut self, earliest_issuance_date: Timestamp) -> Self {
60 self.earliest_issuance_date = Some(earliest_issuance_date);
61 self
62 }
63
64 pub fn latest_issuance_date(mut self, latest_issuance_date: Timestamp) -> Self {
68 self.latest_issuance_date = Some(latest_issuance_date);
69 self
70 }
71}