mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
agent: Add --another option for hybrid crypto.
* agent/agent.h (struct server_control_s): Add have_keygrip1. * agent/command.c (reset_notify): Clear have_keygrip1 field. (cmd_havekey): Add --another option handling. -- Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
1fa24e2841
commit
c69363e8c7
@ -288,8 +288,11 @@ struct server_control_s
|
||||
unsigned int raw_value: 1;
|
||||
unsigned int is_pss: 1; /* DATA holds PSS formated data. */
|
||||
} digest;
|
||||
unsigned int have_keygrip: 1;
|
||||
unsigned int have_keygrip1: 1;
|
||||
unsigned char keygrip[20];
|
||||
int have_keygrip;
|
||||
unsigned char keygrip1[20]; /* Another keygrip for hybrid crypto. */
|
||||
|
||||
|
||||
/* A flag to enable a hack to send the PKAUTH command instead of the
|
||||
PKSIGN command to the scdaemon. */
|
||||
|
@ -241,7 +241,7 @@ reset_notify (assuan_context_t ctx, char *line)
|
||||
(void) line;
|
||||
|
||||
memset (ctrl->keygrip, 0, 20);
|
||||
ctrl->have_keygrip = 0;
|
||||
ctrl->have_keygrip = ctrl->have_keygrip1 = 0;
|
||||
ctrl->digest.valuelen = 0;
|
||||
xfree (ctrl->digest.data);
|
||||
ctrl->digest.data = NULL;
|
||||
@ -796,8 +796,8 @@ cmd_havekey (assuan_context_t ctx, char *line)
|
||||
|
||||
|
||||
static const char hlp_sigkey[] =
|
||||
"SIGKEY <hexstring_with_keygrip>\n"
|
||||
"SETKEY <hexstring_with_keygrip>\n"
|
||||
"SIGKEY [--another] <hexstring_with_keygrip>\n"
|
||||
"SETKEY [--another] <hexstring_with_keygrip>\n"
|
||||
"\n"
|
||||
"Set the key used for a sign or decrypt operation.";
|
||||
static gpg_error_t
|
||||
@ -805,10 +805,16 @@ cmd_sigkey (assuan_context_t ctx, char *line)
|
||||
{
|
||||
int rc;
|
||||
ctrl_t ctrl = assuan_get_pointer (ctx);
|
||||
int opt_another;
|
||||
|
||||
rc = parse_keygrip (ctx, line, ctrl->keygrip);
|
||||
opt_another = has_option (line, "--another");
|
||||
line = skip_options (line);
|
||||
rc = parse_keygrip (ctx, line, opt_another? ctrl->keygrip1 : ctrl->keygrip);
|
||||
if (rc)
|
||||
return rc;
|
||||
if (opt_another)
|
||||
ctrl->have_keygrip1 = 1;
|
||||
else
|
||||
ctrl->have_keygrip = 1;
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user