diff --git a/g10/ChangeLog b/g10/ChangeLog index ea2c0d85b..27bbb24a2 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,9 @@ +2002-02-27 David Shaw + + * getkey.c (merge_selfsigs_main): If a key isn't valid (say, + because of no self-signature), allow --always-trust to force it + valid so it can be trusted. + 2002-02-25 David Shaw * hkp.c (hkp_ask_import), hkp.h, keyserver.c (all): treat key diff --git a/g10/getkey.c b/g10/getkey.c index 5f12040a5..fddb67ed3 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -1301,6 +1301,18 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked ) fixup_uidnode ( uidnode, signode, keytimestamp ); pk->is_valid = 1; } + + /* If the key isn't valid yet, and we have --always-trust set, + then force it valid. */ + if(opt.always_trust && !pk->is_valid) + { + if(opt.verbose) + log_info(_("Invalid key %08lX made valid by --always-trust\n"), + (ulong)keyid_from_pk(pk,NULL)); + + pk->is_valid = 1; + } + if ( sigdate > uiddate ) uiddate = sigdate;