gpg: Initialize the primary key when generating a key.
authorNeal H. Walfield <neal@g10code.com>
Fri, 19 Feb 2016 13:53:29 +0000 (14:53 +0100)
committerNeal H. Walfield <neal@g10code.com>
Fri, 19 Feb 2016 15:13:01 +0000 (16:13 +0100)
* g10/keygen.c (do_generate_keypair): Initialize
pri_psk->flags.primary, pri_psk->keyid and pri_psk->main_keyid.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
g10/keygen.c

index 7b5a35b..be132bb 100644 (file)
@@ -4079,6 +4079,13 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
       assert (pri_psk);
     }
 
+  /* Make sure a few fields are correctly set up before going further.  */
+  pri_psk->flags.primary = 1;
+  keyid_from_pk (pri_psk, NULL);
+  /* We don't use pk_keyid to get keyid, because it also asserts that
+     main_keyid is set!  */
+  keyid_copy (pri_psk->main_keyid, pri_psk->keyid);
+
   if (!err && (revkey = get_parameter_revkey (para, pREVOKER)))
     err = write_direct_sig (pub_root, pri_psk, revkey, timestamp, cache_nonce);