summaryrefslogtreecommitdiff
path: root/smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java')
-rw-r--r--smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java b/smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java
index 48331278..45b70ca6 100644
--- a/smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java
+++ b/smcc/src/main/java/at/gv/egiz/smcc/reader/PinpadCardReader.java
@@ -49,6 +49,7 @@ import at.gv.egiz.smcc.SignatureCardException;
import at.gv.egiz.smcc.TimeoutException;
import at.gv.egiz.smcc.VerifyAPDUSpec;
import at.gv.egiz.smcc.pin.gui.ModifyPINGUI;
+import at.gv.egiz.smcc.pin.gui.OverrulePinpadPINGUI;
import at.gv.egiz.smcc.pin.gui.PINGUI;
import at.gv.egiz.smcc.util.SMCCHelper;
@@ -597,6 +598,15 @@ public class PinpadCardReader extends DefaultCardReader {
byte[] s = createPINVerifyStructure(apduSpec, pinSpec);
Card icc = channel.getCard();
+ if (pinGUI instanceof OverrulePinpadPINGUI && (VERIFY || VERIFY_DIRECT)) {
+ if (((OverrulePinpadPINGUI) pinGUI).allowOverrulePinpad()) {
+ return super.verify(channel, apduSpec, pinGUI, pinSpec, retries);
+ } else {
+ log.debug("The User prohibited deactivation of the pinPad.");
+ throw new CancelledException();
+ }
+ }
+
if (VERIFY) {
boolean regain = dropExclusive(icc);
try {