mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
* options.h, keyserver.c (keyserver_opts), g10.c (main): New keyserver
option "include-subkeys". This feature already existed, but now can be turned off. It defaults to on. * options.h, keyserver.c (parse_keyserver_options, keyserver_spawn): There are now enough options to justify making a structure for the keyserver options rather than a page of if-then-else-if-then-etc. * getkey.c (merge_keys_and_selfsig, merge_selfsigs_main): Fix bug in calculating key expiration dates.
This commit is contained in:
parent
3bff7c1d60
commit
6ae955f451
@ -1,3 +1,17 @@
|
|||||||
|
2002-06-10 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* options.h, keyserver.c (keyserver_opts), g10.c (main): New
|
||||||
|
keyserver option "include-subkeys". This feature already existed,
|
||||||
|
but now can be turned off. It defaults to on.
|
||||||
|
|
||||||
|
* options.h, keyserver.c (parse_keyserver_options,
|
||||||
|
keyserver_spawn): There are now enough options to justify making a
|
||||||
|
structure for the keyserver options rather than a page of
|
||||||
|
if-then-else-if-then-etc.
|
||||||
|
|
||||||
|
* getkey.c (merge_keys_and_selfsig, merge_selfsigs_main): Fix bug
|
||||||
|
in calculating key expiration dates.
|
||||||
|
|
||||||
2002-06-09 David Shaw <dshaw@jabberwocky.com>
|
2002-06-09 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* keydb.h, getkey.c (get_user_id_native), import.c (import_one):
|
* keydb.h, getkey.c (get_user_id_native), import.c (import_one):
|
||||||
|
@ -907,6 +907,7 @@ main( int argc, char **argv )
|
|||||||
opt.pgp2_workarounds = 1;
|
opt.pgp2_workarounds = 1;
|
||||||
opt.force_v3_sigs = 1;
|
opt.force_v3_sigs = 1;
|
||||||
opt.escape_from = 1;
|
opt.escape_from = 1;
|
||||||
|
opt.keyserver_options.include_subkeys=1;
|
||||||
#if defined (__MINGW32__) || defined (__CYGWIN32__)
|
#if defined (__MINGW32__) || defined (__CYGWIN32__)
|
||||||
opt.homedir = read_w32_registry_string( NULL, "Software\\GNU\\GnuPG", "HomeDir" );
|
opt.homedir = read_w32_registry_string( NULL, "Software\\GNU\\GnuPG", "HomeDir" );
|
||||||
#else
|
#else
|
||||||
|
@ -1084,10 +1084,12 @@ merge_keys_and_selfsig( KBNODE keyblock )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pk && (pk->expiredate==0 || pk->expiredate>pk->max_expiredate))
|
if(pk && (pk->expiredate==0 ||
|
||||||
|
(pk->max_expiredate && pk->expiredate>pk->max_expiredate)))
|
||||||
pk->expiredate=pk->max_expiredate;
|
pk->expiredate=pk->max_expiredate;
|
||||||
|
|
||||||
if(sk && (sk->expiredate==0 || sk->expiredate>sk->max_expiredate))
|
if(sk && (sk->expiredate==0 ||
|
||||||
|
(sk->max_expiredate && sk->expiredate>sk->max_expiredate)))
|
||||||
sk->expiredate=sk->max_expiredate;
|
sk->expiredate=sk->max_expiredate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1527,7 +1529,7 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
|
|||||||
|
|
||||||
/* Currently only v3 keys have a maximum expiration date, but I'll
|
/* Currently only v3 keys have a maximum expiration date, but I'll
|
||||||
bet v5 keys get this feature again. */
|
bet v5 keys get this feature again. */
|
||||||
if(key_expire==0 || key_expire>pk->max_expiredate)
|
if(key_expire==0 || (pk->max_expiredate && key_expire>pk->max_expiredate))
|
||||||
key_expire=pk->max_expiredate;
|
key_expire=pk->max_expiredate;
|
||||||
|
|
||||||
pk->has_expired = key_expire >= curtime? 0 : key_expire;
|
pk->has_expired = key_expire >= curtime? 0 : key_expire;
|
||||||
|
116
g10/keyserver.c
116
g10/keyserver.c
@ -44,6 +44,24 @@
|
|||||||
#define SEND 1
|
#define SEND 1
|
||||||
#define SEARCH 2
|
#define SEARCH 2
|
||||||
|
|
||||||
|
struct kopts
|
||||||
|
{
|
||||||
|
char *name;
|
||||||
|
int tell; /* tell remote process about this one */
|
||||||
|
int *flag;
|
||||||
|
} keyserver_opts[]=
|
||||||
|
{
|
||||||
|
{"include-revoked",1,&opt.keyserver_options.include_revoked},
|
||||||
|
{"include-disabled",1,&opt.keyserver_options.include_disabled},
|
||||||
|
{"include-subkeys",1,&opt.keyserver_options.include_subkeys},
|
||||||
|
{"keep-temp-files",0,&opt.keyserver_options.keep_temp_files},
|
||||||
|
{"honor-http-proxy",1,&opt.keyserver_options.honor_http_proxy},
|
||||||
|
{"broken-http-proxy",1,&opt.keyserver_options.broken_http_proxy},
|
||||||
|
{"refresh-add-fake-v3-keyids",0,&opt.keyserver_options.fake_v3_keyids},
|
||||||
|
{"auto-key-retrieve",0,&opt.keyserver_options.auto_key_retrieve},
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
parse_keyserver_options(char *options)
|
parse_keyserver_options(char *options)
|
||||||
{
|
{
|
||||||
@ -51,51 +69,47 @@ parse_keyserver_options(char *options)
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(ascii_strcasecmp(tok,"include-revoked")==0)
|
struct kopts *kopts=keyserver_opts;
|
||||||
opt.keyserver_options.include_revoked=1;
|
int i,hit=0;
|
||||||
else if(ascii_strcasecmp(tok,"no-include-revoked")==0)
|
|
||||||
opt.keyserver_options.include_revoked=0;
|
for(i=0,kopts=keyserver_opts;kopts[i].name;i++)
|
||||||
else if(ascii_strcasecmp(tok,"include-disabled")==0)
|
{
|
||||||
opt.keyserver_options.include_disabled=1;
|
if(ascii_strcasecmp(tok,kopts[i].name)==0)
|
||||||
else if(ascii_strcasecmp(tok,"no-include-disabled")==0)
|
{
|
||||||
opt.keyserver_options.include_disabled=0;
|
*(kopts[i].flag)=1;
|
||||||
|
hit=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if(ascii_memcasecmp("no-",tok,3)==0 && strlen(tok)>3 &&
|
||||||
|
ascii_strcasecmp(&tok[3],kopts[i].name)==0)
|
||||||
|
{
|
||||||
|
*(kopts[i].flag)=0;
|
||||||
|
hit=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* These options need more than just a flag */
|
||||||
|
if(!hit)
|
||||||
|
{
|
||||||
|
if(ascii_strcasecmp(tok,"verbose")==0)
|
||||||
|
opt.keyserver_options.verbose++;
|
||||||
|
else if(ascii_strcasecmp(tok,"no-verbose")==0)
|
||||||
|
opt.keyserver_options.verbose--;
|
||||||
#ifdef EXEC_TEMPFILE_ONLY
|
#ifdef EXEC_TEMPFILE_ONLY
|
||||||
else if(ascii_strcasecmp(tok,"use-temp-files")==0 ||
|
else if(ascii_strcasecmp(tok,"use-temp-files")==0 ||
|
||||||
ascii_strcasecmp(tok,"no-use-temp-files")==0)
|
ascii_strcasecmp(tok,"no-use-temp-files")==0)
|
||||||
log_info(_("Warning: keyserver option \"%s\" is not used "
|
log_info(_("Warning: keyserver option \"%s\" is not used "
|
||||||
"on this platform\n"),tok);
|
"on this platform\n"),tok);
|
||||||
#else
|
#else
|
||||||
else if(ascii_strcasecmp(tok,"use-temp-files")==0)
|
else if(ascii_strcasecmp(tok,"use-temp-files")==0)
|
||||||
opt.keyserver_options.use_temp_files=1;
|
opt.keyserver_options.use_temp_files=1;
|
||||||
else if(ascii_strcasecmp(tok,"no-use-temp-files")==0)
|
else if(ascii_strcasecmp(tok,"no-use-temp-files")==0)
|
||||||
opt.keyserver_options.use_temp_files=0;
|
opt.keyserver_options.use_temp_files=0;
|
||||||
#endif
|
#endif
|
||||||
else if(ascii_strcasecmp(tok,"keep-temp-files")==0)
|
else if(strlen(tok)>0)
|
||||||
opt.keyserver_options.keep_temp_files=1;
|
add_to_strlist(&opt.keyserver_options.other,tok);
|
||||||
else if(ascii_strcasecmp(tok,"no-keep-temp-files")==0)
|
}
|
||||||
opt.keyserver_options.keep_temp_files=0;
|
|
||||||
else if(ascii_strcasecmp(tok,"verbose")==0)
|
|
||||||
opt.keyserver_options.verbose++;
|
|
||||||
else if(ascii_strcasecmp(tok,"no-verbose")==0)
|
|
||||||
opt.keyserver_options.verbose--;
|
|
||||||
else if(ascii_strcasecmp(tok,"honor-http-proxy")==0)
|
|
||||||
opt.keyserver_options.honor_http_proxy=1;
|
|
||||||
else if(ascii_strcasecmp(tok,"no-honor-http-proxy")==0)
|
|
||||||
opt.keyserver_options.honor_http_proxy=0;
|
|
||||||
else if(ascii_strcasecmp(tok,"refresh-add-fake-v3-keyids")==0)
|
|
||||||
opt.keyserver_options.refresh_add_fake_v3_keyids=1;
|
|
||||||
else if(ascii_strcasecmp(tok,"no-refresh-add-fake-v3-keyids")==0)
|
|
||||||
opt.keyserver_options.refresh_add_fake_v3_keyids=0;
|
|
||||||
else if(ascii_strcasecmp(tok,"auto-key-retrieve")==0)
|
|
||||||
opt.keyserver_options.auto_key_retrieve=1;
|
|
||||||
else if(ascii_strcasecmp(tok,"no-auto-key-retrieve")==0)
|
|
||||||
opt.keyserver_options.auto_key_retrieve=0;
|
|
||||||
else if(ascii_strcasecmp(tok,"broken-http-proxy")==0)
|
|
||||||
opt.keyserver_options.broken_http_proxy=1;
|
|
||||||
else if(ascii_strcasecmp(tok,"no-broken-http-proxy")==0)
|
|
||||||
opt.keyserver_options.broken_http_proxy=0;
|
|
||||||
else if(strlen(tok)>0)
|
|
||||||
add_to_strlist(&opt.keyserver_options.other,tok);
|
|
||||||
|
|
||||||
tok=strsep(&options," ,");
|
tok=strsep(&options," ,");
|
||||||
}
|
}
|
||||||
@ -117,9 +131,9 @@ parse_keyserver_uri(char *uri)
|
|||||||
if(ascii_strcasecmp(opt.keyserver_scheme,"x-broken-hkp")==0)
|
if(ascii_strcasecmp(opt.keyserver_scheme,"x-broken-hkp")==0)
|
||||||
{
|
{
|
||||||
log_info(_("WARNING: %s is a deprecated option.\n"),
|
log_info(_("WARNING: %s is a deprecated option.\n"),
|
||||||
"x-broken-hkp");
|
"x-broken-hkp");
|
||||||
log_info(_("please use \"--keyserver-options %s\" instead\n"),
|
log_info(_("please use \"--keyserver-options %s\" instead\n"),
|
||||||
"broken-http-proxy");
|
"broken-http-proxy");
|
||||||
opt.keyserver_scheme="hkp";
|
opt.keyserver_scheme="hkp";
|
||||||
opt.keyserver_options.broken_http_proxy=1;
|
opt.keyserver_options.broken_http_proxy=1;
|
||||||
}
|
}
|
||||||
@ -128,7 +142,7 @@ parse_keyserver_uri(char *uri)
|
|||||||
/* Canonicalize this to "hkp" so it works with both the internal
|
/* Canonicalize this to "hkp" so it works with both the internal
|
||||||
and external keyserver interface. */
|
and external keyserver interface. */
|
||||||
opt.keyserver_scheme="hkp";
|
opt.keyserver_scheme="hkp";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip the "//", if any */
|
/* Skip the "//", if any */
|
||||||
if(strlen(uri)>2 && uri[0]=='/' && uri[1]=='/')
|
if(strlen(uri)>2 && uri[0]=='/' && uri[1]=='/')
|
||||||
@ -290,6 +304,7 @@ keyserver_spawn(int action,STRLIST list,
|
|||||||
unsigned int maxlen=256,buflen;
|
unsigned int maxlen=256,buflen;
|
||||||
char *command=NULL,*searchstr=NULL;
|
char *command=NULL,*searchstr=NULL;
|
||||||
byte *line=NULL;
|
byte *line=NULL;
|
||||||
|
struct kopts *kopts;
|
||||||
struct exec_info *spawn;
|
struct exec_info *spawn;
|
||||||
|
|
||||||
#ifdef EXEC_TEMPFILE_ONLY
|
#ifdef EXEC_TEMPFILE_ONLY
|
||||||
@ -335,11 +350,9 @@ keyserver_spawn(int action,STRLIST list,
|
|||||||
|
|
||||||
/* Write options */
|
/* Write options */
|
||||||
|
|
||||||
fprintf(spawn->tochild,"OPTION %sinclude-revoked\n",
|
for(i=0,kopts=keyserver_opts;kopts[i].name;i++)
|
||||||
opt.keyserver_options.include_revoked?"":"no-");
|
if(*(kopts[i].flag) && kopts[i].tell)
|
||||||
|
fprintf(spawn->tochild,"OPTION %s\n",kopts[i].name);
|
||||||
fprintf(spawn->tochild,"OPTION %sinclude-disabled\n",
|
|
||||||
opt.keyserver_options.include_disabled?"":"no-");
|
|
||||||
|
|
||||||
for(i=0;i<opt.keyserver_options.verbose;i++)
|
for(i=0;i<opt.keyserver_options.verbose;i++)
|
||||||
fprintf(spawn->tochild,"OPTION verbose\n");
|
fprintf(spawn->tochild,"OPTION verbose\n");
|
||||||
@ -874,8 +887,7 @@ keyserver_refresh(STRLIST users)
|
|||||||
|
|
||||||
/* If refresh_add_fake_v3_keyids is on and it's a HKP or MAILTO
|
/* If refresh_add_fake_v3_keyids is on and it's a HKP or MAILTO
|
||||||
scheme, then enable fake v3 keyid generation. */
|
scheme, then enable fake v3 keyid generation. */
|
||||||
if(opt.keyserver_options.refresh_add_fake_v3_keyids &&
|
if(opt.keyserver_options.fake_v3_keyids && opt.keyserver_scheme &&
|
||||||
opt.keyserver_scheme &&
|
|
||||||
(ascii_strcasecmp(opt.keyserver_scheme,"hkp")==0 ||
|
(ascii_strcasecmp(opt.keyserver_scheme,"hkp")==0 ||
|
||||||
ascii_strcasecmp(opt.keyserver_scheme,"mailto")==0))
|
ascii_strcasecmp(opt.keyserver_scheme,"mailto")==0))
|
||||||
fakev3=1;
|
fakev3=1;
|
||||||
|
@ -117,14 +117,15 @@ struct {
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int verbose;
|
int verbose;
|
||||||
int include_revoked:1;
|
int include_revoked;
|
||||||
int include_disabled:1;
|
int include_disabled;
|
||||||
int use_temp_files:1;
|
int include_subkeys;
|
||||||
int keep_temp_files:1;
|
int honor_http_proxy;
|
||||||
int refresh_add_fake_v3_keyids:1;
|
int broken_http_proxy;
|
||||||
int auto_key_retrieve:1;
|
int use_temp_files;
|
||||||
int honor_http_proxy:1;
|
int keep_temp_files;
|
||||||
int broken_http_proxy:1;
|
int fake_v3_keyids;
|
||||||
|
int auto_key_retrieve;
|
||||||
STRLIST other;
|
STRLIST other;
|
||||||
} keyserver_options;
|
} keyserver_options;
|
||||||
int exec_disable;
|
int exec_disable;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user