From 239ec1a50524e2380d778956bbb75a539f468e2c Mon Sep 17 00:00:00 2001 From: tkellner Date: Mon, 2 Apr 2012 16:39:18 +0000 Subject: Case change git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@1056 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../smccstal/GetHardwareInfoRequestHandler.java | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetHardwareInfoRequestHandler.java (limited to 'smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetHardwareInfoRequestHandler.java') diff --git a/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetHardwareInfoRequestHandler.java b/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetHardwareInfoRequestHandler.java new file mode 100644 index 00000000..c3cb7df0 --- /dev/null +++ b/smccSTALExt/src/main/java/at/gv/egiz/bku/smccstal/GetHardwareInfoRequestHandler.java @@ -0,0 +1,99 @@ +/* + * Copyright 2011 by Graz University of Technology, Austria + * MOCCA has been developed by the E-Government Innovation Center EGIZ, a joint + * initiative of the Federal Chancellery Austria and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.bku.smccstal; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.gui.GetHardwareInfoGUIFacade; +import at.gv.egiz.smcc.SignatureCardException; +import at.gv.egiz.stal.STALRequest; +import at.gv.egiz.stal.STALResponse; +import at.gv.egiz.stal.ext.GetHardwareInfoRequest; +import at.gv.egiz.stal.ext.GetHardwareInfoResponse; + +/** +* +* @author Thomas Lenz +*/ + +public class GetHardwareInfoRequestHandler extends AbstractRequestHandler { + + private final Logger log = LoggerFactory.getLogger(GetHardwareInfoRequestHandler.class); + + @Override + public boolean requireCard() { + return true; + } + + @Override + public STALResponse handleRequest(STALRequest request) + throws InterruptedException { + + log.debug("handle a get-hardware info request"); + + if (request instanceof GetHardwareInfoRequest) { + + GetHardwareInfoGUIFacade gui = (GetHardwareInfoGUIFacade) this.gui; + + String terminal = card.getTerminalName(); + String smartcard = card.toString(); + String smartcard_ATR = toString(card.getCard().getATR().getBytes()); + + gui.showHardwareInfoDialog(this, "back", terminal, smartcard, smartcard_ATR); + + while (true) { + + waitForAction(); + + if ("back".equals(actionCommand)) { + log.debug("show hardware info response back."); + return new GetHardwareInfoResponse(); + + } else { + log.info("unknown command resolved."); + } + } + + } + return new GetHardwareInfoResponse(); + } + + private static String toString(byte[] b) { + StringBuffer sb = new StringBuffer(); + sb.append('['); + if (b != null && b.length > 0) { + sb.append(Integer.toHexString((b[0] & 240) >> 4)); + sb.append(Integer.toHexString(b[0] & 15)); + for (int i = 1; i < b.length; i++) { + sb.append((i % 32 == 0) ? '\n' : ':'); + sb.append(Integer.toHexString((b[i] & 240) >> 4)); + sb.append(Integer.toHexString(b[i] & 15)); + } + } + sb.append(']'); + return sb.toString(); + } + +} -- cgit v1.2.3