1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-05 23:07:49 +02:00

* packet.h, build-packet.c (sig_to_notation), keygen.c

(keygen_add_notations): Provide printable text for non-human-readable
notation values.
This commit is contained in:
David Shaw 2006-03-09 01:15:18 +00:00
parent 889c4afd78
commit 0f7b4371b2
4 changed files with 20 additions and 8 deletions

View File

@ -1,5 +1,9 @@
2006-03-08 David Shaw <dshaw@jabberwocky.com>
* packet.h, build-packet.c (sig_to_notation), keygen.c
(keygen_add_notations): Provide printable text for
non-human-readable notation values.
* packet.h, build-packet.c (sig_to_notation), keygen.c
(keygen_add_notations): Tweak to handle non-human-readable
notation values.

View File

@ -1000,17 +1000,21 @@ sig_to_notation(PKT_signature *sig)
if(p[0]&0x80)
{
n->flags.human=1;
n->value=xmalloc(n2+1);
memcpy(n->value,&p[8+n1],n2);
n->value[n2]='\0';
}
else
{
n->value=xmalloc(n2);
n->bdat=xmalloc(n2);
n->blen=n2;
}
memcpy(n->bdat,&p[8+n1],n2);
memcpy(n->value,&p[8+n1],n2);
n->value=xmalloc(2+strlen(_("not human readable"))+2+1);
strcpy(n->value,"[ ");
strcat(n->value,_("not human readable"));
strcat(n->value," ]");
}
n->flags.critical=crit;
@ -1030,6 +1034,8 @@ free_notation(struct notation *notation)
xfree(n->name);
xfree(n->value);
xfree(n->altvalue);
xfree(n->bdat);
notation=n->next;
xfree(n);
}

View File

@ -708,7 +708,7 @@ keygen_add_notations(PKT_signature *sig,void *opaque)
n1=strlen(notation->name);
if(notation->altvalue)
n2=strlen(notation->altvalue);
else if(!notation->flags.human)
else if(notation->bdat)
n2=notation->blen;
else
n2=strlen(notation->value);
@ -716,7 +716,7 @@ keygen_add_notations(PKT_signature *sig,void *opaque)
buf = xmalloc( 8 + n1 + n2 );
/* human readable or not */
buf[0] = notation->flags.human?0x80:0;
buf[0] = notation->bdat?0:0x80;
buf[1] = buf[2] = buf[3] = 0;
buf[4] = n1 >> 8;
buf[5] = n1;
@ -725,6 +725,8 @@ keygen_add_notations(PKT_signature *sig,void *opaque)
memcpy(buf+8, notation->name, n1 );
if(notation->altvalue)
memcpy(buf+8+n1, notation->altvalue, n2 );
else if(notation->bdat)
memcpy(buf+8+n1, notation->bdat, n2 );
else
memcpy(buf+8+n1, notation->value, n2 );
build_sig_subpkt( sig, SIGSUBPKT_NOTATION |

View File

@ -411,12 +411,12 @@ struct notation
{
char *name;
char *value;
size_t blen;
char *altvalue;
unsigned char *bdat;
size_t blen;
struct
{
unsigned int critical:1;
unsigned int human:1;
unsigned int ignore:1;
} flags;
struct notation *next;