aboutsummaryrefslogtreecommitdiffstats
path: root/g10/export.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g10/export.c43
1 files changed, 16 insertions, 27 deletions
diff --git a/g10/export.c b/g10/export.c
index 4052fb7b1..626b7d06c 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -47,7 +47,6 @@ struct subkey_list_s
typedef struct subkey_list_s *subkey_list_t;
-
static int do_export( STRLIST users, int secret, unsigned int options );
static int do_export_stream( IOBUF out, STRLIST users, int secret,
KBNODE *keyblock_out, unsigned int options,
@@ -63,24 +62,21 @@ parse_export_options(char *str,unsigned int *options,int noisy)
{"export-attributes",EXPORT_ATTRIBUTES,NULL,
N_("export attribute user IDs (generally photo IDs)")},
{"export-sensitive-revkeys",EXPORT_SENSITIVE_REVKEYS,NULL,
- N_("export revocation keys that are marked as \"sensitive\"")},
- {"export-clean",EXPORT_CLEAN_SIGS|EXPORT_CLEAN_UIDS,NULL,
- N_("all export-clean-* options from above")},
- {"export-clean-sigs",EXPORT_CLEAN_SIGS,NULL,
- N_("remove unusable signatures during export")},
- {"export-clean-uids",EXPORT_CLEAN_UIDS,NULL,
- N_("remove unusable user IDs during export")},
- {"export-minimal",
- EXPORT_MINIMAL|EXPORT_CLEAN_SIGS|EXPORT_CLEAN_UIDS,NULL,
- N_("remove unusable user IDs and all signatures during export")},
+ N_("export revocation keys marked as \"sensitive\"")},
{"export-reset-subkey-passwd",EXPORT_RESET_SUBKEY_PASSWD,NULL,
N_("remove the passphrase from exported subkeys")},
+ {"export-clean",EXPORT_CLEAN,NULL,
+ N_("remove unusable parts from key during export")},
+ {"export-minimal",EXPORT_MINIMAL|EXPORT_CLEAN,NULL,
+ N_("remove as much as possible from key during export")},
/* Aliases for backward compatibility */
{"include-local-sigs",EXPORT_LOCAL_SIGS,NULL,NULL},
{"include-attributes",EXPORT_ATTRIBUTES,NULL,NULL},
{"include-sensitive-revkeys",EXPORT_SENSITIVE_REVKEYS,NULL,NULL},
/* dummy */
{"export-unusable-sigs",0,NULL,NULL},
+ {"export-clean-sigs",0,NULL,NULL},
+ {"export-clean-uids",0,NULL,NULL},
{NULL,0,NULL,NULL}
/* add tags for include revoked and disabled? */
};
@@ -381,9 +377,14 @@ do_export_stream( IOBUF out, STRLIST users, int secret,
}
else
{
- /* It's a public key export. */
- if(options&EXPORT_CLEAN_UIDS)
- clean_uids_from_key(keyblock,opt.verbose);
+ /* It's a public key export, so do the cleaning if
+ requested. 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);
}
/* And write it. */
@@ -455,19 +456,7 @@ do_export_stream( IOBUF out, STRLIST users, int secret,
}
}
- if(node->pkt->pkttype==PKT_USER_ID)
- {
- /* Run clean_sigs_from_uid against each uid if
- export-clean-sigs is on. export-minimal causes it
- to remove all non-selfsigs as well. Note that
- export-minimal only applies to UID sigs (0x10,
- 0x11, 0x12, and 0x13). A designated revocation is
- not stripped. */
- if(options&EXPORT_CLEAN_SIGS)
- clean_sigs_from_uid(keyblock,node,
- opt.verbose,options&EXPORT_MINIMAL);
- }
- else if(node->pkt->pkttype==PKT_SIGNATURE)
+ if(node->pkt->pkttype==PKT_SIGNATURE)
{
/* do not export packets which are marked as not
exportable */