scd: Return GPG_ERR_BAD_PIN on 0x63Cn status word.

* scd/iso7816.c (map_sw): Detect 0x63Cn status code.
--

I really wonder when that got lost and we ended up with a simple card
error.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2020-04-07 19:09:10 +02:00
parent 60d018f6a9
commit f28795b615
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
2 changed files with 4 additions and 0 deletions

View File

@ -78,6 +78,8 @@ g10/cipher-aead.c
kbx/kbxutil.c
scd/app-piv.c
scd/app-p15.c
scd/app-nks.c
scd/app-openpgp.c
scd/app-dinsig.c

View File

@ -94,6 +94,8 @@ map_sw (int sw)
ec = GPG_ERR_GENERAL; /* Should not happen. */
else if ((sw & 0xff00) == SW_MORE_DATA)
ec = 0; /* This should actually never been seen here. */
else if ((sw & 0xfff0) == 0x63C0)
ec = GPG_ERR_BAD_PIN;
else
ec = GPG_ERR_CARD;
}