mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
sm: Show the usage flags when generating a key from a card.
* g10/call-agent.c (scd_keypairinfo_status_cb): Also store the usage flags. * sm/call-agent.c (scd_keypairinfo_status_cb): Ditto. * sm/certreqgen-ui.c (gpgsm_gencertreq_tty): Print the usage flags. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
e47524c34a
commit
9ed1aa56c4
@ -798,7 +798,22 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
|
||||
p++;
|
||||
while (*p && !spacep (p))
|
||||
p++;
|
||||
*p = 0;
|
||||
if (*p)
|
||||
{
|
||||
*p++ = 0;
|
||||
while (spacep (p))
|
||||
p++;
|
||||
while (*p && !spacep (p))
|
||||
{
|
||||
switch (*p++)
|
||||
{
|
||||
case 'c': sl->flags |= GCRY_PK_USAGE_CERT; break;
|
||||
case 's': sl->flags |= GCRY_PK_USAGE_SIGN; break;
|
||||
case 'e': sl->flags |= GCRY_PK_USAGE_ENCR; break;
|
||||
case 'a': sl->flags |= GCRY_PK_USAGE_AUTH; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -808,7 +823,8 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
|
||||
|
||||
/* Read the keypairinfo lines of the current card directly from
|
||||
* scdaemon. The list is returned as a string made up of the keygrip,
|
||||
* a space and the keyref. */
|
||||
* a space and the keyref. The flags of the string carry the usage
|
||||
* bits. */
|
||||
gpg_error_t
|
||||
agent_scd_keypairinfo (ctrl_t ctrl, strlist_t *r_list)
|
||||
{
|
||||
|
@ -785,9 +785,9 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
|
||||
{
|
||||
sl = append_to_strlist (listaddr, line);
|
||||
p = sl->d;
|
||||
/* Make sure that we only have two tokes so that future
|
||||
extensions of the format won't change the format expected by
|
||||
the caller. */
|
||||
/* Make sure that we only have two tokens so that future
|
||||
* extensions of the format won't change the format expected by
|
||||
* the caller. */
|
||||
while (*p && !spacep (p))
|
||||
p++;
|
||||
if (*p)
|
||||
@ -796,7 +796,22 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
|
||||
p++;
|
||||
while (*p && !spacep (p))
|
||||
p++;
|
||||
*p = 0;
|
||||
if (*p)
|
||||
{
|
||||
*p++ = 0;
|
||||
while (spacep (p))
|
||||
p++;
|
||||
while (*p && !spacep (p))
|
||||
{
|
||||
switch (*p++)
|
||||
{
|
||||
case 'c': sl->flags |= GCRY_PK_USAGE_CERT; break;
|
||||
case 's': sl->flags |= GCRY_PK_USAGE_SIGN; break;
|
||||
case 'e': sl->flags |= GCRY_PK_USAGE_ENCR; break;
|
||||
case 'a': sl->flags |= GCRY_PK_USAGE_AUTH; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -806,7 +821,7 @@ scd_keypairinfo_status_cb (void *opaque, const char *line)
|
||||
|
||||
/* Call the agent to read the keypairinfo lines of the current card.
|
||||
The list is returned as a string made up of the keygrip, a space
|
||||
and the keyid. */
|
||||
and the keyid. The flags of the string carry the usage bits. */
|
||||
int
|
||||
gpgsm_agent_scd_keypairinfo (ctrl_t ctrl, strlist_t *r_list)
|
||||
{
|
||||
|
@ -249,6 +249,7 @@ gpgsm_gencertreq_tty (ctrl_t ctrl, estream_t output_stream)
|
||||
gcry_sexp_t s_pkey;
|
||||
char *algostr = NULL;
|
||||
const char *keyref;
|
||||
int any = 0;
|
||||
|
||||
keyref = strchr (sl->d, ' ');
|
||||
if (keyref)
|
||||
@ -262,7 +263,28 @@ gpgsm_gencertreq_tty (ctrl_t ctrl, estream_t output_stream)
|
||||
}
|
||||
xfree (pkey);
|
||||
}
|
||||
tty_printf (" (%d) %s %s\n", count, sl->d, algostr);
|
||||
tty_printf (" (%d) %s %s", count, sl->d, algostr);
|
||||
if ((sl->flags & GCRY_PK_USAGE_CERT))
|
||||
{
|
||||
tty_printf ("%scert", any?",":" (");
|
||||
any = 1;
|
||||
}
|
||||
if ((sl->flags & GCRY_PK_USAGE_SIGN))
|
||||
{
|
||||
tty_printf ("%ssign", any?",":" (");
|
||||
any = 1;
|
||||
}
|
||||
if ((sl->flags & GCRY_PK_USAGE_AUTH))
|
||||
{
|
||||
tty_printf ("%sauth", any?",":" (");
|
||||
any = 1;
|
||||
}
|
||||
if ((sl->flags & GCRY_PK_USAGE_ENCR))
|
||||
{
|
||||
tty_printf ("%sencr", any?",":" (");
|
||||
any = 1;
|
||||
}
|
||||
tty_printf ("%s\n", any?")":"");
|
||||
xfree (algostr);
|
||||
}
|
||||
xfree (answer);
|
||||
|
Loading…
x
Reference in New Issue
Block a user