优化时间表示
This commit is contained in:
24
tests/test_rc_time_encoding.rs
Normal file
24
tests/test_rc_time_encoding.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
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}"),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user