diff options
Diffstat (limited to 'openpgp/src/serialize/cert_armored.rs')
-rw-r--r-- | openpgp/src/serialize/cert_armored.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/openpgp/src/serialize/cert_armored.rs b/openpgp/src/serialize/cert_armored.rs index a3060e8d..63642954 100644 --- a/openpgp/src/serialize/cert_armored.rs +++ b/openpgp/src/serialize/cert_armored.rs @@ -143,8 +143,11 @@ impl<'a> Encoder<'a> { let (prelude, headers) = match self { Encoder::Cert(cert) => (armor::Kind::PublicKey, cert.armor_headers()), - Encoder::TSK(ref tsk) => - (armor::Kind::SecretKey, tsk.cert.armor_headers()), + Encoder::TSK(tsk) => if tsk.emits_secret_key_packets() { + (armor::Kind::SecretKey, tsk.cert.armor_headers()) + } else { + (armor::Kind::PublicKey, tsk.cert.armor_headers()) + }, }; // Convert the Vec<String> into Vec<(&str, &str)> @@ -202,7 +205,11 @@ impl<'a> MarshalInto for Encoder<'a> { let word = match self { Self::Cert(_) => "PUBLIC", - Self::TSK(_) => "PRIVATE", + Self::TSK(tsk) => if tsk.emits_secret_key_packets() { + "PRIVATE" + } else { + "PUBLIC" + }, }.len(); "-----BEGIN PGP ".len() + word + " KEY BLOCK-----\n\n".len() |