Skip to content

Commit 779a79a

Browse files
feat: Add cawg_trust.verify_trust_list setting (#1356)
1 parent 10c48a9 commit 779a79a

File tree

2 files changed

+31
-15
lines changed

2 files changed

+31
-15
lines changed

sdk/src/identity/identity_assertion/assertion.rs

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -303,25 +303,38 @@ impl IdentityAssertion {
303303
// Load the trust handler settings. Don't worry about status as these
304304
// are checked during setting generation.
305305

306-
if let Ok(Some(ta)) = get_settings_value::<Option<String>>("cawg_trust.trust_anchors") {
307-
let _ = ctp.add_trust_anchors(ta.as_bytes());
308-
}
306+
let cose_verifier =
307+
if let Ok(true) = get_settings_value::<bool>("cawg_trust.verify_trust_list") {
308+
if let Ok(Some(ta)) =
309+
get_settings_value::<Option<String>>("cawg_trust.trust_anchors")
310+
{
311+
let _ = ctp.add_trust_anchors(ta.as_bytes());
312+
}
309313

310-
if let Ok(Some(pa)) = get_settings_value::<Option<String>>("cawg_trust.user_anchors") {
311-
let _ = ctp.add_user_trust_anchors(pa.as_bytes());
312-
}
314+
if let Ok(Some(pa)) =
315+
get_settings_value::<Option<String>>("cawg_trust.user_anchors")
316+
{
317+
let _ = ctp.add_user_trust_anchors(pa.as_bytes());
318+
}
313319

314-
if let Ok(Some(tc)) = get_settings_value::<Option<String>>("cawg_trust.trust_config") {
315-
ctp.add_valid_ekus(tc.as_bytes());
316-
}
320+
if let Ok(Some(tc)) =
321+
get_settings_value::<Option<String>>("cawg_trust.trust_config")
322+
{
323+
ctp.add_valid_ekus(tc.as_bytes());
324+
}
317325

318-
if let Ok(Some(al)) = get_settings_value::<Option<String>>("cawg_trust.allowed_list") {
319-
let _ = ctp.add_end_entity_credentials(al.as_bytes());
320-
}
326+
if let Ok(Some(al)) =
327+
get_settings_value::<Option<String>>("cawg_trust.allowed_list")
328+
{
329+
let _ = ctp.add_end_entity_credentials(al.as_bytes());
330+
}
321331

322-
let verifier = X509SignatureVerifier {
323-
cose_verifier: Verifier::VerifyTrustPolicy(Cow::Owned(ctp)),
324-
};
332+
Verifier::VerifyTrustPolicy(Cow::Owned(ctp))
333+
} else {
334+
Verifier::IgnoreProfileAndTrustPolicy
335+
};
336+
337+
let verifier = X509SignatureVerifier { cose_verifier };
325338

326339
let result = verifier
327340
.check_signature(&self.signer_payload, &self.signature, status_tracker)

sdk/src/settings/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ pub(crate) trait SettingsValidate {
4444
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
4545
#[allow(unused)]
4646
pub(crate) struct Trust {
47+
verify_trust_list: bool,
4748
user_anchors: Option<String>,
4849
trust_anchors: Option<String>,
4950
trust_config: Option<String>,
@@ -106,6 +107,7 @@ impl Default for Trust {
106107
#[cfg(test)]
107108
{
108109
let mut trust = Self {
110+
verify_trust_list: true,
109111
user_anchors: None,
110112
trust_anchors: None,
111113
trust_config: None,
@@ -130,6 +132,7 @@ impl Default for Trust {
130132
#[cfg(not(test))]
131133
{
132134
Self {
135+
verify_trust_list: true,
133136
user_anchors: None,
134137
trust_anchors: None,
135138
trust_config: None,

0 commit comments

Comments
 (0)