diff options
| author | J08nY | 2017-01-17 20:09:15 +0100 |
|---|---|---|
| committer | J08nY | 2017-01-17 20:09:15 +0100 |
| commit | e113197a41fc1961a9649cb3a96a18d7a9eab58f (patch) | |
| tree | 7ab393a53ee77ca81fc864a7d92b4bd609f2a7c1 /src/cz/crcs/ectester/reader/CardMngr.java | |
| parent | e1a560ca817e7f22ef22ae1716e931b273420f3b (diff) | |
| download | ECTester-e113197a41fc1961a9649cb3a96a18d7a9eab58f.tar.gz ECTester-e113197a41fc1961a9649cb3a96a18d7a9eab58f.tar.zst ECTester-e113197a41fc1961a9649cb3a96a18d7a9eab58f.zip | |
implemented ecdh testing reader side:
ectester -dh -fp -b 192
Diffstat (limited to 'src/cz/crcs/ectester/reader/CardMngr.java')
| -rw-r--r-- | src/cz/crcs/ectester/reader/CardMngr.java | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/src/cz/crcs/ectester/reader/CardMngr.java b/src/cz/crcs/ectester/reader/CardMngr.java index d7a5c5f..aab7da9 100644 --- a/src/cz/crcs/ectester/reader/CardMngr.java +++ b/src/cz/crcs/ectester/reader/CardMngr.java @@ -13,13 +13,13 @@ import javax.smartcardio.*; * @author Jan Jancar johny@neuromancer.sk */ public class CardMngr { - private CardTerminal m_terminal = null; - private CardChannel m_channel = null; - private Card m_card = null; + private CardTerminal terminal = null; + private CardChannel channel = null; + private Card card = null; // Simulator related attributes - private CAD m_cad = null; - private JavaxSmartCardInterface m_simulator = null; + private CAD cad = null; + private JavaxSmartCardInterface simulator = null; private boolean simulate = false; @@ -62,14 +62,14 @@ public class CardMngr { boolean cardFound = false; for (int i = 0; i < terminalList.size(); i++) { System.out.println(i + " : " + terminalList.get(i)); - m_terminal = terminalList.get(i); - if (m_terminal.isCardPresent()) { - m_card = m_terminal.connect("*"); - System.out.println("card: " + m_card); - m_channel = m_card.getBasicChannel(); + terminal = terminalList.get(i); + if (terminal.isCardPresent()) { + card = terminal.connect("*"); + System.out.println("card: " + card); + channel = card.getBasicChannel(); //reset the card - System.out.println(Util.bytesToHex(m_card.getATR().getBytes())); + System.out.println(Util.bytesToHex(card.getATR().getBytes())); cardFound = true; } @@ -89,7 +89,7 @@ public class CardMngr { return false; } else { if (terminalList.size() == 1) { - m_terminal = terminalList.get(0); // return first and only reader + terminal = terminalList.get(0); // return first and only reader } else { int terminalIndex = 1; // Let user select target terminal @@ -110,14 +110,14 @@ public class CardMngr { System.out.println(String.format("%d", answ)); answ--; // is starting with 0 // BUGBUG; verify allowed index range - m_terminal = terminalList.get(answ); + terminal = terminalList.get(answ); } } - if (m_terminal != null) { - m_card = m_terminal.connect("*"); - System.out.println("card: " + m_card); - m_channel = m_card.getBasicChannel(); + if (terminal != null) { + card = terminal.connect("*"); + System.out.println("card: " + card); + channel = card.getBasicChannel(); } return true; @@ -140,16 +140,16 @@ public class CardMngr { } public boolean connected() { - return simulate || m_card != null; + return simulate || card != null; } public void disconnectFromCard() throws CardException { if (simulate) return; - if (m_card != null) { - m_card.disconnect(false); - m_card = null; + if (card != null) { + card.disconnect(false); + card = null; } } @@ -217,7 +217,7 @@ public class CardMngr { long elapsed = -System.nanoTime(); - ResponseAPDU responseAPDU = m_channel.transmit(apdu); + ResponseAPDU responseAPDU = channel.transmit(apdu); elapsed += System.nanoTime(); @@ -229,7 +229,7 @@ public class CardMngr { (byte) 0xC0, (byte) 0x00, (byte) 0x00, responseAPDU.getSW1()); - responseAPDU = m_channel.transmit(apduToSend); + responseAPDU = channel.transmit(apduToSend); System.out.println(Util.bytesToHex(responseAPDU.getBytes())); } @@ -245,19 +245,19 @@ public class CardMngr { public boolean prepareLocalSimulatorApplet(byte[] appletAIDArray, byte[] installData, Class appletClass) { System.setProperty("com.licel.jcardsim.terminal.type", "2"); - m_cad = new CAD(System.getProperties()); - m_simulator = (JavaxSmartCardInterface) m_cad.getCardInterface(); + cad = new CAD(System.getProperties()); + simulator = (JavaxSmartCardInterface) cad.getCardInterface(); AID appletAID = new AID(appletAIDArray, (short) 0, (byte) appletAIDArray.length); - AID appletAIDRes = m_simulator.installApplet(appletAID, appletClass, installData, (short) 0, (byte) installData.length); - return m_simulator.selectApplet(appletAID); + AID appletAIDRes = simulator.installApplet(appletAID, appletClass, installData, (short) 0, (byte) installData.length); + return simulator.selectApplet(appletAID); } public ResponseAPDU sendAPDUSimulator(CommandAPDU apdu) { System.out.println(">>>>"); System.out.println(Util.bytesToHex(apdu.getBytes())); - ResponseAPDU response = m_simulator.transmitCommand(apdu); + ResponseAPDU response = simulator.transmitCommand(apdu); byte[] responseBytes = response.getBytes(); System.out.println(Util.bytesToHex(responseBytes)); @@ -286,4 +286,12 @@ public class CardMngr { return send(commandAPDU); } + public ResponseAPDU[] send(CommandAPDU... apdus) throws CardException { + ResponseAPDU[] result = new ResponseAPDU[apdus.length]; + for (int i = 0; i < apdus.length; i++) { + result[i] = send(apdus[i]); + } + return result; + } + } |
