diff options
author | Werner Koch <[email protected]> | 2024-01-24 17:23:02 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-01-24 17:26:01 +0000 |
commit | d4976e35d2ca431b2a651aa11be8a4589c8dd39a (patch) | |
tree | 7b0e4d8566d734a274d13f006647c0f32c1ce32c | |
parent | po: Update German translation. (diff) | |
download | gnupg-d4976e35d2ca431b2a651aa11be8a4589c8dd39a.tar.gz gnupg-d4976e35d2ca431b2a651aa11be8a4589c8dd39a.zip |
gpg: Add sub-option ignore-attributes to --import-options.
* g10/options.h (IMPORT_IGNORE_ATTRIBUTES): New.
* g10/import.c (parse_import_options): Add new sub-option.
(read_block): Implement sub-option.
--
Suggested-by: Robin H. Johnson
Tested using the import-export feature:
gpg --export KEY_WITH_PICTURE \
| gpg --import --import-options import-export,ignore-attributes \
| gpg --show-key
-rw-r--r-- | doc/gpg.texi | 4 | ||||
-rw-r--r-- | g10/import.c | 12 | ||||
-rw-r--r-- | g10/options.h | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/doc/gpg.texi b/doc/gpg.texi index a54bc1fee..1bc2bd9e4 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -2579,6 +2579,10 @@ opposite meaning. The options are: import-clean it suppresses the final clean step after merging the imported key into the existing key. + @item ignore-attributes + Ignore all attribute user IDs (photo IDs) and their signatures while + importing a key. + @item repair-keys After import, fix various problems with the keys. For example, this reorders signatures, and strips duplicate diff --git a/g10/import.c b/g10/import.c index c1e76c3f0..8f874a7d1 100644 --- a/g10/import.c +++ b/g10/import.c @@ -209,6 +209,9 @@ parse_import_options(char *str,unsigned int *options,int noisy) {"repair-keys", IMPORT_REPAIR_KEYS, NULL, N_("repair keys on import")}, + /* New options. Right now, without description string. */ + {"ignore-attributes", IMPORT_IGNORE_ATTRIBUTES, NULL, NULL}, + /* Hidden options which are enabled by default and are provided * in case of problems with the respective implementation. */ {"collapse-uids", IMPORT_COLLAPSE_UIDS, NULL, NULL}, @@ -1008,6 +1011,15 @@ read_block( IOBUF a, unsigned int options, init_packet(pkt); continue; } + else if ((opt.import_options & IMPORT_IGNORE_ATTRIBUTES) + && (pkt->pkttype == PKT_USER_ID || pkt->pkttype == PKT_ATTRIBUTE) + && pkt->pkt.user_id->attrib_data) + { + skip_sigs = 1; + free_packet (pkt, &parsectx); + init_packet (pkt); + continue; + } if (skip_sigs) { diff --git a/g10/options.h b/g10/options.h index e0ee99533..146b78361 100644 --- a/g10/options.h +++ b/g10/options.h @@ -406,6 +406,7 @@ EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode; #define IMPORT_COLLAPSE_UIDS (1<<15) #define IMPORT_COLLAPSE_SUBKEYS (1<<16) #define IMPORT_BULK (1<<17) +#define IMPORT_IGNORE_ATTRIBUTES (1<<18) #define EXPORT_LOCAL_SIGS (1<<0) #define EXPORT_ATTRIBUTES (1<<1) |