diff options
| author | Werner Koch <[email protected]> | 2025-08-28 12:41:31 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2025-08-28 12:47:56 +0000 |
| commit | 48e5282c86c253789e7e4f8bfc0930ce07037acc (patch) | |
| tree | 4fa995020583f5b40935f3490864ded09a7daf9e /g10/keygen.c | |
| parent | gpg: Change the ADSK key binding time to the current time. (diff) | |
| download | gnupg-48e5282c86c253789e7e4f8bfc0930ce07037acc.tar.gz gnupg-48e5282c86c253789e7e4f8bfc0930ce07037acc.zip | |
gpg: New option --auto-key-upload
* g10/options.h (opt.flags): Add member auto_key_upload.
(EXPORT_NO_STATUS): New.
(KEYSERVER_LDAP_ONLY): New.
(KEYSERVER_WARN_ONLY): New.
* g10/gpg.c (oAutoKeyUpload): New.
(opts): New option --auto-key-upload.
(main): Set option.
* g10/keyserver.c (keyserver_export_pubkey): New.
(keyserver_put): Take care of the WARN_ONLY and LDAP_ONLY options.
Delay printing of the EXPORTED status.
* g10/keygen.c (do_generate_keypair): Export new key if option is set.
* g10/export.c (do_export_one_keyblock): Take care of the NO_STATUS
option.
(print_status_exported): Move function to ...
* g10/cpr.c (write_status_warning): here and make public.
--
This change also fixes a bug with --send-key which used to emit an
EXPORTED line before actually sending the key to the dirmngr. Thus if
the upload failed a EXPORTED status has already been emitted.
GnuPG-bug-id: 7333
This is the first part which handles the new key case. We also need
to implement an upload after key modifications.
Diffstat (limited to 'g10/keygen.c')
| -rw-r--r-- | g10/keygen.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index 79f4e503b..1f4388f39 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -6745,6 +6745,16 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para, es_fflush (es_stdout); if (any_adsk) log_info (_("Note: The key has been created with one or more ADSK!\n")); + + if (opt.flags.auto_key_upload) + { + unsigned int saved_options = opt.keyserver_options.options; + + opt.keyserver_options.options |= KEYSERVER_LDAP_ONLY; + opt.keyserver_options.options |= KEYSERVER_WARN_ONLY; + keyserver_export_pubkey (ctrl, pk, 1/*Assume new key*/); + opt.keyserver_options.options = saved_options; + } } release_kbnode (pub_root); |
