1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

gpg: Let --card--status create a shadow key (card key stub).

* agent/command.c (cmd_learn): Add option --sendinfo.
* agent/learncard.c (agent_handle_learn): Add arg "send" andsend
certifciate only if that is set.
* g10/call-agent.c (agent_scd_learn): Use --sendinfo.  Make INFO
optional.
(agent_learn): Remove.
* g10/keygen.c (gen_card_key): Replace agent_learn by agent_scd_learn.
--

The requirement of using --card-status on the first use of card on a
new box is a bit annoying but the alternative of always checking
whether a card is available before a decryption starts does not sound
promising either.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2014-12-12 12:35:45 +01:00
parent 193815030d
commit f3f9f9b284
6 changed files with 26 additions and 40 deletions

View file

@ -1619,21 +1619,26 @@ cmd_get_confirmation (assuan_context_t ctx, char *line)
static const char hlp_learn[] =
"LEARN [--send]\n"
"LEARN [--send][--sendinfo]\n"
"\n"
"Learn something about the currently inserted smartcard. With\n"
"--send the new certificates are send back.";
"--sendinfo information about the card is returned; with --send\n"
"the available certificates are returned as D lines.";
static gpg_error_t
cmd_learn (assuan_context_t ctx, char *line)
{
ctrl_t ctrl = assuan_get_pointer (ctx);
int rc;
gpg_error_t err;
int send, sendinfo;
send = has_option (line, "--send");
sendinfo = send? 1 : has_option (line, "--sendinfo");
if (ctrl->restricted)
return leave_cmd (ctx, gpg_error (GPG_ERR_FORBIDDEN));
rc = agent_handle_learn (ctrl, has_option (line, "--send")? ctx : NULL);
return leave_cmd (ctx, rc);
err = agent_handle_learn (ctrl, send, sendinfo? ctx : NULL);
return leave_cmd (ctx, err);
}