summaryrefslogtreecommitdiff
path: root/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku
diff options
context:
space:
mode:
Diffstat (limited to 'mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku')
-rw-r--r--mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINGUI.java88
-rw-r--r--mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINProvider.java89
-rw-r--r--mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/CardMgmtRequestHandler.java177
-rw-r--r--mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetPINStatusException.java41
-rw-r--r--mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/PINManagementRequestHandler.java371
5 files changed, 0 insertions, 766 deletions
diff --git a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINGUI.java b/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINGUI.java
deleted file mode 100644
index 26a24609..00000000
--- a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINGUI.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package at.gv.egiz.bku.pin.gui;
-
-import at.gv.egiz.bku.gui.BKUGUIFacade;
-import at.gv.egiz.bku.gui.PINManagementGUIFacade;
-import at.gv.egiz.bku.gui.PINManagementGUIFacade.DIALOG;
-import at.gv.egiz.smcc.CancelledException;
-import at.gv.egiz.smcc.PINSpec;
-import at.gv.egiz.smcc.pin.gui.ModifyPINGUI;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class ManagementPINGUI extends ManagementPINProvider implements ModifyPINGUI {
-
- protected static final Log log = LogFactory.getLog(ManagementPINGUI.class);
-
- private boolean retry = false;
-
- public ManagementPINGUI(PINManagementGUIFacade gui, DIALOG type) {
- super(gui, type);
- }
-
- @Override
- public void modifyPINDirect(PINSpec spec, int retries)
- throws CancelledException, InterruptedException {
- gui.showModifyPINDirect(type, spec, (retry) ? retries : -1);
- retry = true;
- }
-
- @Override
- public void finishDirect() {
- gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT, BKUGUIFacade.MESSAGE_WAIT);
- }
-
- @Override
- public void enterCurrentPIN(PINSpec spec, int retries) {
- gui.showEnterCurrentPIN(type, spec, (retry) ? retries : -1);
- retry = true;
- }
-
- @Override
- public void enterNewPIN(PINSpec spec) {
- gui.showEnterNewPIN(type, spec);
- retry = true;
- }
-
- @Override
- public void confirmNewPIN(PINSpec spec) {
- gui.showConfirmNewPIN(type, spec);
- retry = true;
- }
-
-
- @Override
- public void validKeyPressed() {
- gui.validKeyPressed();
- }
-
- @Override
- public void correctionButtonPressed() {
- gui.correctionButtonPressed();
- }
-
- @Override
- public void allKeysCleared() {
- gui.allKeysCleared();
- }
-
- @Override
- public void finish() {
- gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT, BKUGUIFacade.MESSAGE_WAIT);
- }
-}
diff --git a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINProvider.java b/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINProvider.java
deleted file mode 100644
index 8d842d13..00000000
--- a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/pin/gui/ManagementPINProvider.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package at.gv.egiz.bku.pin.gui;
-
-import at.gv.egiz.bku.gui.BKUGUIFacade;
-import at.gv.egiz.bku.gui.PINManagementGUIFacade;
-import at.gv.egiz.smcc.CancelledException;
-import at.gv.egiz.smcc.PINSpec;
-import at.gv.egiz.smcc.pin.gui.ModifyPINProvider;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class ManagementPINProvider extends AbstractPINProvider implements ModifyPINProvider {
-
- protected static final Log log = LogFactory.getLog(ManagementPINProvider.class);
- protected PINManagementGUIFacade gui;
- protected PINManagementGUIFacade.DIALOG type;
- private boolean retry = false;
-
- public ManagementPINProvider(PINManagementGUIFacade gui, PINManagementGUIFacade.DIALOG type) {
- this.gui = gui;
- this.type = type;
- }
-
- @Override
- public char[] provideCurrentPIN(PINSpec spec, int retries)
- throws CancelledException, InterruptedException {
-
- gui.showPINDialog(type, spec, (retry) ? retries : -1,
- this, "change",
- this, "cancel");
-
- log.trace("[" + Thread.currentThread().getName() + "] wait for action");
- waitForAction();
- log.trace("[" + Thread.currentThread().getName() + "] received action " + action);
-
- gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT,
- BKUGUIFacade.MESSAGE_WAIT);
-
- if ("cancel".equals(action)) {
- throw new CancelledException(spec.getLocalizedName() +
- " entry cancelled");
- }
- retry = true;
- return gui.getOldPin();
- }
-
- @Override
- public char[] provideNewPIN(PINSpec spec)
- throws CancelledException, InterruptedException {
-
- char[] pin = gui.getPin();
- if (pin != null) {
- // change pin dialog also returns new pin
- return pin;
- }
-
- gui.showPINDialog(type, spec, -1,
- this, "activate",
- this, "cancel");
-
- log.trace("[" + Thread.currentThread().getName() + "] wait for action");
- waitForAction();
- log.trace("[" + Thread.currentThread().getName() + "] received action " + action);
-
- gui.showMessageDialog(BKUGUIFacade.TITLE_WAIT,
- BKUGUIFacade.MESSAGE_WAIT);
-
- if ("cancel".equals(action)) {
- throw new CancelledException(spec.getLocalizedName() +
- " entry cancelled");
- }
- return gui.getPin();
- }
-}
diff --git a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/CardMgmtRequestHandler.java b/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/CardMgmtRequestHandler.java
deleted file mode 100644
index 533206b3..00000000
--- a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/CardMgmtRequestHandler.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-* Copyright 2008 Federal Chancellery Austria and
-* Graz University of Technology
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-/**
- *
- */
-package at.gv.egiz.bku.smccstal;
-
-import at.gv.egiz.bku.gui.ActivationGUIFacade;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.smartcardio.Card;
-import javax.smartcardio.CardChannel;
-import javax.smartcardio.CardException;
-import javax.smartcardio.CommandAPDU;
-import javax.smartcardio.ResponseAPDU;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import at.gv.egiz.bku.smccstal.AbstractRequestHandler;
-import at.gv.egiz.smcc.SignatureCardException;
-import at.gv.egiz.stal.ErrorResponse;
-import at.gv.egiz.stal.STALRequest;
-import at.gv.egiz.stal.STALResponse;
-import at.gv.egiz.stal.ext.APDUScriptRequest;
-import at.gv.egiz.stal.ext.APDUScriptResponse;
-import at.gv.egiz.stal.ext.APDUScriptRequest.Command;
-import at.gv.egiz.stal.ext.APDUScriptRequest.RequestScriptElement;
-import at.gv.egiz.stal.ext.APDUScriptRequest.Reset;
-import at.gv.egiz.stal.ext.APDUScriptResponse.Response;
-import at.gv.egiz.stal.ext.APDUScriptResponse.ATR;
-import at.gv.egiz.stal.ext.APDUScriptResponse.ResponseScriptElement;
-import java.awt.event.ActionListener;
-
-/**
- * @author mcentner
- *
- */
-public class CardMgmtRequestHandler extends AbstractRequestHandler implements ActionListener {
-
- /**
- * Logging facility.
- */
- private static Log log = LogFactory.getLog(CardMgmtRequestHandler.class);
-
- /**
- * The sequence counter.
- */
- private int sequenceNum = 0;
-
- /**
- * display script num
- */
- private int currentActivationScript = 0;
-
- @Override
- public STALResponse handleRequest(STALRequest request)
- throws InterruptedException {
-
- // APDU Script Request
- if (request instanceof APDUScriptRequest) {
-
- currentActivationScript++;
- log.debug("handling APDU script " + currentActivationScript);
-
- Card icc = card.getCard();
-
- if (icc == null) {
- log.error("SignatureCard instance '" + card.getClass().getName() + "' does not support card management requests.");
- return new ErrorResponse(1000);
- }
-
- List<RequestScriptElement> script = ((APDUScriptRequest) request).getScript();
- ArrayList<ResponseScriptElement> responses = new ArrayList<ResponseScriptElement>(script.size());
-
- ((ActivationGUIFacade) gui).showActivationProgressDialog(currentActivationScript, script.size(), this, "cancel");
-
- try {
- log.trace("begin exclusive");
- icc.beginExclusive();
-
- for (RequestScriptElement scriptElement : script) {
- ((ActivationGUIFacade) gui).incrementProgress();
-
- if (scriptElement instanceof Command) {
- log.trace("handling APDU script element COMMAND");
- Command command = (Command) scriptElement;
- CommandAPDU commandAPDU = new CommandAPDU(command.getCommandAPDU());
-
- log.trace("get basicchannel");
- CardChannel channel = icc.getBasicChannel();
-
- sequenceNum = command.getSequence();
- log.debug("Transmit APDU (sequence=" + sequenceNum + ")");
- log.trace(commandAPDU.toString());
- ResponseAPDU responseAPDU = channel.transmit(commandAPDU);
- log.trace(responseAPDU.toString());
-
- byte[] sw = new byte[] {
- (byte) (0xFF & responseAPDU.getSW1()),
- (byte) (0xFF & responseAPDU.getSW2()) };
-
- responses.add(new Response(sequenceNum, responseAPDU.getData(), sw, 0));
-
- if (command.getExpectedSW() != null &&
- !Arrays.equals(sw, command.getExpectedSW())) {
- // unexpected SW
- log.warn("Got unexpected SW. APDU-script execution stopped.");
- break;
- }
-
- } else if (scriptElement instanceof Reset) {
-
- log.trace("handling APDU script element RESET");
- sequenceNum = 0;
- card.reset();
- javax.smartcardio.ATR atr = icc.getATR();
- log.trace("got ATR: " + atr.toString());
- responses.add(new ATR(atr.getBytes()));
-
- log.trace("regain exclusive access to card");
- icc = card.getCard();
- icc.beginExclusive();
- }
-
- }
-
- } catch (CardException e) {
- log.info("Failed to execute APDU script.", e);
- responses.add(new Response(sequenceNum, null, null, Response.RC_UNSPECIFIED));
- } catch (SignatureCardException e) {
- log.info("Failed to reset smart card.", e);
- responses.add(new Response(sequenceNum, null, null, Response.RC_UNSPECIFIED));
- } catch (RuntimeException e) {
- log.error(e);
- throw e;
- } finally {
- try {
- icc.endExclusive();
- } catch (CardException e) {
- log.info(e);
- }
- }
-
- log.trace("done handling APDU script " + currentActivationScript + ", return response containing " + responses.size() + " elements");
- ((ActivationGUIFacade) gui).showIdleDialog(this, "cancel");
- return new APDUScriptResponse(responses);
-
- } else {
- log.error("Got unexpected STAL request: " + request);
- return new ErrorResponse(1000);
- }
-
- }
-
- @Override
- public boolean requireCard() {
- return true;
- }
-
-}
diff --git a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetPINStatusException.java b/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetPINStatusException.java
deleted file mode 100644
index 66b15887..00000000
--- a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetPINStatusException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package at.gv.egiz.bku.smccstal;
-
-import at.gv.egiz.smcc.SignatureCardException;
-
-/**
- *
- * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
- */
-public class GetPINStatusException extends SignatureCardException {
-
- /**
- * Creates a new instance of <code>GetStatusException</code> without detail message.
- */
- public GetPINStatusException() {
- }
-
-
- /**
- * Constructs an instance of <code>GetStatusException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public GetPINStatusException(String msg) {
- super(msg);
- }
-}
diff --git a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/PINManagementRequestHandler.java b/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/PINManagementRequestHandler.java
deleted file mode 100644
index f87f43f7..00000000
--- a/mocca-1.2.11/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/PINManagementRequestHandler.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- * Copyright 2008 Federal Chancellery Austria and
- * Graz University of Technology
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package at.gv.egiz.bku.smccstal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import at.gv.egiz.bku.gui.BKUGUIFacade;
-import at.gv.egiz.bku.gui.PINManagementGUI;
-import at.gv.egiz.bku.gui.PINManagementGUIFacade;
-import at.gv.egiz.bku.gui.PINManagementGUIFacade.STATUS;
-import at.gv.egiz.bku.pin.gui.ManagementPINGUI;
-import at.gv.egiz.bku.pin.gui.VerifyPINGUI;
-import at.gv.egiz.smcc.CancelledException;
-import at.gv.egiz.smcc.LockedException;
-import at.gv.egiz.smcc.NotActivatedException;
-import at.gv.egiz.smcc.PINConfirmationException;
-import at.gv.egiz.smcc.PINFormatException;
-import at.gv.egiz.smcc.PINMgmtSignatureCard;
-import at.gv.egiz.smcc.PINOperationAbortedException;
-import at.gv.egiz.smcc.PINSpec;
-import at.gv.egiz.smcc.SignatureCardException;
-import at.gv.egiz.smcc.TimeoutException;
-import at.gv.egiz.smcc.PINMgmtSignatureCard.PIN_STATE;
-import at.gv.egiz.smcc.SignatureCard.KeyboxName;
-import at.gv.egiz.stal.ErrorResponse;
-import at.gv.egiz.stal.STALRequest;
-import at.gv.egiz.stal.STALResponse;
-import at.gv.egiz.stal.ext.PINManagementRequest;
-import at.gv.egiz.stal.ext.PINManagementResponse;
-
-/**
- *
- * @author Clemens Orthacker <clemens.orthacker@iaik.tugraz.at>
- */
-public class PINManagementRequestHandler extends AbstractRequestHandler {
-
- protected static final Log log = LogFactory.getLog(PINManagementRequestHandler.class);
-
- protected Map<PINSpec, STATUS> pinStates = new HashMap<PINSpec, STATUS>();
-
- @Override
- public STALResponse handleRequest(STALRequest request) throws InterruptedException {
- if (request instanceof PINManagementRequest) {
-
- PINManagementGUIFacade gui = (PINManagementGUIFacade) this.gui;
-
- PINSpec selectedPIN = null;
-
- try {
-
- if (card instanceof PINMgmtSignatureCard) {
-
- try {
- // check if activated
- card.getCertificate(KeyboxName.SECURE_SIGNATURE_KEYPAIR);
-
- // update all PIN states
- for (PINSpec pinSpec : ((PINMgmtSignatureCard) card).getPINSpecs()) {
- updatePINState(pinSpec, STATUS.UNKNOWN);
- }
-
- gui.showPINManagementDialog(pinStates, this, "activate_enterpin",
- "change_enterpin", "unblock_enterpuk", "verify_enterpin", this,
- "cancel");
-
- } catch (NotActivatedException ex) {
- log.error("pin management not allowed, card not activated");
- gui.showErrorDialog(PINManagementGUIFacade.ERR_CARD_NOTACTIVATED,
- null, this, "cancel");
- }
- } else {
-
- // card does not support PIN management
- gui.showErrorDialog(PINManagementGUIFacade.ERR_UNSUPPORTED_CARD,
- null, this, "cancel");
-
- }
-
- while (true) {
-
- waitForAction();
-
- if ("cancel".equals(actionCommand)) {
- log.debug("pin management cancel");
- return new PINManagementResponse();
- } else {
- selectedPIN = gui.getSelectedPINSpec();
-
- if (selectedPIN == null) {
- throw new NullPointerException("no PIN selected for activation/change");
- }
-
- try {
- if ("activate_enterpin".equals(actionCommand)) {
- activatePIN(selectedPIN);
- } else if ("change_enterpin".equals(actionCommand)) {
- changePIN(selectedPIN);
- } else if ("unblock_enterpuk".equals(actionCommand)) {
- unblockPIN(selectedPIN);
- } else if ("verify_enterpin".equals(actionCommand)) {
- verifyPIN(selectedPIN);
- }
- } catch (CancelledException ex) {
- log.trace("cancelled");
- } catch (TimeoutException ex) {
- log.error("Timeout during pin entry");
- gui.showMessageDialog(BKUGUIFacade.TITLE_ENTRY_TIMEOUT,
- BKUGUIFacade.ERR_PIN_TIMEOUT,
- new Object[] {selectedPIN.getLocalizedName()},
- BKUGUIFacade.BUTTON_OK, this, null);
- waitForAction();
- } catch (LockedException ex) {
- log.error(selectedPIN.getLocalizedName() + " locked");
- updatePINState(selectedPIN, STATUS.BLOCKED);
- gui.showErrorDialog(PINManagementGUIFacade.ERR_LOCKED,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
- } catch (NotActivatedException ex) {
- log.error(selectedPIN.getLocalizedName() + " not active");
- updatePINState(selectedPIN, STATUS.NOT_ACTIV);
- gui.showErrorDialog(PINManagementGUIFacade.ERR_NOT_ACTIVE,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
-
- // inner loop for pinConfirmation and pinFormat ex
-// } catch (PINConfirmationException ex) {
-// } catch (PINFormatException ex) {
-
- } catch (PINOperationAbortedException ex) {
- log.error("pin operation aborted without further details");
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_OPERATION_ABORTED,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
- }
- } // end if
-
- selectedPIN = null;
- gui.showPINManagementDialog(pinStates,
- this, "activate_enterpin", "change_enterpin", "unblock_enterpuk", "verify_enterpin",
- this, "cancel");
- } // end while
-
- } catch (GetPINStatusException ex) {
- String pin = (selectedPIN != null) ? selectedPIN.getLocalizedName() : "pin";
- log.error("failed to get " + pin + " status: " + ex.getMessage());
- gui.showErrorDialog(PINManagementGUIFacade.ERR_STATUS, null,
- this, "ok");
- waitForAction();
- return new ErrorResponse(1000);
- } catch (SignatureCardException ex) {
- log.error(ex.getMessage(), ex);
- gui.showErrorDialog(PINManagementGUIFacade.ERR_UNKNOWN, null,
- this, "ok");
- waitForAction();
- return new ErrorResponse(1000);
- }
- } else {
- log.error("Got unexpected STAL request: " + request);
- return new ErrorResponse(1000);
- }
- }
-
- private void activatePIN(PINSpec selectedPIN)
- throws InterruptedException, SignatureCardException, GetPINStatusException {
-
- log.info("activate " + selectedPIN.getLocalizedName());
- ManagementPINGUI pinGUI = new ManagementPINGUI((PINManagementGUIFacade) gui,
- PINManagementGUIFacade.DIALOG.ACTIVATE);
-
- boolean reentry;
- do {
- try {
- reentry = false;
- ((PINMgmtSignatureCard) card).activatePIN(selectedPIN, pinGUI);
- } catch (PINConfirmationException ex) {
- reentry = true;
- log.error("confirmation pin does not match new " + selectedPIN.getLocalizedName());
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_CONFIRMATION,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
- } catch (PINFormatException ex) {
- reentry = true;
- log.error("wrong format of new " + selectedPIN.getLocalizedName());
- String pinSize = String.valueOf(selectedPIN.getMinLength());
- if (selectedPIN.getMinLength() != selectedPIN.getMaxLength()) {
- pinSize += "-" + selectedPIN.getMaxLength();
- }
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_FORMAT,
- new Object[] {selectedPIN.getLocalizedName(), pinSize},
- this, null);
- waitForAction();
- }
- } while (reentry);
-
- updatePINState(selectedPIN, STATUS.ACTIV);
- gui.showMessageDialog(PINManagementGUIFacade.TITLE_ACTIVATE_SUCCESS,
- PINManagementGUIFacade.MESSAGE_ACTIVATE_SUCCESS,
- new Object[]{selectedPIN.getLocalizedName()},
- BKUGUIFacade.BUTTON_OK, this, "ok");
- waitForAction();
- }
-
- private void verifyPIN(PINSpec selectedPIN)
- throws InterruptedException, SignatureCardException, GetPINStatusException {
-
- log.info("verify " + selectedPIN.getLocalizedName());
- VerifyPINGUI pinGUI = new VerifyPINGUI(gui);
-
- boolean reentry;
- do {
- try {
- reentry = false;
- ((PINMgmtSignatureCard) card).verifyPIN(selectedPIN, pinGUI);
- } catch (PINFormatException ex) {
- reentry = true;
- log.error("wrong format of new " + selectedPIN.getLocalizedName());
- String pinSize = String.valueOf(selectedPIN.getMinLength());
- if (selectedPIN.getMinLength() != selectedPIN.getMaxLength()) {
- pinSize += "-" + selectedPIN.getMaxLength();
- }
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_FORMAT,
- new Object[] {selectedPIN.getLocalizedName(), pinSize},
- this, null);
- waitForAction();
- }
- } while (reentry);
-
- updatePINState(selectedPIN, STATUS.ACTIV);
- }
-
- private void changePIN(PINSpec selectedPIN)
- throws SignatureCardException, GetPINStatusException, InterruptedException {
-
- log.info("change " + selectedPIN.getLocalizedName());
- ManagementPINGUI pinGUI = new ManagementPINGUI((PINManagementGUIFacade) gui,
- PINManagementGUIFacade.DIALOG.CHANGE);
-
- boolean reentry;
- do {
- try {
- reentry = false;
- ((PINMgmtSignatureCard) card).changePIN(selectedPIN, pinGUI);
- } catch (PINConfirmationException ex) {
- reentry = true;
- log.error("confirmation pin does not match new " + selectedPIN.getLocalizedName());
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_CONFIRMATION,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
- } catch (PINFormatException ex) {
- reentry = true;
- log.error("wrong format of new " + selectedPIN.getLocalizedName());
- String pinSize = String.valueOf(selectedPIN.getMinLength());
- if (selectedPIN.getMinLength() != selectedPIN.getMaxLength()) {
- pinSize += "-" + selectedPIN.getMaxLength();
- }
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_FORMAT,
- new Object[] {selectedPIN.getLocalizedName(), pinSize},
- this, null);
- waitForAction();
- }
- } while (reentry);
-
- updatePINState(selectedPIN, STATUS.ACTIV);
- gui.showMessageDialog(PINManagementGUIFacade.TITLE_CHANGE_SUCCESS,
- PINManagementGUIFacade.MESSAGE_CHANGE_SUCCESS,
- new Object[]{selectedPIN.getLocalizedName()},
- BKUGUIFacade.BUTTON_OK, this, "ok");
- waitForAction();
- }
-
- private void unblockPIN(PINSpec selectedPIN)
- throws SignatureCardException, GetPINStatusException, InterruptedException {
-
- log.info("unblock " + selectedPIN.getLocalizedName());
- ManagementPINGUI pinGUI = new ManagementPINGUI((PINManagementGUIFacade) gui,
- PINManagementGUIFacade.DIALOG.UNBLOCK);
-
- boolean reentry;
- do {
- try {
- reentry = false;
- ((PINMgmtSignatureCard) card).unblockPIN(selectedPIN, pinGUI);
- } catch (PINConfirmationException ex) {
- reentry = true;
- log.error("confirmation pin does not match new " + selectedPIN.getLocalizedName());
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_CONFIRMATION,
- new Object[] {selectedPIN.getLocalizedName()},
- this, null);
- waitForAction();
- } catch (PINFormatException ex) {
- reentry = true;
- log.error("wrong format of new " + selectedPIN.getLocalizedName());
- String pinSize = String.valueOf(selectedPIN.getMinLength());
- if (selectedPIN.getMinLength() != selectedPIN.getMaxLength()) {
- pinSize += "-" + selectedPIN.getMaxLength();
- }
- gui.showErrorDialog(PINManagementGUIFacade.ERR_PIN_FORMAT,
- new Object[] {selectedPIN.getLocalizedName(), pinSize},
- this, null);
- waitForAction();
- }
- } while (reentry);
-
- updatePINState(selectedPIN, STATUS.ACTIV);
- gui.showMessageDialog(PINManagementGUIFacade.TITLE_UNBLOCK_SUCCESS,
- PINManagementGUIFacade.MESSAGE_UNBLOCK_SUCCESS,
- new Object[]{selectedPIN.getLocalizedName()},
- BKUGUIFacade.BUTTON_OK, this, "ok");
- waitForAction();
- }
-
- @Override
- public boolean requireCard() {
- return true;
- }
-
- /**
- * query status for STARCOS card,
- * assume provided status for ACOS card
- * @param pinSpec
- * @param status
- * @throws at.gv.egiz.smcc.SignatureCardException if query status fails
- */
- private void updatePINState(PINSpec pinSpec, STATUS status)
- throws GetPINStatusException {
-
- PINMgmtSignatureCard pmCard = ((PINMgmtSignatureCard) card);
- PIN_STATE pinState;
- try {
- pinState = pmCard.getPINState(pinSpec);
- } catch (SignatureCardException e) {
- String msg = "Failed to get PIN status for pin '"
- + pinSpec.getLocalizedName() + "'.";
- log.info(msg, e);
- throw new GetPINStatusException(msg);
- }
- if (pinState == PIN_STATE.ACTIV) {
- pinStates.put(pinSpec, STATUS.ACTIV);
- } else if (pinState == PIN_STATE.NOT_ACTIV) {
- pinStates.put(pinSpec, STATUS.NOT_ACTIV);
- } else if (pinState == PIN_STATE.BLOCKED) {
- pinStates.put(pinSpec, STATUS.BLOCKED);
- } else {
- pinStates.put(pinSpec, status);
- }
- }
-
-}