mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* options.h, sign.c (mk_notation_policy_etc), gpg.c (add_notation_data):
Use it here for the various notation commands. * packet.h, main.h, keygen.c (keygen_add_notations), build-packet.c (string_to_notation, sig_to_notation) (free_notation): New "one stop shopping" functions to handle notations and start removing some code duplication.
This commit is contained in:
parent
90d8377276
commit
4fea8fdbbb
9 changed files with 275 additions and 117 deletions
48
g10/keygen.c
48
g10/keygen.c
|
@ -1,6 +1,6 @@
|
|||
/* keygen.c - generate a key pair
|
||||
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
* 2005 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
* 2006 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GnuPG.
|
||||
*
|
||||
|
@ -689,6 +689,50 @@ keygen_add_keyserver_url(PKT_signature *sig, void *opaque)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
keygen_add_notations(PKT_signature *sig,void *opaque)
|
||||
{
|
||||
struct notation *notation;
|
||||
|
||||
/* We always start clean */
|
||||
delete_sig_subpkt(sig->hashed,SIGSUBPKT_NOTATION);
|
||||
delete_sig_subpkt(sig->unhashed,SIGSUBPKT_NOTATION);
|
||||
sig->flags.notation=0;
|
||||
|
||||
for(notation=opaque;notation;notation=notation->next)
|
||||
if(!notation->flags.ignore)
|
||||
{
|
||||
unsigned char *buf;
|
||||
unsigned int n1,n2;
|
||||
|
||||
n1=strlen(notation->name);
|
||||
if(notation->altvalue)
|
||||
n2=strlen(notation->altvalue);
|
||||
else
|
||||
n2=strlen(notation->value);
|
||||
|
||||
buf = xmalloc( 8 + n1 + n2 );
|
||||
|
||||
buf[0] = 0x80; /* human readable */
|
||||
buf[1] = buf[2] = buf[3] = 0;
|
||||
buf[4] = n1 >> 8;
|
||||
buf[5] = n1;
|
||||
buf[6] = n2 >> 8;
|
||||
buf[7] = n2;
|
||||
memcpy(buf+8, notation->name, n1 );
|
||||
if(notation->altvalue)
|
||||
memcpy(buf+8+n1, notation->altvalue, n2 );
|
||||
else
|
||||
memcpy(buf+8+n1, notation->value, n2 );
|
||||
build_sig_subpkt( sig, SIGSUBPKT_NOTATION |
|
||||
(notation->flags.critical?SIGSUBPKT_FLAG_CRITICAL:0),
|
||||
buf, 8+n1+n2 );
|
||||
xfree(buf);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
keygen_add_revkey(PKT_signature *sig, void *opaque)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue