add crl data model
This commit is contained in:
BIN
tests/fixtures/0099DEAB073EFD74C250C0A382B25012B5082AEE.crl
vendored
Normal file
BIN
tests/fixtures/0099DEAB073EFD74C250C0A382B25012B5082AEE.crl
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl
vendored
Normal file
BIN
tests/fixtures/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.mft
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.mft
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142067.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142067.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142068.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142068.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142069.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142069.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142070.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142070.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142071.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142071.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142072.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142072.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142073.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142073.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142074.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142074.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142075.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142075.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142076.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142076.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142077.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142077.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142078.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142078.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142079.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142079.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142080.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142080.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142081.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142081.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142082.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142082.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142083.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142083.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142084.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142084.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142085.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142085.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142086.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142086.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142087.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142087.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142088.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142088.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142089.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142089.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142090.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142090.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142091.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142091.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142092.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142092.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142093.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142093.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142094.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142094.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142095.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142095.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142096.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142096.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142097.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142097.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142098.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142098.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142099.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142099.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142100.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142100.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142101.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142101.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142102.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142102.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142103.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142103.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142104.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142104.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142105.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142105.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142106.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142106.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142650.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142650.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142651.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142651.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142652.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142652.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142653.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142653.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142654.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142654.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142655.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142655.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142656.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142656.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142657.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142657.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142658.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142658.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142659.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS142659.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144698.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144698.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144699.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144699.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144700.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144700.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144701.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144701.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144702.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144702.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144703.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144703.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144704.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144704.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144705.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144705.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144706.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144706.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144707.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS144707.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS23910.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS23910.roa
vendored
Normal file
Binary file not shown.
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS4538.roa
vendored
Normal file
BIN
tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/AS4538.roa
vendored
Normal file
Binary file not shown.
68
tests/test_crl_decode.rs
Normal file
68
tests/test_crl_decode.rs
Normal file
@@ -0,0 +1,68 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use rpki::data_model::crl::RpkixCrl;
|
||||
use rpki::data_model::crl::Asn1TimeEncoding;
|
||||
|
||||
#[test]
|
||||
fn decode_and_validate_crl_fixture() {
|
||||
let path = PathBuf::from("tests/fixtures/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl");
|
||||
let der = std::fs::read(&path).expect("read CRL fixture");
|
||||
|
||||
let crl = RpkixCrl::decode_der(&der).expect("decode CRL");
|
||||
|
||||
assert_eq!(crl.version, 2);
|
||||
assert_eq!(crl.signature_algorithm_oid, "1.2.840.113549.1.1.11");
|
||||
assert_eq!(crl.this_update.encoding, Asn1TimeEncoding::UtcTime);
|
||||
assert_eq!(crl.next_update.encoding, Asn1TimeEncoding::UtcTime);
|
||||
assert_eq!(
|
||||
hex::encode_upper(&crl.extensions.authority_key_identifier),
|
||||
"05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA"
|
||||
);
|
||||
assert_eq!(crl.extensions.crl_number.bytes_be, vec![12]);
|
||||
assert!(crl.revoked_certs.is_empty());
|
||||
|
||||
println!("{crl:#?}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn crl_signature_verification_succeeds_with_issuer_cert() {
|
||||
let crl_der = std::fs::read(
|
||||
"tests/fixtures/repository/rpki.cernet.net/repo/cernet/0/05FC9C5B88506F7C0D3F862C8895BED67E9F8EBA.crl",
|
||||
)
|
||||
.expect("read CRL fixture");
|
||||
let issuer_cert_der = std::fs::read(
|
||||
"tests/fixtures/repository/rpki.apnic.net/repository/B527EF581D6611E2BB468F7C72FD1FF2/BfycW4hQb3wNP4YsiJW-1n6fjro.cer",
|
||||
)
|
||||
.expect("read issuer certificate fixture");
|
||||
|
||||
let crl = RpkixCrl::decode_der(&crl_der).expect("decode CRL");
|
||||
crl.verify_signature_with_issuer_certificate_der(&issuer_cert_der)
|
||||
.expect("CRL signature must verify with issuer certificate");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn decode_crl_with_revoked_entries() {
|
||||
let der =
|
||||
std::fs::read("tests/fixtures/0099DEAB073EFD74C250C0A382B25012B5082AEE.crl")
|
||||
.expect("read CRL fixture with revoked entries");
|
||||
|
||||
let crl = RpkixCrl::decode_der(&der).expect("decode CRL");
|
||||
|
||||
assert_eq!(crl.revoked_certs.len(), 21);
|
||||
for entry in &crl.revoked_certs {
|
||||
assert!(!entry.serial_number.bytes_be.is_empty());
|
||||
// 0 should be encoded as [0], otherwise no leading zero bytes.
|
||||
if entry.serial_number.bytes_be.len() > 1 {
|
||||
assert_ne!(entry.serial_number.bytes_be[0], 0);
|
||||
}
|
||||
let year = entry.revocation_date.utc.year();
|
||||
let expected = if year <= 2049 {
|
||||
Asn1TimeEncoding::UtcTime
|
||||
} else {
|
||||
Asn1TimeEncoding::GeneralizedTime
|
||||
};
|
||||
assert_eq!(entry.revocation_date.encoding, expected);
|
||||
}
|
||||
|
||||
println!("{crl:#?}");
|
||||
}
|
||||
Reference in New Issue
Block a user