1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

* packet.h, getkey.c (fixup_uidnode, merge_selfsigs_subkey): Keep track of

which self-sig we actually chose.

* keyedit.c (menu_expire, menu_set_primary_uid, menu_set_preferences): Use
it here to avoid updating non-used self-sigs and possibly promoting an old
self-sig into consideration again.
This commit is contained in:
David Shaw 2004-04-15 00:30:05 +00:00
parent a9b00b06d1
commit 8c4607568d
4 changed files with 20 additions and 4 deletions

View file

@ -2872,7 +2872,9 @@ menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock )
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
&& ( (mainkey && uid
&& uid->created && (sig->sig_class&~3) == 0x10)
|| (!mainkey && sig->sig_class == 0x18) ) ) {
|| (!mainkey && sig->sig_class == 0x18) )
&& sig->flags.chosen_selfsig )
{
/* this is a selfsignature which is to be replaced */
PKT_signature *newsig;
PACKET *newpkt;
@ -3012,8 +3014,10 @@ menu_set_primary_uid ( KBNODE pub_keyblock, KBNODE sec_keyblock )
else if ( main_pk && uid && node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
if ( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
&& (uid && (sig->sig_class&~3) == 0x10)
&& attribute == (uid->attrib_data!=NULL)) {
&& (uid && (sig->sig_class&~3) == 0x10)
&& attribute == (uid->attrib_data!=NULL)
&& sig->flags.chosen_selfsig )
{
if(sig->version < 4) {
char *user=utf8_to_native(uid->name,strlen(uid->name),0);
@ -3122,7 +3126,8 @@ menu_set_preferences (KBNODE pub_keyblock, KBNODE sec_keyblock )
&& node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
if ( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
&& (uid && (sig->sig_class&~3) == 0x10) ) {
&& (uid && (sig->sig_class&~3) == 0x10)
&& sig->flags.chosen_selfsig ) {
if( sig->version < 4 ) {
char *user=utf8_to_native(uid->name,strlen(uid->name),0);