mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: New export and import options "backup" and "restore".
* g10/export.c (parse_export_options): Add "backup" and its alias "export-backup". (do_export_one_keyblock): Export ring trust packets in backup mode. * g10/import.c (parse_import_options): Add "restore" and its alias "import-restore". (read_block): Import ring trust packets. -- These options are intended to, well, backup and restore keys between GnuPG implementations. These options may eventually be enhanced to backup and restore all public key related information. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
21c9ebb908
commit
953d4ec6af
4 changed files with 52 additions and 5 deletions
21
g10/import.c
21
g10/import.c
|
@ -175,6 +175,10 @@ parse_import_options(char *str,unsigned int *options,int noisy)
|
|||
{"import-export", IMPORT_EXPORT, NULL,
|
||||
N_("run import filters and export key immediately")},
|
||||
|
||||
{"restore", IMPORT_RESTORE, NULL,
|
||||
N_("assume the GnuPG key backup format")},
|
||||
{"import-restore", IMPORT_RESTORE, NULL, NULL},
|
||||
|
||||
/* Aliases for backward compatibility */
|
||||
{"allow-local-sigs",IMPORT_LOCAL_SIGS,NULL,NULL},
|
||||
{"repair-hkp-subkey-bug",IMPORT_REPAIR_PKS_SUBKEY_BUG,NULL,NULL},
|
||||
|
@ -186,8 +190,18 @@ parse_import_options(char *str,unsigned int *options,int noisy)
|
|||
the new design. */
|
||||
{NULL,0,NULL,NULL}
|
||||
};
|
||||
int rc;
|
||||
|
||||
return parse_options(str,options,import_opts,noisy);
|
||||
rc = parse_options (str, options, import_opts, noisy);
|
||||
if (rc && (*options & IMPORT_RESTORE))
|
||||
{
|
||||
/* Alter other options we want or don't want for restore. */
|
||||
*options |= (IMPORT_LOCAL_SIGS | IMPORT_KEEP_OWNERTTRUST);
|
||||
*options &= ~(IMPORT_MINIMAL | IMPORT_CLEAN
|
||||
| IMPORT_REPAIR_PKS_SUBKEY_BUG
|
||||
| IMPORT_MERGE_ONLY);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
|
@ -833,7 +847,9 @@ read_block( IOBUF a, PACKET **pending_pkt, kbnode_t *ret_root, int *r_v3keys)
|
|||
break;
|
||||
|
||||
case PKT_RING_TRUST:
|
||||
/* Skip those packets. */
|
||||
/* Skip those packets unless we are in restore mode. */
|
||||
if ((opt.import_options & IMPORT_RESTORE))
|
||||
goto x_default;
|
||||
free_packet( pkt );
|
||||
init_packet(pkt);
|
||||
break;
|
||||
|
@ -848,6 +864,7 @@ read_block( IOBUF a, PACKET **pending_pkt, kbnode_t *ret_root, int *r_v3keys)
|
|||
}
|
||||
in_cert = 1;
|
||||
default:
|
||||
x_default:
|
||||
if (in_cert && valid_keyblock_packet (pkt->pkttype))
|
||||
{
|
||||
if (!root )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue