summaryrefslogtreecommitdiffstats
path: root/openpgp/src/cert/builder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openpgp/src/cert/builder.rs')
-rw-r--r--openpgp/src/cert/builder.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/openpgp/src/cert/builder.rs b/openpgp/src/cert/builder.rs
index 35941c0c..1ef60e71 100644
--- a/openpgp/src/cert/builder.rs
+++ b/openpgp/src/cert/builder.rs
@@ -329,11 +329,14 @@ impl CertBuilder {
let mut cert = Cert::try_from(packets)?;
// Sign UserIDs.
- for uid in self.userids.into_iter() {
- let builder = sig.clone()
+ for (i, uid) in self.userids.into_iter().enumerate() {
+ let mut builder = sig.clone()
.set_type(SignatureType::PositiveCertification)
// GnuPG wants at least a 512-bit hash for P521 keys.
.set_hash_algo(HashAlgorithm::SHA512);
+ if i == 0 {
+ builder = builder.set_primary_userid(true)?;
+ }
let signature = uid.bind(&mut signer, &cert, builder)?;
cert = cert.merge_packets(
vec![Packet::from(uid), signature.into()])?;