summaryrefslogtreecommitdiffstats
path: root/g10/key-clean.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2018-07-09 09:49:09 +0200
committerWerner Koch <wk@gnupg.org>2018-07-09 09:49:21 +0200
commitc2fd65ec8498a08ee36ca52d99b6b014f6db8d93 (patch)
treeca23db3fe234ed6858c1913e4b463d99c5e27ccd /g10/key-clean.h
parentgpg: Split key cleaning function for clarity. (diff)
downloadgnupg2-c2fd65ec8498a08ee36ca52d99b6b014f6db8d93.tar.xz
gnupg2-c2fd65ec8498a08ee36ca52d99b6b014f6db8d93.zip
gpg: Let export-clean remove expired subkeys.
* g10/key-clean.h (KEY_CLEAN_NONE, KEY_CLEAN_INVALID) (KEY_CLEAN_ENCR, KEY_CLEAN_AUTHENCR, KEY_CLEAN_ALL): New. * g10/key-clean.c (clean_one_subkey): New. (clean_all_subkeys): Add arg CLEAN_LEVEL. * g10/import.c (import_one): Call clean_all_subkeys with KEY_CLEAN_NONE. * g10/export.c (do_export_stream): Call clean_all_subkeys depedning on the export clean options. -- GnuPG-bug-id: 3622 Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'g10/key-clean.h')
-rw-r--r--g10/key-clean.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/g10/key-clean.h b/g10/key-clean.h
index 693843064..a0fb76950 100644
--- a/g10/key-clean.h
+++ b/g10/key-clean.h
@@ -23,6 +23,18 @@
#include "gpg.h"
+/* No explict cleaning. */
+#define KEY_CLEAN_NONE 0
+/* Remove only invalid subkeys (ie. missing key-bindings) */
+#define KEY_CLEAN_INVALID 1
+/* Remove expired encryption keys */
+#define KEY_CLEAN_ENCR 2
+/* Remove expired authentication and encryption keys. */
+#define KEY_CLEAN_AUTHENCR 3
+/* Remove all expired subkeys. */
+#define KEY_CLEAN_ALL 4
+
+
void mark_usable_uid_certs (ctrl_t ctrl, kbnode_t keyblock, kbnode_t uidnode,
u32 *main_kid, struct key_item *klist,
u32 curtime, u32 *next_expire);
@@ -32,7 +44,8 @@ void clean_one_uid (ctrl_t ctrl, kbnode_t keyblock, kbnode_t uidnode,
int *uids_cleaned, int *sigs_cleaned);
void clean_all_uids (ctrl_t ctrl, kbnode_t keyblock, int noisy, int self_only,
int *uids_cleaned,int *sigs_cleaned);
-void clean_all_subkeys (ctrl_t ctrl, kbnode_t keyblock, int noisy,
+void clean_all_subkeys (ctrl_t ctrl, kbnode_t keyblock,
+ int noisy, int clean_level,
int *subkeys_cleaned, int *sigs_cleaned);