mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
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 <neal@g10code.com> GnuPG-bug-id: 806
This commit is contained in:
parent
1e94a672ef
commit
e16d7168c5
16 changed files with 145 additions and 53 deletions
|
@ -106,7 +106,7 @@ struct mainproc_context
|
|||
|
||||
|
||||
/*** Local prototypes. ***/
|
||||
static int do_proc_packets (CTX c, iobuf_t a);
|
||||
static int do_proc_packets (ctrl_t ctrl, CTX c, iobuf_t a);
|
||||
static void list_node (CTX c, kbnode_t node);
|
||||
static void proc_tree (CTX c, kbnode_t node);
|
||||
static int literals_seen;
|
||||
|
@ -366,7 +366,7 @@ proc_symkey_enc (CTX c, PACKET *pkt)
|
|||
|
||||
|
||||
static void
|
||||
proc_pubkey_enc (CTX c, PACKET *pkt)
|
||||
proc_pubkey_enc (ctrl_t ctrl, CTX c, PACKET *pkt)
|
||||
{
|
||||
PKT_pubkey_enc *enc;
|
||||
int result = 0;
|
||||
|
@ -428,7 +428,7 @@ proc_pubkey_enc (CTX c, PACKET *pkt)
|
|||
else
|
||||
{
|
||||
c->dek = xmalloc_secure_clear (sizeof *c->dek);
|
||||
if ((result = get_session_key (enc, c->dek)))
|
||||
if ((result = get_session_key (ctrl, enc, c->dek)))
|
||||
{
|
||||
/* Error: Delete the DEK. */
|
||||
xfree (c->dek);
|
||||
|
@ -1195,7 +1195,7 @@ proc_packets (ctrl_t ctrl, void *anchor, iobuf_t a )
|
|||
|
||||
c->ctrl = ctrl;
|
||||
c->anchor = anchor;
|
||||
rc = do_proc_packets (c, a);
|
||||
rc = do_proc_packets (ctrl, c, a);
|
||||
xfree (c);
|
||||
|
||||
return rc;
|
||||
|
@ -1218,7 +1218,7 @@ proc_signature_packets (ctrl_t ctrl, void *anchor, iobuf_t a,
|
|||
c->signed_data.used = !!signedfiles;
|
||||
|
||||
c->sigfilename = sigfilename;
|
||||
rc = do_proc_packets ( c, a );
|
||||
rc = do_proc_packets (ctrl, c, a);
|
||||
|
||||
/* If we have not encountered any signature we print an error
|
||||
messages, send a NODATA status back and return an error code.
|
||||
|
@ -1261,7 +1261,7 @@ proc_signature_packets_by_fd (ctrl_t ctrl,
|
|||
c->signed_data.data_names = NULL;
|
||||
c->signed_data.used = (signed_data_fd != -1);
|
||||
|
||||
rc = do_proc_packets ( c, a );
|
||||
rc = do_proc_packets (ctrl, c, a);
|
||||
|
||||
/* If we have not encountered any signature we print an error
|
||||
messages, send a NODATA status back and return an error code.
|
||||
|
@ -1294,7 +1294,7 @@ proc_encryption_packets (ctrl_t ctrl, void *anchor, iobuf_t a )
|
|||
c->ctrl = ctrl;
|
||||
c->anchor = anchor;
|
||||
c->encrypt_only = 1;
|
||||
rc = do_proc_packets (c, a);
|
||||
rc = do_proc_packets (ctrl, c, a);
|
||||
xfree (c);
|
||||
return rc;
|
||||
}
|
||||
|
@ -1320,7 +1320,7 @@ check_nesting (CTX c)
|
|||
|
||||
|
||||
static int
|
||||
do_proc_packets (CTX c, iobuf_t a)
|
||||
do_proc_packets (ctrl_t ctrl, CTX c, iobuf_t a)
|
||||
{
|
||||
PACKET *pkt;
|
||||
int rc = 0;
|
||||
|
@ -1352,7 +1352,7 @@ do_proc_packets (CTX c, iobuf_t a)
|
|||
{
|
||||
switch (pkt->pkttype)
|
||||
{
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (c, pkt); break;
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (ctrl, c, pkt); break;
|
||||
case PKT_SYMKEY_ENC: proc_symkey_enc (c, pkt); break;
|
||||
case PKT_ENCRYPTED:
|
||||
case PKT_ENCRYPTED_MDC: proc_encrypted (c, pkt); break;
|
||||
|
@ -1396,7 +1396,7 @@ do_proc_packets (CTX c, iobuf_t a)
|
|||
|
||||
case PKT_SIGNATURE: newpkt = add_signature (c, pkt); break;
|
||||
case PKT_SYMKEY_ENC: proc_symkey_enc (c, pkt); break;
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (c, pkt); break;
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (ctrl, c, pkt); break;
|
||||
case PKT_ENCRYPTED:
|
||||
case PKT_ENCRYPTED_MDC: proc_encrypted (c, pkt); break;
|
||||
case PKT_PLAINTEXT: proc_plaintext (c, pkt); break;
|
||||
|
@ -1422,7 +1422,7 @@ do_proc_packets (CTX c, iobuf_t a)
|
|||
break;
|
||||
case PKT_USER_ID: newpkt = add_user_id (c, pkt); break;
|
||||
case PKT_SIGNATURE: newpkt = add_signature (c, pkt); break;
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (c, pkt); break;
|
||||
case PKT_PUBKEY_ENC: proc_pubkey_enc (ctrl, c, pkt); break;
|
||||
case PKT_SYMKEY_ENC: proc_symkey_enc (c, pkt); break;
|
||||
case PKT_ENCRYPTED:
|
||||
case PKT_ENCRYPTED_MDC: proc_encrypted (c, pkt); break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue