use crate::c2pa_crypto::verify_claim;
const CERT_DER: &[u8] = include_bytes!("fixtures/pss_spki_cert.der");
const COSE: &[u8] = include_bytes!("fixtures/pss_spki.cose");
const CLAIM: &[u8] = include_bytes!("fixtures/pss_spki.claim.cbor");
#[test]
fn fixture_cert_spki_is_rsassa_pss() {
const ID_RSASSA_PSS_OID_DER: &[u8] = &[
0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0a,
];
assert!(
CERT_DER
.windows(ID_RSASSA_PSS_OID_DER.len())
.any(|w| w == ID_RSASSA_PSS_OID_DER),
"fixture certificate no longer carries an id-RSASSA-PSS SPKI"
);
}
#[test]
fn ps256_cose_verifies_against_rsassa_pss_spki_cert() {
verify_claim(COSE, CLAIM, CERT_DER)
.expect("PS256 COSE must verify against an id-RSASSA-PSS SPKI certificate");
}
#[test]
fn ps256_cose_rejects_tampered_claim_with_rsassa_pss_spki_cert() {
let mut bad = CLAIM.to_vec();
bad[10] ^= 0xFF;
assert!(verify_claim(COSE, &bad, CERT_DER).is_err());
}