mirror of
git://git.gnupg.org/gnupg.git
synced 2024-06-05 23:07:49 +02:00
* options.h, main.h, g10.c (main), import.c (parse_import_options,
delete_inv_parts), keyserver.c (parse_keyserver_options): add new --import-options option. The only current flag is "allow-local-sigs". * g10.c (main): Don't disable MDC in pgp7 mode. * options.h, g10.c (main), keyserver.c (parse_keyserver_options): Remove old keyserver-option include-attributes now that there is an export-option for the same thing.
This commit is contained in:
parent
002f085c23
commit
125613737c
|
@ -1,5 +1,16 @@
|
||||||
2002-07-22 David Shaw <dshaw@jabberwocky.com>
|
2002-07-22 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* options.h, main.h, g10.c (main), import.c
|
||||||
|
(parse_import_options, delete_inv_parts), keyserver.c
|
||||||
|
(parse_keyserver_options): add new --import-options option. The
|
||||||
|
only current flag is "allow-local-sigs".
|
||||||
|
|
||||||
|
* g10.c (main): Don't disable MDC in pgp7 mode.
|
||||||
|
|
||||||
|
* options.h, g10.c (main), keyserver.c (parse_keyserver_options):
|
||||||
|
Remove old keyserver-option include-attributes now that there is
|
||||||
|
an export-option for the same thing.
|
||||||
|
|
||||||
* options.h, main.h, export.c (parse_export_options,
|
* options.h, main.h, export.c (parse_export_options,
|
||||||
do_export_stream), g10.c (main): add new --export-options option.
|
do_export_stream), g10.c (main): add new --export-options option.
|
||||||
Current flags are "include-non-rfc", "include-local-sigs",
|
Current flags are "include-non-rfc", "include-local-sigs",
|
||||||
|
|
23
g10/g10.c
23
g10/g10.c
|
@ -237,6 +237,7 @@ enum cmd_and_opt_values { aNull = 0,
|
||||||
oLockNever,
|
oLockNever,
|
||||||
oKeyServer,
|
oKeyServer,
|
||||||
oKeyServerOptions,
|
oKeyServerOptions,
|
||||||
|
oImportOptions,
|
||||||
oExportOptions,
|
oExportOptions,
|
||||||
oTempDir,
|
oTempDir,
|
||||||
oExecPath,
|
oExecPath,
|
||||||
|
@ -410,6 +411,7 @@ static ARGPARSE_OPTS opts[] = {
|
||||||
{ oDefaultKey, "default-key" ,2, N_("|NAME|use NAME as default secret key")},
|
{ oDefaultKey, "default-key" ,2, N_("|NAME|use NAME as default secret key")},
|
||||||
{ oKeyServer, "keyserver",2, N_("|HOST|use this keyserver to lookup keys")},
|
{ oKeyServer, "keyserver",2, N_("|HOST|use this keyserver to lookup keys")},
|
||||||
{ oKeyServerOptions, "keyserver-options",2,"@"},
|
{ oKeyServerOptions, "keyserver-options",2,"@"},
|
||||||
|
{ oImportOptions, "import-options",2,"@"},
|
||||||
{ oExportOptions, "export-options",2,"@"},
|
{ oExportOptions, "export-options",2,"@"},
|
||||||
{ oCharset, "charset" , 2, N_("|NAME|set terminal charset to NAME") },
|
{ oCharset, "charset" , 2, N_("|NAME|set terminal charset to NAME") },
|
||||||
{ oOptions, "options" , 2, N_("read options from file")},
|
{ oOptions, "options" , 2, N_("read options from file")},
|
||||||
|
@ -904,10 +906,11 @@ 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.import_options=IMPORT_DEFAULT;
|
||||||
opt.export_options=EXPORT_DEFAULT;
|
opt.export_options=EXPORT_DEFAULT;
|
||||||
|
opt.keyserver_options.import_options=IMPORT_DEFAULT;
|
||||||
opt.keyserver_options.export_options=EXPORT_DEFAULT;
|
opt.keyserver_options.export_options=EXPORT_DEFAULT;
|
||||||
opt.keyserver_options.include_subkeys=1;
|
opt.keyserver_options.include_subkeys=1;
|
||||||
opt.keyserver_options.include_attributes=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
|
||||||
|
@ -1335,6 +1338,16 @@ main( int argc, char **argv )
|
||||||
case oKeyServerOptions:
|
case oKeyServerOptions:
|
||||||
parse_keyserver_options(pargs.r.ret_str);
|
parse_keyserver_options(pargs.r.ret_str);
|
||||||
break;
|
break;
|
||||||
|
case oImportOptions:
|
||||||
|
if(!parse_import_options(pargs.r.ret_str,&opt.import_options))
|
||||||
|
{
|
||||||
|
if(configname)
|
||||||
|
log_error(_("%s:%d: invalid import options\n"),
|
||||||
|
configname,configlineno);
|
||||||
|
else
|
||||||
|
log_error(_("invalid import options\n"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case oExportOptions:
|
case oExportOptions:
|
||||||
if(!parse_export_options(pargs.r.ret_str,&opt.export_options))
|
if(!parse_export_options(pargs.r.ret_str,&opt.export_options))
|
||||||
{
|
{
|
||||||
|
@ -1591,13 +1604,17 @@ main( int argc, char **argv )
|
||||||
|
|
||||||
if(opt.pgp6 || opt.pgp7)
|
if(opt.pgp6 || opt.pgp7)
|
||||||
{
|
{
|
||||||
opt.force_mdc=0;
|
|
||||||
opt.disable_mdc=1;
|
|
||||||
opt.sk_comments=0;
|
opt.sk_comments=0;
|
||||||
opt.escape_from=1;
|
opt.escape_from=1;
|
||||||
opt.force_v3_sigs=1;
|
opt.force_v3_sigs=1;
|
||||||
opt.ask_sig_expire=0;
|
opt.ask_sig_expire=0;
|
||||||
opt.def_compress_algo=1;
|
opt.def_compress_algo=1;
|
||||||
|
|
||||||
|
if(opt.pgp6) /* pgp7 has MDC */
|
||||||
|
{
|
||||||
|
opt.force_mdc=0;
|
||||||
|
opt.disable_mdc=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
43
g10/import.c
43
g10/import.c
|
@ -81,6 +81,48 @@ static int merge_keysigs( KBNODE dst, KBNODE src, int *n_sigs,
|
||||||
const char *fname, u32 *keyid );
|
const char *fname, u32 *keyid );
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
parse_import_options(char *str,unsigned int *options)
|
||||||
|
{
|
||||||
|
char *tok;
|
||||||
|
int hit=0;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
char *name;
|
||||||
|
unsigned int bit;
|
||||||
|
} import_opts[]=
|
||||||
|
{
|
||||||
|
{"allow-local-sigs",IMPORT_ALLOW_LOCAL_SIGS},
|
||||||
|
{NULL,0}
|
||||||
|
};
|
||||||
|
|
||||||
|
while((tok=strsep(&str," ,")))
|
||||||
|
{
|
||||||
|
int i,rev=0;
|
||||||
|
|
||||||
|
if(ascii_memcasecmp("no-",tok,3)==0)
|
||||||
|
rev=1;
|
||||||
|
|
||||||
|
for(i=0;import_opts[i].name;i++)
|
||||||
|
{
|
||||||
|
if(ascii_strcasecmp(import_opts[i].name,tok)==0)
|
||||||
|
{
|
||||||
|
if(rev)
|
||||||
|
*options&=~import_opts[i].bit;
|
||||||
|
else
|
||||||
|
*options|=import_opts[i].bit;
|
||||||
|
hit=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!hit && !import_opts[i].name)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return hit;
|
||||||
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
import_new_stats_handle (void)
|
import_new_stats_handle (void)
|
||||||
{
|
{
|
||||||
|
@ -1039,6 +1081,7 @@ delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid )
|
||||||
delete_kbnode( node ); /* build_packet() can't handle this */
|
delete_kbnode( node ); /* build_packet() can't handle this */
|
||||||
else if( node->pkt->pkttype == PKT_SIGNATURE &&
|
else if( node->pkt->pkttype == PKT_SIGNATURE &&
|
||||||
!node->pkt->pkt.signature->flags.exportable &&
|
!node->pkt->pkt.signature->flags.exportable &&
|
||||||
|
!(opt.import_options&IMPORT_ALLOW_LOCAL_SIGS) &&
|
||||||
seckey_available( node->pkt->pkt.signature->keyid ) ) {
|
seckey_available( node->pkt->pkt.signature->keyid ) ) {
|
||||||
/* here we violate the rfc a bit by still allowing
|
/* here we violate the rfc a bit by still allowing
|
||||||
* to import non-exportable signature when we have the
|
* to import non-exportable signature when we have the
|
||||||
|
|
|
@ -54,7 +54,6 @@ struct kopts
|
||||||
{"include-revoked",1,&opt.keyserver_options.include_revoked},
|
{"include-revoked",1,&opt.keyserver_options.include_revoked},
|
||||||
{"include-disabled",1,&opt.keyserver_options.include_disabled},
|
{"include-disabled",1,&opt.keyserver_options.include_disabled},
|
||||||
{"include-subkeys",1,&opt.keyserver_options.include_subkeys},
|
{"include-subkeys",1,&opt.keyserver_options.include_subkeys},
|
||||||
{"include-attributes",0,&opt.keyserver_options.include_attributes},
|
|
||||||
{"keep-temp-files",0,&opt.keyserver_options.keep_temp_files},
|
{"keep-temp-files",0,&opt.keyserver_options.keep_temp_files},
|
||||||
{"honor-http-proxy",1,&opt.keyserver_options.honor_http_proxy},
|
{"honor-http-proxy",1,&opt.keyserver_options.honor_http_proxy},
|
||||||
{"broken-http-proxy",1,&opt.keyserver_options.broken_http_proxy},
|
{"broken-http-proxy",1,&opt.keyserver_options.broken_http_proxy},
|
||||||
|
@ -110,9 +109,12 @@ parse_keyserver_options(char *options)
|
||||||
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(!parse_export_options(tok,
|
else
|
||||||
&opt.keyserver_options.export_options))
|
if(!parse_import_options(tok,
|
||||||
add_to_strlist(&opt.keyserver_options.other,tok);
|
&opt.keyserver_options.import_options) &&
|
||||||
|
!parse_export_options(tok,
|
||||||
|
&opt.keyserver_options.export_options))
|
||||||
|
add_to_strlist(&opt.keyserver_options.other,tok);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
13
g10/main.h
13
g10/main.h
|
@ -150,6 +150,11 @@ KBNODE make_comment_node( const char *s );
|
||||||
KBNODE make_mpi_comment_node( const char *s, MPI a );
|
KBNODE make_mpi_comment_node( const char *s, MPI a );
|
||||||
|
|
||||||
/*-- import.c --*/
|
/*-- import.c --*/
|
||||||
|
/* 1, 4, and 8 are reserved so they match the EXPORT_* flags below */
|
||||||
|
#define IMPORT_ALLOW_LOCAL_SIGS 2
|
||||||
|
#define IMPORT_DEFAULT 0
|
||||||
|
|
||||||
|
int parse_import_options(char *str,unsigned int *options);
|
||||||
void import_keys( char **fnames, int nnames, int fast, void *stats_hd );
|
void import_keys( char **fnames, int nnames, int fast, void *stats_hd );
|
||||||
int import_keys_stream( IOBUF inp, int fast, void *stats_hd );
|
int import_keys_stream( IOBUF inp, int fast, void *stats_hd );
|
||||||
void *import_new_stats_handle (void);
|
void *import_new_stats_handle (void);
|
||||||
|
@ -159,11 +164,11 @@ void import_print_stats (void *hd);
|
||||||
int collapse_uids( KBNODE *keyblock );
|
int collapse_uids( KBNODE *keyblock );
|
||||||
|
|
||||||
/*-- export.c --*/
|
/*-- export.c --*/
|
||||||
#define EXPORT_INCLUDE_NON_RFC 1
|
#define EXPORT_INCLUDE_NON_RFC 1
|
||||||
#define EXPORT_INCLUDE_LOCAL_SIGS 2
|
#define EXPORT_INCLUDE_LOCAL_SIGS 2
|
||||||
#define EXPORT_INCLUDE_ATTRIBUTES 4
|
#define EXPORT_INCLUDE_ATTRIBUTES 4
|
||||||
#define EXPORT_INCLUDE_SENSITIVE_REVKEYS 8
|
#define EXPORT_INCLUDE_SENSITIVE_REVKEYS 8
|
||||||
#define EXPORT_DEFAULT (1|4)
|
#define EXPORT_DEFAULT (1|4)
|
||||||
|
|
||||||
int parse_export_options(char *str,unsigned int *options);
|
int parse_export_options(char *str,unsigned int *options);
|
||||||
int export_pubkeys( STRLIST users, unsigned int options );
|
int export_pubkeys( STRLIST users, unsigned int options );
|
||||||
|
|
|
@ -122,17 +122,18 @@ struct {
|
||||||
int include_revoked;
|
int include_revoked;
|
||||||
int include_disabled;
|
int include_disabled;
|
||||||
int include_subkeys;
|
int include_subkeys;
|
||||||
int include_attributes;
|
|
||||||
int honor_http_proxy;
|
int honor_http_proxy;
|
||||||
int broken_http_proxy;
|
int broken_http_proxy;
|
||||||
int use_temp_files;
|
int use_temp_files;
|
||||||
int keep_temp_files;
|
int keep_temp_files;
|
||||||
int fake_v3_keyids;
|
int fake_v3_keyids;
|
||||||
int auto_key_retrieve;
|
int auto_key_retrieve;
|
||||||
|
unsigned int import_options;
|
||||||
unsigned int export_options;
|
unsigned int export_options;
|
||||||
STRLIST other;
|
STRLIST other;
|
||||||
} keyserver_options;
|
} keyserver_options;
|
||||||
int exec_disable;
|
int exec_disable;
|
||||||
|
unsigned int import_options;
|
||||||
unsigned int export_options;
|
unsigned int export_options;
|
||||||
char *def_preference_list;
|
char *def_preference_list;
|
||||||
prefitem_t *personal_cipher_prefs,
|
prefitem_t *personal_cipher_prefs,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user