summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Michaelis <kai@sequoia-pgp.org>2018-12-14 12:48:17 +0100
committerKai Michaelis <kai@sequoia-pgp.org>2018-12-14 12:51:43 +0100
commit37851af37fbd2f0beb68a62d837b98557c67e70b (patch)
tree7ad1ebc799b6847054e011020040e7d45f1c7aa4
parent92232474771052a3fc38aeaa3c0848d674cab519 (diff)
openpgp: add test verifying 3rd party cert by GPG
-rw-r--r--openpgp/src/packet/signature/mod.rs16
-rw-r--r--openpgp/tests/data/keys/test1-certification-key.pgpbin0 -> 1219 bytes
-rw-r--r--openpgp/tests/data/keys/test2-signed-by-test1.pgpbin0 -> 1529 bytes
3 files changed, 16 insertions, 0 deletions
diff --git a/openpgp/src/packet/signature/mod.rs b/openpgp/src/packet/signature/mod.rs
index fec63fe0..98a9f615 100644
--- a/openpgp/src/packet/signature/mod.rs
+++ b/openpgp/src/packet/signature/mod.rs
@@ -1096,4 +1096,20 @@ mod test {
Builder::new(SignatureType::Text)
.sign_hash(&key, &private_mpis, HashAlgorithm::SHA256, hash).unwrap();
}
+
+ #[test]
+ fn verify_gpg_3rd_party_cert() {
+ use {packet::KeyFlags, TPK};
+
+ let cert_kf = KeyFlags::default().set_certify(true);
+ let test1 = TPK::from_file(
+ path_to("keys/test1-certification-key.pgp")).unwrap();
+ let cert_key1 = test1.select_keys(cert_kf, None)[0];
+ let test2 = TPK::from_file(
+ path_to("keys/test2-signed-by-test1.pgp")).unwrap();
+ let uid_binding = &test2.primary_key_signature_full().unwrap().0.unwrap();
+ let cert = uid_binding.certifications().next().unwrap();
+
+ assert_eq!(cert.verify_userid_binding(cert_key1, test2.primary(), uid_binding.userid()).ok(), Some(true));
+ }
}
diff --git a/openpgp/tests/data/keys/test1-certification-key.pgp b/openpgp/tests/data/keys/test1-certification-key.pgp
new file mode 100644
index 00000000..de188dc8
--- /dev/null
+++ b/openpgp/tests/data/keys/test1-certification-key.pgp
Binary files differ
diff --git a/openpgp/tests/data/keys/test2-signed-by-test1.pgp b/openpgp/tests/data/keys/test2-signed-by-test1.pgp
new file mode 100644
index 00000000..f41d491f
--- /dev/null
+++ b/openpgp/tests/data/keys/test2-signed-by-test1.pgp
Binary files differ