aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/reader/CardMngr.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cz/crcs/ectester/reader/CardMngr.java')
-rw-r--r--src/cz/crcs/ectester/reader/CardMngr.java34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/cz/crcs/ectester/reader/CardMngr.java b/src/cz/crcs/ectester/reader/CardMngr.java
index 87384c3..0a01d9e 100644
--- a/src/cz/crcs/ectester/reader/CardMngr.java
+++ b/src/cz/crcs/ectester/reader/CardMngr.java
@@ -8,7 +8,6 @@ import javacard.framework.ISO7816;
import javax.smartcardio.*;
import java.util.*;
-import java.util.function.Function;
/**
* @author Petr Svenda petr@svenda.com
@@ -184,6 +183,18 @@ public class CardMngr {
chunking = state;
}
+ public String getProtocol() {
+ if (simulate) {
+ return simulator.getProtocol();
+ } else {
+ if (card != null) {
+ return card.getProtocol();
+ } else {
+ return null;
+ }
+ }
+ }
+
// Functions for CPLC taken and modified from https://github.com/martinpaljak/GlobalPlatformPro
private static final byte CLA_GP = (byte) 0x80;
private static final byte ISO7816_INS_GET_DATA = (byte) 0xCA;
@@ -280,6 +291,18 @@ public class CardMngr {
}
}
+ public ATR getATR() {
+ if (simulate) {
+ return new ATR(simulator.getATR());
+ } else {
+ if (card != null) {
+ return card.getATR();
+ } else {
+ return null;
+ }
+ }
+ }
+
public CPLC getCPLC() throws CardException {
byte[] data = fetchCPLC();
return new CPLC(data);
@@ -311,13 +334,6 @@ public class CardMngr {
}
}
- public ATR getATR() {
- if (simulate) {
- return new ATR(simulator.getATR());
- } else {
- return card.getATR();
- }
- }
public static List<CardTerminal> getReaderList() {
try {
@@ -336,7 +352,7 @@ public class CardMngr {
byte[] data = apdu.getBytes();
int numChunks = (data.length + 254) / 255;
for (int i = 0; i < numChunks; ++i) {
- int chunkStart = i *255;
+ int chunkStart = i * 255;
int chunkLength = 255;
if (chunkStart + chunkLength > data.length) {
chunkLength = data.length - chunkStart;