diff --git a/src/pgp/pgp_tests.rs b/src/pgp/pgp_tests.rs index 57e7a18b5..2940f5a1a 100644 --- a/src/pgp/pgp_tests.rs +++ b/src/pgp/pgp_tests.rs @@ -505,3 +505,28 @@ FFoiBQJG99w8AhsMAAoJECcqAms0FFoirSMA/0gVP98sPFga+UhQ3uJxJw5bO2Rs expected_expiring_fingerprint ); } + +/// Tests that key selection fails if there is only an expired subkey. +#[test] +fn test_select_only_expired_subkey() { + let alice_tpk_asc = " + -----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMERvfcPBYJKwYBBAHaRw8BAQdAUz6AZXIRE8T04Vh8RReFiP3tEV8UfSs2EiYs +8b8i4ce0GUFsaWNlIDxhbGljZUBleGFtcGxlLm9yZz6IkAQTFgoAOBYhBNRG3w/A +qWyPitBaqkGLyqDx3CaUBQJG99w8AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheA +AAoJEEGLyqDx3CaUMjIA/Rq9/iORLP360s6EsIDe9qSmlmSCggtivafH+uVBWa0X +AP0Wb+kailDwISq2O9Ef/jceZw7ozyzDLeDskKpCYiL3A7g4BEb33DwSCisGAQQB +l1UBBQEBB0BXhbrks9iskW1GfT3B022W3KhJCgz8gw81z9lAWv7OZgMBCAeIfgQY +FgoAJhYhBNRG3w/AqWyPitBaqkGLyqDx3CaUBQJG99w8AhsMBQkB4TOAAAoJEEGL +yqDx3CaU6/YA/jaYJsZMXvu5grrMq1wq3Z/yzGXd15zeWp+alY/6UYxoAQCmSrBC +SOtE3ODLZN9tC3F7k1N9clme1cHXyUiH3EliBQ== +=zWPq +-----END PGP PUBLIC KEY BLOCK----- +"; + + let alice_tpk = SignedPublicKey::from_asc(alice_tpk_asc).unwrap(); + let now = pgp::types::Timestamp::now(); + + assert_eq!(select_pk_for_encryption(now.as_secs(), &alice_tpk), None); +}