aboutsummaryrefslogtreecommitdiffstats
path: root/g10/call-agent.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2003-10-21 17:12:21 +0000
committerWerner Koch <[email protected]>2003-10-21 17:12:21 +0000
commit99277d21c190965d1b7c95b895324f467413f0f1 (patch)
tree0661e364862d55933dfa45ee8a09db37a7f898b7 /g10/call-agent.c
parent(PRINTABLE_OS_NAME): Remove special case for The (diff)
downloadgnupg-99277d21c190965d1b7c95b895324f467413f0f1.tar.gz
gnupg-99277d21c190965d1b7c95b895324f467413f0f1.zip
* card-util.c (card_edit): New command "passwd". Add logic to
check the PIN in advance. (card_status): Add new args to return the serial number. Changed all callers. * call-agent.c (agent_scd_checkpin): New.
Diffstat (limited to 'g10/call-agent.c')
-rw-r--r--g10/call-agent.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c
index c6c8faaec..9ca127c3c 100644
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -869,3 +869,25 @@ agent_scd_change_pin (int chvno)
return map_assuan_err (rc);
}
+
+/* Perform a CHECKPIN operation. SERIALNO should be the seriial
+ number of the card - optioanlly followed by the fingerprint;
+ however the fingerprint is ignored here. */
+int
+agent_scd_checkpin (const char *serialno)
+{
+ int rc;
+ char line[ASSUAN_LINELENGTH];
+
+ rc = start_agent ();
+ if (rc)
+ return rc;
+
+ snprintf (line, DIM(line)-1, "SCD CHECKPIN %s", serialno);
+ line[DIM(line)-1] = 0;
+ return assuan_transact (agent_ctx, line,
+ NULL, NULL,
+ NULL, NULL, NULL, NULL);
+}
+
+