diff options
author | Werner Koch <wk@gnupg.org> | 2018-07-09 09:49:09 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2018-07-09 09:49:21 +0200 |
commit | c2fd65ec8498a08ee36ca52d99b6b014f6db8d93 (patch) | |
tree | ca23db3fe234ed6858c1913e4b463d99c5e27ccd /g10/key-clean.h | |
parent | gpg: Split key cleaning function for clarity. (diff) | |
download | gnupg2-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.h | 15 |
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); |