diff options
Diffstat (limited to 'g10/call-agent.c')
-rw-r--r-- | g10/call-agent.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c index c7f1c296a..a9d72719f 100644 --- a/g10/call-agent.c +++ b/g10/call-agent.c @@ -1097,6 +1097,16 @@ agent_scd_getattr (const char *name, struct agent_card_info_s *info) parm.ctx = agent_ctx; rc = assuan_transact (agent_ctx, line, NULL, NULL, default_inq_cb, &parm, learn_status_cb, info); + if (!rc && !strcmp (name, "KEY-FPR")) + { + /* Let the agent create the shadow keys if not yet done. */ + if (info->fpr1valid) + assuan_transact (agent_ctx, "READKEY --card --no-data -- $SIGNKEYID", + NULL, NULL, NULL, NULL, NULL, NULL); + if (info->fpr2valid) + assuan_transact (agent_ctx, "READKEY --card --no-data -- $ENCRKEYID", + NULL, NULL, NULL, NULL, NULL, NULL); + } return rc; } |