#![allow(clippy::expect_used)]
use std::time::SystemTime;
use chrono::DateTime;
use rpgpie::certificate::{Certificate, Checked};
fn load_cert(filename: &str) -> Checked {
let mut read = std::fs::File::open(filename).expect("open");
let c = Certificate::load(&mut read).expect("load");
assert_eq!(c.len(), 1);
Checked::from(c.into_iter().next().expect("asserted"))
}
#[test]
fn test_validity_05c7775a9e8b977407fe08e69d4c5aa15426da0a() {
let _ = env_logger::builder().try_init();
let checked = load_cert("tests/validity/05c7775a9e8b977407fe08e69d4c5aa15426da0a.openpgp");
assert!(
!checked.revoked_at(
SystemTime::from(
DateTime::parse_from_rfc3339("2025-01-01T23:59:00Z").expect("parse date")
)
.try_into()
.expect("fits u32")
)
);
let sig = checked.valid_signing_capable_component_keys_at(
SystemTime::from(DateTime::parse_from_rfc3339("2025-05-05T00:00:00Z").expect("parse date"))
.try_into()
.expect("fits u32"),
);
assert_eq!(sig.len(), 1);
let sig = checked.valid_signing_capable_component_keys_at(
SystemTime::from(DateTime::parse_from_rfc3339("2024-09-01T00:00:00Z").expect("parse date"))
.try_into()
.expect("fits u32"),
);
assert_eq!(sig.len(), 1);
}
#[test]
fn test_validity_be2dbcf2b1e3e588ac325aeaa06b49470f8e620a() {
let _ = env_logger::builder().try_init();
let checked = load_cert("tests/validity/be2dbcf2b1e3e588ac325aeaa06b49470f8e620a.openpgp");
let sig = checked.valid_signing_capable_component_keys_at(
SystemTime::from(DateTime::parse_from_rfc3339("2025-05-22T01:00:00Z").expect("parse date"))
.try_into()
.expect("fits u32"),
);
assert_eq!(sig.len(), 2);
}
#[test]
fn test_validity_9d74df6f91b7bdabd5815ca84ac5588f941c2a25() {
let _ = env_logger::builder().try_init();
let checked = load_cert("tests/validity/9d74df6f91b7bdabd5815ca84ac5588f941c2a25.openpgp");
let sig = checked.valid_signing_capable_component_keys_at(
SystemTime::from(DateTime::parse_from_rfc3339("2022-05-22T01:00:00Z").expect("parse date"))
.try_into()
.expect("fits u32"),
);
assert_eq!(sig.len(), 2);
let sig = checked.valid_signing_capable_component_keys_at(
SystemTime::from(DateTime::parse_from_rfc3339("2023-01-01T01:00:00Z").expect("parse date"))
.try_into()
.expect("fits u32"),
);
assert_eq!(sig.len(), 2);
}
#[test]
fn test_validity_revoked_user_id_bob() {
let _ = env_logger::builder().try_init();
let checked = load_cert("tests/validity/userid-revoked-bob.pgp");
assert!(
checked
.primary_valid_at(
SystemTime::from(
DateTime::parse_from_rfc3339("2020-02-01T01:00:00Z").expect("parse date")
)
.try_into()
.expect("fits u32"),
)
.expect("primary_valid_at")
);
assert!(
checked
.primary_valid_at(
SystemTime::from(
DateTime::parse_from_rfc3339("2020-04-01T01:00:00Z").expect("parse date")
)
.try_into()
.expect("fits u32"),
)
.expect("primary_valid_at")
);
}