aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-03-01 13:41:47 +0000
committerWerner Koch <[email protected]>2017-03-01 13:41:47 +0000
commit891ab23411b7f20ef37d8bde81d9857b083235df (patch)
treef4c638d188133a1409ba4caa9d9118ce14eccba5
parentgpg: Allow creating keys using an existing ECC key. (diff)
downloadgnupg-891ab23411b7f20ef37d8bde81d9857b083235df.tar.gz
gnupg-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 '')
-rw-r--r--doc/gpg.texi7
-rw-r--r--g10/export.c31
-rw-r--r--g10/gpg.c4
-rw-r--r--g10/main.h6
4 files changed, 26 insertions, 22 deletions
diff --git a/doc/gpg.texi b/doc/gpg.texi
index 78dd6516c..20a2d1297 100644
--- a/doc/gpg.texi
+++ b/doc/gpg.texi
@@ -1832,7 +1832,8 @@ are available for all keyserver types, some common options are:
used with HKP keyservers.
@item auto-key-retrieve
- This is the same as the option @option{auto-key-retrieve}.
+ This is an obsolete alias for the option @option{auto-key-retrieve}.
+ Please do not use it; it will be removed in future versions..
@item honor-keyserver-url
When using @option{--refresh-keys}, if the key in question has a preferred
@@ -2379,8 +2380,8 @@ The available properties are:
@item --export-options @code{parameters}
@opindex export-options
This is a space or comma delimited string that gives options for
-exporting keys. Options can be prepended with a `no-' to give the
-opposite meaning. The options are:
+exporting keys. Options can be prepended with a `no-' to give the
+opposite meaning. The options are:
@table @asis
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);
diff --git a/g10/gpg.c b/g10/gpg.c
index 2a4a0addf..5a880fd53 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -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,