mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* agent.h (server_control_s): Add connection_fd field.
* command.c (start_command_handler): Init it here. * gpg-agent.c (agent_init_default_ctrl): and here. * call-scd.c: Add the CTRL arg to all functions calling start_scd and pass it to start_scd. Changed all callers (start_scd): Keep track of the current active connection. (agent_reset_scd): New. * command.c (start_command_handler): Call it here. * learncard.c (agent_handle_learn): Add arg CTRL; changed caller. (send_cert_back): Ditto.
This commit is contained in:
parent
e4587ba874
commit
b11106ebf0
7 changed files with 138 additions and 46 deletions
|
@ -81,7 +81,7 @@ ask_for_card (CTRL ctrl, const unsigned char *shadow_info, char **r_kid)
|
|||
|
||||
for (;;)
|
||||
{
|
||||
rc = agent_card_serialno (&serialno);
|
||||
rc = agent_card_serialno (ctrl, &serialno);
|
||||
if (!rc)
|
||||
{
|
||||
log_debug ("detected card with S/N %s\n", serialno);
|
||||
|
@ -108,6 +108,13 @@ ask_for_card (CTRL ctrl, const unsigned char *shadow_info, char **r_kid)
|
|||
|
||||
if (!rc)
|
||||
{
|
||||
/* We better reset the SCD now. This is kludge requred
|
||||
because the scdaemon is currently not always able to
|
||||
detect the presence of a card. With a fully working
|
||||
scdaemon this would not be required; i.e. the pkcs#15
|
||||
support does not require it becuase OpenSC correclty
|
||||
detects a present card. */
|
||||
agent_reset_scd (ctrl);
|
||||
if (asprintf (&desc,
|
||||
"%s:%%0A%%0A"
|
||||
" \"%.*s\"",
|
||||
|
@ -230,7 +237,7 @@ divert_pksign (CTRL ctrl,
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = agent_card_pksign (kid, getpin_cb, ctrl,
|
||||
rc = agent_card_pksign (ctrl, kid, getpin_cb, ctrl,
|
||||
data, ndata, &sigval, &siglen);
|
||||
if (!rc)
|
||||
*r_sig = sigval;
|
||||
|
@ -294,7 +301,7 @@ divert_pkdecrypt (CTRL ctrl,
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = agent_card_pkdecrypt (kid, getpin_cb, ctrl,
|
||||
rc = agent_card_pkdecrypt (ctrl, kid, getpin_cb, ctrl,
|
||||
ciphertext, ciphertextlen,
|
||||
&plaintext, &plaintextlen);
|
||||
if (!rc)
|
||||
|
@ -310,7 +317,7 @@ divert_pkdecrypt (CTRL ctrl,
|
|||
int
|
||||
divert_generic_cmd (CTRL ctrl, const char *cmdline, void *assuan_context)
|
||||
{
|
||||
return agent_card_scd (cmdline, getpin_cb, ctrl, assuan_context);
|
||||
return agent_card_scd (ctrl, cmdline, getpin_cb, ctrl, assuan_context);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue