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 raw_value: 1;
|
||||||
unsigned int is_pss: 1; /* DATA holds PSS formated data. */
|
unsigned int is_pss: 1; /* DATA holds PSS formated data. */
|
||||||
} digest;
|
} digest;
|
||||||
|
unsigned int have_keygrip: 1;
|
||||||
|
unsigned int have_keygrip1: 1;
|
||||||
unsigned char keygrip[20];
|
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
|
/* A flag to enable a hack to send the PKAUTH command instead of the
|
||||||
PKSIGN command to the scdaemon. */
|
PKSIGN command to the scdaemon. */
|
||||||
|
@ -241,7 +241,7 @@ reset_notify (assuan_context_t ctx, char *line)
|
|||||||
(void) line;
|
(void) line;
|
||||||
|
|
||||||
memset (ctrl->keygrip, 0, 20);
|
memset (ctrl->keygrip, 0, 20);
|
||||||
ctrl->have_keygrip = 0;
|
ctrl->have_keygrip = ctrl->have_keygrip1 = 0;
|
||||||
ctrl->digest.valuelen = 0;
|
ctrl->digest.valuelen = 0;
|
||||||
xfree (ctrl->digest.data);
|
xfree (ctrl->digest.data);
|
||||||
ctrl->digest.data = NULL;
|
ctrl->digest.data = NULL;
|
||||||
@ -796,8 +796,8 @@ cmd_havekey (assuan_context_t ctx, char *line)
|
|||||||
|
|
||||||
|
|
||||||
static const char hlp_sigkey[] =
|
static const char hlp_sigkey[] =
|
||||||
"SIGKEY <hexstring_with_keygrip>\n"
|
"SIGKEY [--another] <hexstring_with_keygrip>\n"
|
||||||
"SETKEY <hexstring_with_keygrip>\n"
|
"SETKEY [--another] <hexstring_with_keygrip>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Set the key used for a sign or decrypt operation.";
|
"Set the key used for a sign or decrypt operation.";
|
||||||
static gpg_error_t
|
static gpg_error_t
|
||||||
@ -805,11 +805,17 @@ cmd_sigkey (assuan_context_t ctx, char *line)
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
ctrl_t ctrl = assuan_get_pointer (ctx);
|
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)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
ctrl->have_keygrip = 1;
|
if (opt_another)
|
||||||
|
ctrl->have_keygrip1 = 1;
|
||||||
|
else
|
||||||
|
ctrl->have_keygrip = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user