diff options
Diffstat (limited to 'g10/call-agent.c')
-rw-r--r-- | g10/call-agent.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c index 080df1867..cadc02c6f 100644 --- a/g10/call-agent.c +++ b/g10/call-agent.c @@ -639,9 +639,9 @@ learn_status_cb (void *opaque, const char *line) return 0; } -/* Call the agent to learn about a smartcard */ +/* Call the scdaemon to learn about a smartcard */ int -agent_learn (struct agent_card_info_s *info) +agent_scd_learn (struct agent_card_info_s *info) { int rc; struct default_inq_parm_s parm; @@ -677,6 +677,29 @@ agent_learn (struct agent_card_info_s *info) } +/* Call the agent to learn about the current smartcard. This is + currently only used to have the agent create the shadow key. */ +gpg_error_t +agent_learn (void) +{ + gpg_error_t err; + struct default_inq_parm_s parm; + + memset (&parm, 0, sizeof parm); + + err = start_agent (NULL, 1); + if (err) + return err; + + parm.ctx = agent_ctx; + err = assuan_transact (agent_ctx, "LEARN", + dummy_data_cb, NULL, default_inq_cb, &parm, + NULL, NULL); + + return err; +} + + int agent_keytocard (const char *hexgrip, int keyno, int force, const char *serialno, const char *timestamp) |