rpki/tests/test_rc_time_encoding.rs
2026-02-06 15:30:26 +08:00

25 lines
1002 B
Rust

use rpki::data_model::common::Asn1TimeEncoding;
use rpki::data_model::rc::{ResourceCertificate, ResourceCertificateProfileError};
#[test]
fn rc_validity_time_encoding_is_validated() {
let der = std::fs::read(
"tests/fixtures/repository/rpki.apnic.net/repository/B527EF581D6611E2BB468F7C72FD1FF2/BfycW4hQb3wNP4YsiJW-1n6fjro.cer",
)
.expect("read RC fixture");
let mut parsed = ResourceCertificate::parse_der(&der).expect("parse RC fixture");
parsed.validity_not_before.encoding = match parsed.validity_not_before.encoding {
Asn1TimeEncoding::UtcTime => Asn1TimeEncoding::GeneralizedTime,
Asn1TimeEncoding::GeneralizedTime => Asn1TimeEncoding::UtcTime,
};
match parsed.validate_profile() {
Ok(_rc) => panic!("expected time-encoding validation error"),
Err(ResourceCertificateProfileError::InvalidTimeEncoding(e)) => {
assert_eq!(e.field, "notBefore");
}
Err(e) => panic!("unexpected error: {e}"),
}
}