diff options
author | Werner Koch <[email protected]> | 2019-02-05 13:48:49 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-02-05 14:01:45 +0000 |
commit | 3231ecdafd71ac47b734469b07170756979ede72 (patch) | |
tree | 223b0e777109729dd7f26f8334815d2457e3ca15 /tools/card-call-scd.c | |
parent | card: Implement non-interactive mode. (diff) | |
download | gnupg-3231ecdafd71ac47b734469b07170756979ede72.tar.gz gnupg-3231ecdafd71ac47b734469b07170756979ede72.zip |
scd: Allow standard keyref scheme for app-openpgp.
* scd/app-openpgp.c (do_change_pin): Allow prefixing the CHVNO with
"OPENPGP."
* tools/card-call-scd.c (scd_change_pin): Change API to use strings.
* tools/gpg-card-tool.c (cmd_passwd): Adjust for change.
(cmd_unblock): Ditto.
--
The generic keyref allows for better error detection in case a keyref
is send to a wrong card.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tools/card-call-scd.c')
-rw-r--r-- | tools/card-call-scd.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/tools/card-call-scd.c b/tools/card-call-scd.c index c51282f14..7add56daf 100644 --- a/tools/card-call-scd.c +++ b/tools/card-call-scd.c @@ -1368,28 +1368,23 @@ scd_cardlist (strlist_t *result) * 101: Set a new PIN and reset the retry counter * 102: For v1 cars: Same as 101. * For v2 cards: Set a new Reset Code. - * SERIALNO is not used. */ gpg_error_t -scd_change_pin (int chvno) +scd_change_pin (const char *pinref, int reset_mode) { gpg_error_t err; char line[ASSUAN_LINELENGTH]; - const char *reset = ""; struct default_inq_parm_s dfltparm; memset (&dfltparm, 0, sizeof dfltparm); - if (chvno >= 100) - reset = "--reset"; - chvno %= 100; - err = start_agent (0); if (err) return err; dfltparm.ctx = agent_ctx; - snprintf (line, sizeof line, "SCD PASSWD %s %d", reset, chvno); + snprintf (line, sizeof line, "SCD PASSWD%s %s", + reset_mode? " --reset":"", pinref); err = assuan_transact (agent_ctx, line, NULL, NULL, default_inq_cb, &dfltparm, |