Handle SELECT verification properly

This commit is contained in:
Manuel Thalmann 2023-11-03 02:01:21 +01:00
parent 5b86053977
commit 6febd85ddc

View file

@ -53,15 +53,6 @@ public class MyApplet extends Applet {
register(); register();
} }
public boolean select() {
if (pin.getTriesRemaining() == 0) {
ISOException.throwIt(SW_VERIFICATION_FAILED);
return false;
} else {
return super.select();
}
}
public void deselect() { public void deselect() {
super.deselect(); super.deselect();
pin.reset(); pin.reset();
@ -78,7 +69,11 @@ public class MyApplet extends Applet {
byte[] buffer = apdu.getBuffer(); byte[] buffer = apdu.getBuffer();
if (selectingApplet()) { if (selectingApplet()) {
if (pin.getTriesRemaining() == 0) {
ISOException.throwIt(SW_VERIFICATION_FAILED);
} else {
ISOException.throwIt(ISO7816.SW_NO_ERROR); ISOException.throwIt(ISO7816.SW_NO_ERROR);
}
} else { } else {
if (buffer[ISO7816.OFFSET_CLA] != (byte)0x80) { if (buffer[ISO7816.OFFSET_CLA] != (byte)0x80) {
ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED); ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);