30 lines
1.1 KiB
Rust
30 lines
1.1 KiB
Rust
use rpki::data_model::oid::{OID_CT_RPKI_MANIFEST, OID_SHA256, OID_SIGNED_DATA};
|
|
use rpki::data_model::signed_object::RpkiSignedObject;
|
|
|
|
#[test]
|
|
fn decode_manifest_signed_object_smoke() {
|
|
let der = std::fs::read(
|
|
"tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.mft",
|
|
)
|
|
.expect("read MFT fixture");
|
|
|
|
let so = RpkiSignedObject::decode_der(&der).expect("decode signed object");
|
|
|
|
assert_eq!(so.content_info_content_type, OID_SIGNED_DATA);
|
|
assert_eq!(so.signed_data.version, 3);
|
|
assert_eq!(so.signed_data.digest_algorithms, vec![OID_SHA256.to_string()]);
|
|
assert_eq!(
|
|
so.signed_data.encap_content_info.econtent_type,
|
|
OID_CT_RPKI_MANIFEST
|
|
);
|
|
assert_eq!(so.signed_data.certificates.len(), 1);
|
|
assert!(!so.signed_data.certificates[0]
|
|
.sia_signed_object_uris
|
|
.is_empty());
|
|
assert!(so.signed_data.certificates[0]
|
|
.sia_signed_object_uris
|
|
.iter()
|
|
.any(|u| u.starts_with("rsync://")));
|
|
assert_eq!(so.signed_data.signer_infos.len(), 1);
|
|
}
|