diff options
author | Werner Koch <wk@gnupg.org> | 2017-03-01 14:41:47 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2017-03-01 14:41:47 +0100 |
commit | 891ab23411b7f20ef37d8bde81d9857b083235df (patch) | |
tree | f4c638d188133a1409ba4caa9d9118ce14eccba5 /g10 | |
parent | gpg: Allow creating keys using an existing ECC key. (diff) | |
download | gnupg2-891ab23411b7f20ef37d8bde81d9857b083235df.tar.xz gnupg2-891ab23411b7f20ef37d8bde81d9857b083235df.zip |
gpg: Make --export-options work with --export-secret-keys.
* g10/export.c (export_seckeys): Add arg OPTIONS and pass it to
do_export.
(export_secsubkeys): Ditto.
* g10/gpg.c (main): Pass opt.export_options to export_seckeys and
export_secsubkeys
--
Back in the old days we did not used the export options for secret
keys export because of a lot of duplicated code and that the old
secring.gpg was anyway smaller that the pubring.gpg. With 2.1 it was
pretty easy to enable it.
Reported-by: Peter Lebbing
GnuPG-bug-id: 2973
Diffstat (limited to 'g10')
-rw-r--r-- | g10/export.c | 31 | ||||
-rw-r--r-- | g10/gpg.c | 4 | ||||
-rw-r--r-- | g10/main.h | 6 |
3 files changed, 22 insertions, 19 deletions
diff --git a/g10/export.c b/g10/export.c index 025b9361a..413826153 100644 --- a/g10/export.c +++ b/g10/export.c @@ -247,16 +247,17 @@ export_pubkeys (ctrl_t ctrl, strlist_t users, unsigned int options, /* * Export secret keys (to stdout or to --output FILE). * - * Depending on opt.armor the output is armored. If USERS is NULL, - * all secret keys will be exported. STATS is either an export stats - * object for update or NULL. + * Depending on opt.armor the output is armored. OPTIONS are defined + * in main.h. If USERS is NULL, all secret keys will be exported. + * STATS is either an export stats object for update or NULL. * * This function is the core of "gpg --export-secret-keys". */ int -export_seckeys (ctrl_t ctrl, strlist_t users, export_stats_t stats) +export_seckeys (ctrl_t ctrl, strlist_t users, unsigned int options, + export_stats_t stats) { - return do_export (ctrl, users, 1, 0, stats); + return do_export (ctrl, users, 1, options, stats); } @@ -264,16 +265,18 @@ export_seckeys (ctrl_t ctrl, strlist_t users, export_stats_t stats) * Export secret sub keys (to stdout or to --output FILE). * * This is the same as export_seckeys but replaces the primary key by - * a stub key. Depending on opt.armor the output is armored. If - * USERS is NULL, all secret subkeys will be exported. STATS is - * either an export stats object for update or NULL. + * a stub key. Depending on opt.armor the output is armored. OPTIONS + * are defined in main.h. If USERS is NULL, all secret subkeys will + * be exported. STATS is either an export stats object for update or + * NULL. * * This function is the core of "gpg --export-secret-subkeys". */ int -export_secsubkeys (ctrl_t ctrl, strlist_t users, export_stats_t stats) +export_secsubkeys (ctrl_t ctrl, strlist_t users, unsigned int options, + export_stats_t stats) { - return do_export (ctrl, users, 2, 0, stats); + return do_export (ctrl, users, 2, options, stats); } @@ -1969,11 +1972,9 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, } /* Always do the cleaning on the public key part if requested. - Note that we don't yet set this option if we are exporting - secret keys. Note that both export-clean and export-minimal - only apply to UID sigs (0x10, 0x11, 0x12, and 0x13). A - designated revocation is never stripped, even with - export-minimal set. */ + * Note that both export-clean and export-minimal only apply to + * UID sigs (0x10, 0x11, 0x12, and 0x13). A designated + * revocation is never stripped, even with export-minimal set. */ if ((options & EXPORT_CLEAN)) clean_key (keyblock, opt.verbose, (options&EXPORT_MINIMAL), NULL, NULL); @@ -4546,7 +4546,7 @@ main (int argc, char **argv) add_to_strlist2( &sl, *argv, utf8_strings ); { export_stats_t stats = export_new_stats (); - export_seckeys (ctrl, sl, stats); + export_seckeys (ctrl, sl, opt.export_options, stats); export_print_stats (stats); export_release_stats (stats); } @@ -4559,7 +4559,7 @@ main (int argc, char **argv) add_to_strlist2( &sl, *argv, utf8_strings ); { export_stats_t stats = export_new_stats (); - export_secsubkeys (ctrl, sl, stats); + export_secsubkeys (ctrl, sl, opt.export_options, stats); export_print_stats (stats); export_release_stats (stats); } diff --git a/g10/main.h b/g10/main.h index 5ed501b3c..6837e989e 100644 --- a/g10/main.h +++ b/g10/main.h @@ -397,8 +397,10 @@ gpg_error_t parse_and_set_export_filter (const char *string); int export_pubkeys (ctrl_t ctrl, strlist_t users, unsigned int options, export_stats_t stats); -int export_seckeys (ctrl_t ctrl, strlist_t users, export_stats_t stats); -int export_secsubkeys (ctrl_t ctrl, strlist_t users, export_stats_t stats); +int export_seckeys (ctrl_t ctrl, strlist_t users, unsigned int options, + export_stats_t stats); +int export_secsubkeys (ctrl_t ctrl, strlist_t users, unsigned int options, + export_stats_t stats); gpg_error_t export_pubkey_buffer (ctrl_t ctrl, const char *keyspec, unsigned int options, |