diff options
author | Neal H. Walfield <[email protected]> | 2015-11-03 22:39:46 +0000 |
---|---|---|
committer | Neal H. Walfield <[email protected]> | 2015-11-04 12:19:54 +0000 |
commit | de9b2340153d70b083494d1a277a384dcf43bff0 (patch) | |
tree | 68bf97eb4328f45b0401b30962c6041985de9800 | |
parent | gpg: Allow multiple --default-key options. Take the last available key. (diff) | |
download | gnupg-de9b2340153d70b083494d1a277a384dcf43bff0.tar.gz gnupg-de9b2340153d70b083494d1a277a384dcf43bff0.zip |
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 <[email protected]>
GnuPG-bug-id: 807
Diffstat (limited to '')
-rw-r--r-- | doc/gpg.texi | 5 | ||||
-rw-r--r-- | g10/getkey.c | 2 | ||||
-rw-r--r-- | g10/gpg.c | 19 | ||||
-rw-r--r-- | g10/keydb.h | 4 | ||||
-rw-r--r-- | g10/options.h | 1 |
5 files changed, 30 insertions, 1 deletions
diff --git a/doc/gpg.texi b/doc/gpg.texi index efbeef206..246b441bd 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -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 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 @opindex no-encrypt-to Disable the use of all @option{--encrypt-to} and diff --git a/g10/getkey.c b/g10/getkey.c index d3ce7d23f..b4086a270 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -1121,7 +1121,7 @@ get_pubkey_byfprint_fast (PKT_public_key * pk, return 0; } -static const char * +const char * parse_def_secret_key (ctrl_t ctrl) { KEYDB_HANDLE hd = NULL; @@ -303,6 +303,7 @@ enum cmd_and_opt_values oEncryptTo, oHiddenEncryptTo, oNoEncryptTo, + oEncryptToDefaultKey, oLoggerFD, oLoggerFile, oUtf8Strings, @@ -500,6 +501,7 @@ static ARGPARSE_OPTS opts[] = { ARGPARSE_s_s (oEncryptTo, "encrypt-to", "@"), ARGPARSE_s_n (oNoEncryptTo, "no-encrypt-to", "@"), ARGPARSE_s_s (oHiddenEncryptTo, "hidden-encrypt-to", "@"), + ARGPARSE_s_n (oEncryptToDefaultKey, "encrypt-to-default-key", "@"), ARGPARSE_s_s (oLocalUser, "local-user", 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->flags = 1|2; break; + case oEncryptToDefaultKey: + opt.encrypt_to_default_key = 1; + break; case oRecipient: /* store the recipient */ add_to_strlist2( &remusr, pargs.r.ret_str, utf8_strings ); any_explicit_recipient = 1; @@ -3727,6 +3732,20 @@ main (int argc, char **argv) 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. */ switch( cmd ) { diff --git a/g10/keydb.h b/g10/keydb.h index 7d14fb8a0..76136c156 100644 --- a/g10/keydb.h +++ b/g10/keydb.h @@ -582,6 +582,10 @@ int get_pubkey_byfprint_fast (PKT_public_key *pk, with the specified key id. */ 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. If PK is not NULL, the public key of the first result is returned diff --git a/g10/options.h b/g10/options.h index 7485985e8..bc92dd746 100644 --- a/g10/options.h +++ b/g10/options.h @@ -175,6 +175,7 @@ struct int no_mdc_warn; char *temp_dir; int no_encrypt_to; + int encrypt_to_default_key; int interactive; struct notation *sig_notations; struct notation *cert_notations; |