1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-31 11:41:32 +01:00

gpg: Add --encrypt-to-default-key.

* g10/getkey.c (parse_def_secret_key): Drop the static qualifier and
export the function.
* g10/gpg.c (enum cmd_and_opt_values): Add value oEncryptToDefaultKey.
(opts): Handle oEncryptToDefaultKey.
(main): Likewise.
* g10/options.h (opt): Add field encrypt_to_default_key.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
GnuPG-bug-id: 807
This commit is contained in:
Neal H. Walfield 2015-11-03 23:39:46 +01:00
parent e16d7168c5
commit de9b234015
5 changed files with 30 additions and 1 deletions

View File

@ -1916,6 +1916,11 @@ recipients given either by use of @option{--recipient} or by the asked user id.
No trust checking is performed for these user ids and even disabled No trust checking is performed for these user ids and even disabled
keys can be used. keys can be used.
@item --encrypt-to-default-key
@opindex encrypt-to-default-key
If the default secret key is taken from @option{--default-key}, then
also encrypt to that key.
@item --no-encrypt-to @item --no-encrypt-to
@opindex no-encrypt-to @opindex no-encrypt-to
Disable the use of all @option{--encrypt-to} and Disable the use of all @option{--encrypt-to} and

View File

@ -1121,7 +1121,7 @@ get_pubkey_byfprint_fast (PKT_public_key * pk,
return 0; return 0;
} }
static const char * const char *
parse_def_secret_key (ctrl_t ctrl) parse_def_secret_key (ctrl_t ctrl)
{ {
KEYDB_HANDLE hd = NULL; KEYDB_HANDLE hd = NULL;

View File

@ -303,6 +303,7 @@ enum cmd_and_opt_values
oEncryptTo, oEncryptTo,
oHiddenEncryptTo, oHiddenEncryptTo,
oNoEncryptTo, oNoEncryptTo,
oEncryptToDefaultKey,
oLoggerFD, oLoggerFD,
oLoggerFile, oLoggerFile,
oUtf8Strings, oUtf8Strings,
@ -500,6 +501,7 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_s_s (oEncryptTo, "encrypt-to", "@"), ARGPARSE_s_s (oEncryptTo, "encrypt-to", "@"),
ARGPARSE_s_n (oNoEncryptTo, "no-encrypt-to", "@"), ARGPARSE_s_n (oNoEncryptTo, "no-encrypt-to", "@"),
ARGPARSE_s_s (oHiddenEncryptTo, "hidden-encrypt-to", "@"), ARGPARSE_s_s (oHiddenEncryptTo, "hidden-encrypt-to", "@"),
ARGPARSE_s_n (oEncryptToDefaultKey, "encrypt-to-default-key", "@"),
ARGPARSE_s_s (oLocalUser, "local-user", ARGPARSE_s_s (oLocalUser, "local-user",
N_("|USER-ID|use USER-ID to sign or decrypt")), N_("|USER-ID|use USER-ID to sign or decrypt")),
@ -2776,6 +2778,9 @@ main (int argc, char **argv)
sl = add_to_strlist2( &remusr, pargs.r.ret_str, utf8_strings ); sl = add_to_strlist2( &remusr, pargs.r.ret_str, utf8_strings );
sl->flags = 1|2; sl->flags = 1|2;
break; break;
case oEncryptToDefaultKey:
opt.encrypt_to_default_key = 1;
break;
case oRecipient: /* store the recipient */ case oRecipient: /* store the recipient */
add_to_strlist2( &remusr, pargs.r.ret_str, utf8_strings ); add_to_strlist2( &remusr, pargs.r.ret_str, utf8_strings );
any_explicit_recipient = 1; any_explicit_recipient = 1;
@ -3727,6 +3732,20 @@ main (int argc, char **argv)
break; break;
} }
if (opt.encrypt_to_default_key)
{
const char *default_key = parse_def_secret_key (ctrl);
if (default_key)
{
sl = add_to_strlist2 (&remusr, default_key, utf8_strings);
sl->flags = 1;
}
else if (opt.def_secret_key)
log_info (_("--encrypt-to-default-key specified, but no valid default keys specified.\n"));
else
log_info (_("--encrypt-to-default-key specified, but --default-key not specified.\n"));
}
/* The command dispatcher. */ /* The command dispatcher. */
switch( cmd ) switch( cmd )
{ {

View File

@ -582,6 +582,10 @@ int get_pubkey_byfprint_fast (PKT_public_key *pk,
with the specified key id. */ with the specified key id. */
int have_secret_key_with_kid (u32 *keyid); int have_secret_key_with_kid (u32 *keyid);
/* Parse the --default-key parameter. Returns the last key (in terms
of when the option is given) that is available. */
const char *parse_def_secret_key (ctrl_t ctrl);
/* Look up a secret key. /* Look up a secret key.
If PK is not NULL, the public key of the first result is returned If PK is not NULL, the public key of the first result is returned

View File

@ -175,6 +175,7 @@ struct
int no_mdc_warn; int no_mdc_warn;
char *temp_dir; char *temp_dir;
int no_encrypt_to; int no_encrypt_to;
int encrypt_to_default_key;
int interactive; int interactive;
struct notation *sig_notations; struct notation *sig_notations;
struct notation *cert_notations; struct notation *cert_notations;