Skip to content

Commit 690ed5c

Browse files
chore: Move check_ocsp_response (the one that uses settings) to claim.rs (#799)
1 parent be23bdc commit 690ed5c

File tree

3 files changed

+42
-44
lines changed

3 files changed

+42
-44
lines changed

sdk/src/claim.rs

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ use std::{collections::HashMap, fmt};
1818
use async_generic::async_generic;
1919
use c2pa_crypto::{
2020
base64,
21-
cose::{parse_cose_sign1, CertificateTrustPolicy},
21+
cose::{parse_cose_sign1, CertificateTrustPolicy, OcspFetchPolicy},
22+
ocsp::OcspResponse,
2223
ValidationInfo,
2324
};
2425
use c2pa_status_tracker::{log_item, OneShotStatusTracker, StatusTracker};
@@ -38,10 +39,7 @@ use crate::{
3839
AssetType, BmffHash, BoxHash, DataBox, DataHash, Metadata,
3940
},
4041
asset_io::CAIRead,
41-
cose_validator::{
42-
check_ocsp_status, check_ocsp_status_async, get_signing_info, get_signing_info_async,
43-
verify_cose, verify_cose_async,
44-
},
42+
cose_validator::{get_signing_info, get_signing_info_async, verify_cose, verify_cose_async},
4543
error::{Error, Result},
4644
hashed_uri::HashedUri,
4745
jumbf::{
@@ -56,6 +54,7 @@ use crate::{
5654
},
5755
jumbf_io::get_assetio_handler,
5856
salt::{DefaultSalt, SaltGenerator, NO_SALT},
57+
settings::get_settings_value,
5958
utils::hash_utils::{hash_by_alg, vec_compare, verify_by_alg},
6059
validation_status, ClaimGeneratorInfo,
6160
};
@@ -1990,6 +1989,41 @@ impl Claim {
19901989
}
19911990
}
19921991

1992+
#[allow(dead_code)]
1993+
#[async_generic]
1994+
pub(crate) fn check_ocsp_status(
1995+
sign1: &coset::CoseSign1,
1996+
data: &[u8],
1997+
ctp: &CertificateTrustPolicy,
1998+
validation_log: &mut impl StatusTracker,
1999+
) -> Result<OcspResponse> {
2000+
// Moved here instead of c2pa-crypto because of the dependency on settings.
2001+
2002+
let fetch_policy = match get_settings_value::<bool>("verify.ocsp_fetch") {
2003+
Ok(true) => OcspFetchPolicy::FetchAllowed,
2004+
_ => OcspFetchPolicy::DoNotFetch,
2005+
};
2006+
2007+
if _sync {
2008+
Ok(c2pa_crypto::cose::check_ocsp_status(
2009+
sign1,
2010+
data,
2011+
fetch_policy,
2012+
ctp,
2013+
validation_log,
2014+
)?)
2015+
} else {
2016+
Ok(c2pa_crypto::cose::check_ocsp_status_async(
2017+
sign1,
2018+
data,
2019+
fetch_policy,
2020+
ctp,
2021+
validation_log,
2022+
)
2023+
.await?)
2024+
}
2025+
}
2026+
19932027
#[cfg(feature = "openssl")]
19942028
#[cfg(test)]
19952029
pub mod tests {

sdk/src/cose_validator.rs

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ use async_generic::async_generic;
1717
use c2pa_crypto::{
1818
cose::{
1919
cert_chain_from_sign1, parse_cose_sign1, signing_alg_from_sign1, validate_cose_tst_info,
20-
validate_cose_tst_info_async, CertificateTrustPolicy, OcspFetchPolicy, Verifier,
20+
validate_cose_tst_info_async, CertificateTrustPolicy, Verifier,
2121
},
22-
ocsp::OcspResponse,
2322
p1363::parse_ec_der_sig,
2423
raw_signature::{validator_for_signing_alg, RawSignatureValidator},
2524
SigningAlg, ValidationInfo,
@@ -33,41 +32,6 @@ use crate::{
3332
settings::get_settings_value,
3433
};
3534

36-
#[allow(dead_code)]
37-
#[async_generic]
38-
pub(crate) fn check_ocsp_status(
39-
sign1: &coset::CoseSign1,
40-
data: &[u8],
41-
ctp: &CertificateTrustPolicy,
42-
validation_log: &mut impl StatusTracker,
43-
) -> Result<OcspResponse> {
44-
let fetch_policy = match get_settings_value::<bool>("verify.ocsp_fetch") {
45-
Ok(true) => OcspFetchPolicy::FetchAllowed,
46-
_ => OcspFetchPolicy::DoNotFetch,
47-
};
48-
49-
if _sync {
50-
Ok(c2pa_crypto::cose::check_ocsp_status(
51-
sign1,
52-
data,
53-
fetch_policy,
54-
ctp,
55-
validation_log,
56-
)?)
57-
} else {
58-
Ok(c2pa_crypto::cose::check_ocsp_status_async(
59-
sign1,
60-
data,
61-
fetch_policy,
62-
ctp,
63-
validation_log,
64-
)
65-
.await?)
66-
}
67-
}
68-
69-
// ---- TEMPORARY MARKER: Above this line will not move to c2pa-crypto
70-
7135
fn get_sign_cert(sign1: &coset::CoseSign1) -> Result<Vec<u8>> {
7236
// element 0 is the signing cert
7337
let certs = cert_chain_from_sign1(sign1)?;

sdk/src/store.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ use crate::{
4747
asset_io::{
4848
CAIRead, CAIReadWrite, HashBlockObjectType, HashObjectPositions, RemoteRefEmbedType,
4949
},
50-
claim::{Claim, ClaimAssertion, ClaimAssetData, RemoteManifest},
50+
claim::{check_ocsp_status, Claim, ClaimAssertion, ClaimAssetData, RemoteManifest},
5151
cose_sign::{cose_sign, cose_sign_async},
52-
cose_validator::{check_ocsp_status, verify_cose, verify_cose_async},
52+
cose_validator::{verify_cose, verify_cose_async},
5353
dynamic_assertion::{DynamicAssertion, PreliminaryClaim},
5454
error::{Error, Result},
5555
external_manifest::ManifestPatchCallback,

0 commit comments

Comments
 (0)