mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-21 19:48:05 +01:00
* import.c (import_one): Do collapse_uids() before we do any cleaning
so keyserver mangled keys with doubled user IDs can be properly cleaned - possibly sigs on the different user IDs cancel each other out. * import.c (parse_import_options), export.c (parse_export_options): List "xxx-clean" before the longer options so we don't end up with a partial match on the longer options. * trustdb.c (clean_uids_from_key): Return proper number of cleaned user IDs. Don't count user IDs as cleaned unless we actually delete something.
This commit is contained in:
parent
74ee007922
commit
19de04694e
@ -1,3 +1,18 @@
|
||||
2005-11-01 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* import.c (import_one): Do collapse_uids() before we do any
|
||||
cleaning so keyserver mangled keys with doubled user IDs can be
|
||||
properly cleaned - possibly sigs on the different user IDs cancel
|
||||
each other out.
|
||||
|
||||
* import.c (parse_import_options), export.c
|
||||
(parse_export_options): List "xxx-clean" before the longer options
|
||||
so we don't end up with a partial match on the longer options.
|
||||
|
||||
* trustdb.c (clean_uids_from_key): Return proper number of cleaned
|
||||
user IDs. Don't count user IDs as cleaned unless we actually
|
||||
delete something.
|
||||
|
||||
2005-10-27 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix
|
||||
|
@ -64,12 +64,12 @@ parse_export_options(char *str,unsigned int *options,int noisy)
|
||||
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-clean",EXPORT_CLEAN_SIGS|EXPORT_CLEAN_UIDS,NULL,
|
||||
N_("all export-clean-* options from above")},
|
||||
{"export-minimal",
|
||||
EXPORT_MINIMAL|EXPORT_CLEAN_SIGS|EXPORT_CLEAN_UIDS,NULL,
|
||||
N_("export the smallest key possible")},
|
||||
|
@ -101,12 +101,12 @@ parse_import_options(char *str,unsigned int *options,int noisy)
|
||||
N_("create a public key when importing a secret key")},
|
||||
{"merge-only",IMPORT_MERGE_ONLY,NULL,
|
||||
N_("only accept updates to existing keys")},
|
||||
{"import-clean",IMPORT_CLEAN_SIGS|IMPORT_CLEAN_UIDS,NULL,
|
||||
N_("all import-clean-* options from above")},
|
||||
{"import-clean-sigs",IMPORT_CLEAN_SIGS,NULL,
|
||||
N_("remove unusable signatures after import")},
|
||||
{"import-clean-uids",IMPORT_CLEAN_UIDS,NULL,
|
||||
N_("remove unusable user IDs after import")},
|
||||
{"import-clean",IMPORT_CLEAN_SIGS|IMPORT_CLEAN_UIDS,NULL,
|
||||
N_("all import-clean-* options from above")},
|
||||
/* Aliases for backward compatibility */
|
||||
{"allow-local-sigs",IMPORT_LOCAL_SIGS,NULL,NULL},
|
||||
{"repair-hkp-subkey-bug",IMPORT_REPAIR_PKS_SUBKEY_BUG,NULL,NULL},
|
||||
@ -739,6 +739,8 @@ import_one( const char *fname, KBNODE keyblock,
|
||||
return 0;
|
||||
}
|
||||
|
||||
collapse_uids(&keyblock);
|
||||
|
||||
/* Clean the key that we're about to import, to cut down on things
|
||||
that we have to clean later. This has no practical impact on
|
||||
the end result, but does result in less logging which might
|
||||
@ -808,8 +810,6 @@ import_one( const char *fname, KBNODE keyblock,
|
||||
if( opt.verbose > 1 )
|
||||
log_info (_("writing to `%s'\n"), keydb_get_resource_name (hd) );
|
||||
|
||||
collapse_uids(&keyblock);
|
||||
|
||||
rc = keydb_insert_keyblock (hd, keyblock );
|
||||
if (rc)
|
||||
log_error (_("error writing keyring `%s': %s\n"),
|
||||
@ -886,7 +886,6 @@ import_one( const char *fname, KBNODE keyblock,
|
||||
goto leave;
|
||||
}
|
||||
|
||||
collapse_uids( &keyblock );
|
||||
/* and try to merge the block */
|
||||
clear_kbnode_flags( keyblock_orig );
|
||||
clear_kbnode_flags( keyblock );
|
||||
|
@ -1654,7 +1654,7 @@ clean_sigs_from_uid(KBNODE keyblock,KBNODE uidnode,int noisy)
|
||||
int
|
||||
clean_uids_from_key(KBNODE keyblock,int noisy)
|
||||
{
|
||||
int delete_until_next=0,deleted=0;
|
||||
int delete_until_next=0,deleting=0,deleted=0;
|
||||
KBNODE node,signode=NULL;
|
||||
u32 keyid[2],sigdate=0;
|
||||
|
||||
@ -1684,6 +1684,7 @@ clean_uids_from_key(KBNODE keyblock,int noisy)
|
||||
else
|
||||
{
|
||||
delete_until_next=1;
|
||||
deleting=1;
|
||||
|
||||
if(noisy)
|
||||
{
|
||||
@ -1722,7 +1723,11 @@ clean_uids_from_key(KBNODE keyblock,int noisy)
|
||||
if(delete_until_next && !sig->flags.chosen_selfsig)
|
||||
{
|
||||
delete_kbnode(node);
|
||||
deleted++;
|
||||
if(deleting)
|
||||
{
|
||||
deleted++;
|
||||
deleting=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user