diff options
author | Neal H. Walfield <[email protected]> | 2015-11-03 22:15:27 +0000 |
---|---|---|
committer | Neal H. Walfield <[email protected]> | 2015-11-04 12:19:52 +0000 |
commit | e16d7168c54e5f7bc2f0037806ee4f730930eaf0 (patch) | |
tree | 8cf75fb29648d091e01533506d6377e645451123 /g10/sign.c | |
parent | scd: Fix error handling with libusb-compat library. (diff) | |
download | gnupg-e16d7168c54e5f7bc2f0037806ee4f730930eaf0.tar.gz gnupg-e16d7168c54e5f7bc2f0037806ee4f730930eaf0.zip |
gpg: Allow multiple --default-key options. Take the last available key.
* g10/getkey.c (parse_def_secret_key): New function.
(get_seckey_default): Add parameter ctrl. Update callers. Use
parse_def_secret_key to get the default secret key, if any.
(getkey_byname): Likewise.
(enum_secret_keys): Likewise.
* g10/options.h (opt): Change def_secret_key's type from a char * to a
strlist_t.
* g10/gpg.c (main): When processing --default-key, add the key to
OPT.DEF_SECRET_KEY.
* g10/gpgv.c (get_session_key): Add parameter ctrl. Update callers.
* g10/mainproc.c (proc_pubkey_enc): Likewise.
(do_proc_packets): Likewise.
* g10/pkclist.c (default_recipient): Likewise.
* g10/pubkey-enc.c (get_session_key): Likewise.
* g10/sign.c (clearsign_file): Likewise.
(sign_symencrypt_file): Likewise.
* g10/skclist.c (build_sk_list): Likewise.
* g10/test-stubs.c (get_session_key): Likewise.
--
Signed-off-by: Neal H. Walield <[email protected]>
GnuPG-bug-id: 806
Diffstat (limited to '')
-rw-r--r-- | g10/sign.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/g10/sign.c b/g10/sign.c index fadf4ccb5..baa0068f4 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -769,7 +769,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr, /* Note: In the old non-agent version the following call used to unprotect the secret key. This is now done on demand by the agent. */ - if( (rc = build_sk_list (locusr, &sk_list, PUBKEY_USAGE_SIG )) ) + if( (rc = build_sk_list (ctrl, locusr, &sk_list, PUBKEY_USAGE_SIG )) ) goto leave; if (encryptflag @@ -1057,7 +1057,8 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr, * make a clear signature. note that opt.armor is not needed */ int -clearsign_file( const char *fname, strlist_t locusr, const char *outfile ) +clearsign_file (ctrl_t ctrl, + const char *fname, strlist_t locusr, const char *outfile ) { armor_filter_context_t *afx; progress_filter_context_t *pfx; @@ -1080,7 +1081,7 @@ clearsign_file( const char *fname, strlist_t locusr, const char *outfile ) /* Note: In the old non-agent version the following call used to unprotect the secret key. This is now done on demand by the agent. */ - if( (rc=build_sk_list( locusr, &sk_list, PUBKEY_USAGE_SIG )) ) + if( (rc=build_sk_list (ctrl, locusr, &sk_list, PUBKEY_USAGE_SIG )) ) goto leave; /* prepare iobufs */ @@ -1191,7 +1192,7 @@ clearsign_file( const char *fname, strlist_t locusr, const char *outfile ) * FIXME: Far too much code is duplicated - revamp the whole file. */ int -sign_symencrypt_file (const char *fname, strlist_t locusr) +sign_symencrypt_file (ctrl_t ctrl, const char *fname, strlist_t locusr) { armor_filter_context_t *afx; progress_filter_context_t *pfx; @@ -1224,7 +1225,7 @@ sign_symencrypt_file (const char *fname, strlist_t locusr) /* Note: In the old non-agent version the following call used to unprotect the secret key. This is now done on demand by the agent. */ - rc = build_sk_list (locusr, &sk_list, PUBKEY_USAGE_SIG); + rc = build_sk_list (ctrl, locusr, &sk_list, PUBKEY_USAGE_SIG); if (rc) goto leave; |