aboutsummaryrefslogtreecommitdiffstats
path: root/agent/call-scd.c
diff options
context:
space:
mode:
Diffstat (limited to 'agent/call-scd.c')
-rw-r--r--agent/call-scd.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/agent/call-scd.c b/agent/call-scd.c
index 289b2d95a..ade7ef1b9 100644
--- a/agent/call-scd.c
+++ b/agent/call-scd.c
@@ -822,8 +822,8 @@ agent_card_pksign (ctrl_t ctrl,
const unsigned char *indata, size_t indatalen,
unsigned char **r_buf, size_t *r_buflen)
{
- int rc, i;
- char *p, line[ASSUAN_LINELENGTH];
+ int rc;
+ char line[ASSUAN_LINELENGTH];
membuf_t data;
struct inq_needpin_s inqparm;
@@ -835,10 +835,8 @@ agent_card_pksign (ctrl_t ctrl,
if (indatalen*2 + 50 > DIM(line))
return unlock_scd (ctrl, gpg_error (GPG_ERR_GENERAL));
- sprintf (line, "SETDATA ");
- p = line + strlen (line);
- for (i=0; i < indatalen ; i++, p += 2 )
- sprintf (p, "%02X", indata[i]);
+ bin2hex (indata, indatalen, stpcpy (line, "SETDATA "));
+
rc = assuan_transact (ctrl->scd_local->ctx, line,
NULL, NULL, NULL, NULL, NULL, NULL);
if (rc)