diff options
| author | J08nY | 2018-01-14 15:26:30 +0100 |
|---|---|---|
| committer | J08nY | 2018-01-14 15:26:30 +0100 |
| commit | aeb322e1da26dcfc83762d9bc8df83667a22282a (patch) | |
| tree | 0f6bf39b9a162b851b1a125ec4217483bdd84e19 /src/cz/crcs/ectester/reader/CardMngr.java | |
| parent | 6b77638b9c82607b76a0a13a36b3c28418d772ba (diff) | |
| download | ECTester-aeb322e1da26dcfc83762d9bc8df83667a22282a.tar.gz ECTester-aeb322e1da26dcfc83762d9bc8df83667a22282a.tar.zst ECTester-aeb322e1da26dcfc83762d9bc8df83667a22282a.zip | |
Export CPLC data and card ATR in test suite outputs.
Diffstat (limited to 'src/cz/crcs/ectester/reader/CardMngr.java')
| -rw-r--r-- | src/cz/crcs/ectester/reader/CardMngr.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/cz/crcs/ectester/reader/CardMngr.java b/src/cz/crcs/ectester/reader/CardMngr.java index a959f2a..1e42c52 100644 --- a/src/cz/crcs/ectester/reader/CardMngr.java +++ b/src/cz/crcs/ectester/reader/CardMngr.java @@ -174,10 +174,10 @@ public class CardMngr { public byte[] fetchCPLC() throws CardException { // Try CPLC via GP - ResponseAPDU resp = sendAPDU(FETCH_GP_CPLC_APDU); + ResponseAPDU resp = send(FETCH_GP_CPLC_APDU); // If GP CLA fails, try with ISO if (resp.getSW() == (ISO7816.SW_CLA_NOT_SUPPORTED & 0xffff)) { - resp = sendAPDU(FETCH_ISO_CPLC_APDU); + resp = send(FETCH_ISO_CPLC_APDU); } if (resp.getSW() == (ISO7816.SW_NO_ERROR & 0xffff)) { return resp.getData(); @@ -207,10 +207,13 @@ public class CardMngr { ICPersonalizationEquipmentID } - private Map<Field, byte[]> values = new HashMap<>(); + private Map<Field, byte[]> values = new TreeMap<>(); public CPLC(byte[] data) { - if (data == null || data.length < 3 || data[2] != 0x2A) { + if (data == null) { + return; + } + if (data.length < 3 || data[2] != 0x2A) { throw new IllegalArgumentException("CPLC must be 0x2A bytes long"); } //offset = TLVUtils.skipTag(data, offset, (short)0x9F7F); @@ -263,7 +266,7 @@ public class CardMngr { return new CPLC(data); } - public String mapCPLCField(CPLC.Field field, byte[] value) { + public static String mapCPLCField(CPLC.Field field, byte[] value) { switch (field) { case ICFabricator: String id = ByteUtil.bytesToHex(value, false); @@ -289,6 +292,14 @@ public class CardMngr { } } + public ATR getATR() { + if (simulate) { + return new ATR(simulator.getATR()); + } else { + return card.getATR(); + } + } + public static List<CardTerminal> getReaderList() { try { TerminalFactory factory = TerminalFactory.getDefault(); |
