mirror of
git://git.gnupg.org/gnupg.git
synced 2025-03-28 22:49:59 +01:00
* options.h, g10.c (main, add_keyserver_url): Add
--sig-preferred-keyserver to implant a "where to get my key" subpacket into a signature. * sign.c (mk_notation_and_policy): Rename to mk_notation_policy_etc and add preferred keyserver support for signatures.
This commit is contained in:
parent
ba188097c0
commit
e4a9d14aad
@ -1,3 +1,13 @@
|
|||||||
|
2003-07-24 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* options.h, g10.c (main, add_keyserver_url): Add
|
||||||
|
--sig-preferred-keyserver to implant a "where to get my key"
|
||||||
|
subpacket into a signature.
|
||||||
|
|
||||||
|
* sign.c (mk_notation_and_policy): Rename to
|
||||||
|
mk_notation_policy_etc and add preferred keyserver support for
|
||||||
|
signatures.
|
||||||
|
|
||||||
2003-07-21 David Shaw <dshaw@jabberwocky.com>
|
2003-07-21 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* keygen.c (do_add_key_flags): Don't set the certify flag for
|
* keygen.c (do_add_key_flags): Don't set the certify flag for
|
||||||
|
41
g10/g10.c
41
g10/g10.c
@ -220,6 +220,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oCertPolicyURL,
|
oCertPolicyURL,
|
||||||
oShowPolicyURL,
|
oShowPolicyURL,
|
||||||
oNoShowPolicyURL,
|
oNoShowPolicyURL,
|
||||||
|
oSigKeyserverURL,
|
||||||
oUseEmbeddedFilename,
|
oUseEmbeddedFilename,
|
||||||
oComment,
|
oComment,
|
||||||
oDefaultComment,
|
oDefaultComment,
|
||||||
@ -555,6 +556,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oCertPolicyURL, "cert-policy-url", 2, "@" },
|
{ oCertPolicyURL, "cert-policy-url", 2, "@" },
|
||||||
{ oShowPolicyURL, "show-policy-url", 0, "@" },
|
{ oShowPolicyURL, "show-policy-url", 0, "@" },
|
||||||
{ oNoShowPolicyURL, "no-show-policy-url", 0, "@" },
|
{ oNoShowPolicyURL, "no-show-policy-url", 0, "@" },
|
||||||
|
{ oSigKeyserverURL, "sig-preferred-keyserver", 2, "@" },
|
||||||
{ oShowNotation, "show-notation", 0, "@" },
|
{ oShowNotation, "show-notation", 0, "@" },
|
||||||
{ oNoShowNotation, "no-show-notation", 0, "@" },
|
{ oNoShowNotation, "no-show-notation", 0, "@" },
|
||||||
{ oComment, "comment", 2, "@" },
|
{ oComment, "comment", 2, "@" },
|
||||||
@ -641,6 +643,7 @@ static void set_cmd( enum cmd_and_opt_values *ret_cmd,
|
|||||||
static void print_mds( const char *fname, int algo );
|
static void print_mds( const char *fname, int algo );
|
||||||
static void add_notation_data( const char *string, int which );
|
static void add_notation_data( const char *string, int which );
|
||||||
static void add_policy_url( const char *string, int which );
|
static void add_policy_url( const char *string, int which );
|
||||||
|
static void add_keyserver_url( const char *string, int which );
|
||||||
|
|
||||||
#ifdef __riscos__
|
#ifdef __riscos__
|
||||||
RISCOS_GLOBAL_STATICS("GnuPG Heap")
|
RISCOS_GLOBAL_STATICS("GnuPG Heap")
|
||||||
@ -1602,6 +1605,7 @@ main( int argc, char **argv )
|
|||||||
opt.list_options&=~LIST_SHOW_POLICY;
|
opt.list_options&=~LIST_SHOW_POLICY;
|
||||||
opt.verify_options&=~VERIFY_SHOW_POLICY;
|
opt.verify_options&=~VERIFY_SHOW_POLICY;
|
||||||
break;
|
break;
|
||||||
|
case oSigKeyserverURL: add_keyserver_url(pargs.r.ret_str,0); break;
|
||||||
case oUseEmbeddedFilename: opt.use_embedded_filename = 1; break;
|
case oUseEmbeddedFilename: opt.use_embedded_filename = 1; break;
|
||||||
case oComment: opt.comment_string = pargs.r.ret_str; break;
|
case oComment: opt.comment_string = pargs.r.ret_str; break;
|
||||||
case oDefaultComment: opt.comment_string = NULL; break;
|
case oDefaultComment: opt.comment_string = NULL; break;
|
||||||
@ -1757,9 +1761,9 @@ main( int argc, char **argv )
|
|||||||
{"show-photos",LIST_SHOW_PHOTOS},
|
{"show-photos",LIST_SHOW_PHOTOS},
|
||||||
{"show-policy-url",LIST_SHOW_POLICY},
|
{"show-policy-url",LIST_SHOW_POLICY},
|
||||||
{"show-notation",LIST_SHOW_NOTATION},
|
{"show-notation",LIST_SHOW_NOTATION},
|
||||||
|
{"show-keyring",LIST_SHOW_KEYRING},
|
||||||
{"show-validity",LIST_SHOW_VALIDITY},
|
{"show-validity",LIST_SHOW_VALIDITY},
|
||||||
{"show-long-keyid",LIST_SHOW_LONG_KEYID},
|
{"show-long-keyid",LIST_SHOW_LONG_KEYID},
|
||||||
{"show-keyring",LIST_SHOW_KEYRING},
|
|
||||||
{NULL,0}
|
{NULL,0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3111,7 +3115,6 @@ add_notation_data( const char *string, int which )
|
|||||||
sl->flags |= 1;
|
sl->flags |= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_policy_url( const char *string, int which )
|
add_policy_url( const char *string, int which )
|
||||||
{
|
{
|
||||||
@ -3144,3 +3147,37 @@ add_policy_url( const char *string, int which )
|
|||||||
if(critical)
|
if(critical)
|
||||||
sl->flags |= 1;
|
sl->flags |= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_keyserver_url( const char *string, int which )
|
||||||
|
{
|
||||||
|
int i,critical=0;
|
||||||
|
STRLIST sl;
|
||||||
|
|
||||||
|
if(*string=='!')
|
||||||
|
{
|
||||||
|
string++;
|
||||||
|
critical=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(i=0;i<strlen(string);i++)
|
||||||
|
if(string[i]&0x80 || iscntrl(string[i]))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(i==0 || i<strlen(string))
|
||||||
|
{
|
||||||
|
if(which)
|
||||||
|
BUG();
|
||||||
|
else
|
||||||
|
log_error(_("the given signature preferred keyserver "
|
||||||
|
"URL is invalid\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(which)
|
||||||
|
BUG();
|
||||||
|
else
|
||||||
|
sl=add_to_strlist( &opt.sig_keyserver_url, string );
|
||||||
|
|
||||||
|
if(critical)
|
||||||
|
sl->flags |= 1;
|
||||||
|
}
|
||||||
|
@ -153,6 +153,7 @@ struct {
|
|||||||
STRLIST cert_notation_data;
|
STRLIST cert_notation_data;
|
||||||
STRLIST sig_policy_url;
|
STRLIST sig_policy_url;
|
||||||
STRLIST cert_policy_url;
|
STRLIST cert_policy_url;
|
||||||
|
STRLIST sig_keyserver_url;
|
||||||
int use_embedded_filename;
|
int use_embedded_filename;
|
||||||
int allow_non_selfsigned_uid;
|
int allow_non_selfsigned_uid;
|
||||||
int allow_freeform_uid;
|
int allow_freeform_uid;
|
||||||
|
37
g10/sign.c
37
g10/sign.c
@ -58,7 +58,7 @@ static int recipient_digest_algo=0;
|
|||||||
* NAME=VALUE format.
|
* NAME=VALUE format.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
mk_notation_and_policy( PKT_signature *sig,
|
mk_notation_policy_etc( PKT_signature *sig,
|
||||||
PKT_public_key *pk, PKT_secret_key *sk )
|
PKT_public_key *pk, PKT_secret_key *sk )
|
||||||
{
|
{
|
||||||
const char *string;
|
const char *string;
|
||||||
@ -163,6 +163,34 @@ mk_notation_and_policy( PKT_signature *sig,
|
|||||||
|
|
||||||
if(opt.list_options&LIST_SHOW_POLICY)
|
if(opt.list_options&LIST_SHOW_POLICY)
|
||||||
show_policy_url(sig,0,0);
|
show_policy_url(sig,0,0);
|
||||||
|
|
||||||
|
/* preferred keyserver URL */
|
||||||
|
if( IS_SIG(sig) && opt.sig_keyserver_url )
|
||||||
|
{
|
||||||
|
if(sig->version<4)
|
||||||
|
log_info("can't put a preferred keyserver URL into v3 signatures\n");
|
||||||
|
else
|
||||||
|
pu=opt.sig_keyserver_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(;pu;pu=pu->next)
|
||||||
|
{
|
||||||
|
string = pu->d;
|
||||||
|
|
||||||
|
s=pct_expando(string,&args);
|
||||||
|
if(!s)
|
||||||
|
{
|
||||||
|
log_error(_("WARNING: unable to %%-expand preferred keyserver url "
|
||||||
|
"(too large). Using unexpanded.\n"));
|
||||||
|
s=m_strdup(string);
|
||||||
|
}
|
||||||
|
|
||||||
|
build_sig_subpkt(sig,SIGSUBPKT_PREF_KS|
|
||||||
|
((pu->flags & 1)?SIGSUBPKT_FLAG_CRITICAL:0),
|
||||||
|
s,strlen(s));
|
||||||
|
|
||||||
|
m_free(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -564,7 +592,8 @@ write_signature_packets (SK_LIST sk_list, IOBUF out, MD_HANDLE hash,
|
|||||||
sig = m_alloc_clear (sizeof *sig);
|
sig = m_alloc_clear (sizeof *sig);
|
||||||
if(opt.force_v3_sigs || RFC1991)
|
if(opt.force_v3_sigs || RFC1991)
|
||||||
sig->version=3;
|
sig->version=3;
|
||||||
else if(duration || opt.sig_policy_url || opt.sig_notation_data)
|
else if(duration || opt.sig_policy_url
|
||||||
|
|| opt.sig_notation_data || opt.sig_keyserver_url)
|
||||||
sig->version=4;
|
sig->version=4;
|
||||||
else
|
else
|
||||||
sig->version=sk->version;
|
sig->version=sk->version;
|
||||||
@ -583,7 +612,7 @@ write_signature_packets (SK_LIST sk_list, IOBUF out, MD_HANDLE hash,
|
|||||||
|
|
||||||
if (sig->version >= 4)
|
if (sig->version >= 4)
|
||||||
build_sig_subpkt_from_sig (sig);
|
build_sig_subpkt_from_sig (sig);
|
||||||
mk_notation_and_policy (sig, NULL, sk);
|
mk_notation_policy_etc (sig, NULL, sk);
|
||||||
|
|
||||||
hash_sigversion_to_magic (md, sig);
|
hash_sigversion_to_magic (md, sig);
|
||||||
md_final (md);
|
md_final (md);
|
||||||
@ -1251,7 +1280,7 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
|
|||||||
sig->sig_class = sigclass;
|
sig->sig_class = sigclass;
|
||||||
if( sig->version >= 4 )
|
if( sig->version >= 4 )
|
||||||
build_sig_subpkt_from_sig( sig );
|
build_sig_subpkt_from_sig( sig );
|
||||||
mk_notation_and_policy( sig, pk, sk );
|
mk_notation_policy_etc( sig, pk, sk );
|
||||||
|
|
||||||
/* Crucial that the call to mksubpkt comes LAST before the calls
|
/* Crucial that the call to mksubpkt comes LAST before the calls
|
||||||
to finalize the sig as that makes it possible for the mksubpkt
|
to finalize the sig as that makes it possible for the mksubpkt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user