diff options
Diffstat (limited to 'scd/app-openpgp.c')
-rw-r--r-- | scd/app-openpgp.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index 767f29d26..4f76caac3 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -4296,7 +4296,8 @@ check_against_given_fingerprint (app_t app, const char *fpr, int key) KEYIDSTR is either: (1) Serial number (2) Serial number "/" fingerprint - (3) keygrip + (3) Serial number "[CHV3]" + (4) keygrip When KEYNO is 0 and KEYIDSTR is for a keygrip, the keygrip should be to be compared is the first one (keygrip for signing). @@ -4335,8 +4336,6 @@ check_keyidstr (app_t app, const char *keyidstr, int keyno) ; /* no fingerprint given: we allow this for now. */ else if (*s == '/') fpr = s + 1; - else - return gpg_error (GPG_ERR_INV_ID); for (s=keyidstr, n=0; n < 16; s += 2, n++) tmp_sn[n] = xtoi_2 (s); @@ -5229,6 +5228,12 @@ do_reselect (app_t app, ctrl_t ctrl) * a special flag value. */ err = iso7816_select_application (app_get_slot (app), openpgp_aid, sizeof openpgp_aid, 0x0001); + if (!err) + { + app->did_chv1 = 0; + app->did_chv2 = 0; + app->did_chv3 = 0; + } return err; } |