From 8b36b030749e3fee42c2157420227481dd9da3ee Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 10 Oct 2003 15:45:11 +0000 Subject: (card_close): New. (agent_scd_change_pin): Implemented. --- g10/ChangeLog | 2 ++ g10/cardglue.c | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'g10') diff --git a/g10/ChangeLog b/g10/ChangeLog index f96e83190..165997611 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,6 +1,8 @@ 2003-10-10 Werner Koch * cardglue.c (card_close): New. + (agent_scd_change_pin): Implemented. + * ccid-driver.c (ccid_close_reader): New. * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader) (close_osc_reader, apdu_close_reader): New. Not all are properly diff --git a/g10/cardglue.c b/g10/cardglue.c index 1bd36b342..0cbb70336 100644 --- a/g10/cardglue.c +++ b/g10/cardglue.c @@ -664,7 +664,19 @@ agent_scd_pkdecrypt (const char *serialno, int agent_scd_change_pin (int chvno) { + APP app; + char chvnostr[20]; + int reset = 0; + + reset = (chvno >= 100); + chvno %= 100; + + app = current_app? current_app : open_card (); + if (!app) + return gpg_error (GPG_ERR_CARD); - return gpg_error (GPG_ERR_CARD); + sprintf (chvnostr, "%d", chvno); + return app->fnc.change_pin (app, NULL, chvnostr, reset, + pin_cb, NULL); } -- cgit v1.2.3