summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJ08nY2017-04-04 23:25:20 +0200
committerJ08nY2017-04-04 23:25:20 +0200
commit45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f (patch)
tree835d98c294bdc26d8bb3d628b54ba63e06c194d8 /src
parent2af338ffb8b81915ad1fb08d5b030374ae6be1dd (diff)
downloadECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.tar.gz
ECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.tar.zst
ECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.zip
Diffstat (limited to 'src')
-rw-r--r--src/cz/crcs/ectester/reader/Command.java29
-rw-r--r--src/cz/crcs/ectester/reader/ECTester.java27
-rw-r--r--src/cz/crcs/ectester/reader/Response.java2
-rw-r--r--src/cz/crcs/ectester/reader/ec/EC_Curve.java5
-rw-r--r--src/cz/crcs/ectester/reader/ec/EC_Data.java4
-rw-r--r--src/cz/crcs/ectester/reader/ec/EC_KAResult.java8
-rw-r--r--src/cz/crcs/ectester/reader/ec/EC_Key.java9
-rw-r--r--src/cz/crcs/ectester/reader/ec/EC_Keypair.java5
8 files changed, 65 insertions, 24 deletions
diff --git a/src/cz/crcs/ectester/reader/Command.java b/src/cz/crcs/ectester/reader/Command.java
index 24418be..73f4987 100644
--- a/src/cz/crcs/ectester/reader/Command.java
+++ b/src/cz/crcs/ectester/reader/Command.java
@@ -44,7 +44,7 @@ public abstract class Command {
/**
* Creates the INS_ALLOCATE instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair which keyPair to use, local/remote (KEYPAIR_* | ...)
* @param keyLength key length to set
* @param keyClass key class to allocate
@@ -76,7 +76,7 @@ public abstract class Command {
private byte keyPair;
/**
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair which keyPair clear, local/remote (KEYPAIR_* || ...)
*/
protected Clear(CardMngr cardManager, byte keyPair) {
@@ -107,7 +107,7 @@ public abstract class Command {
/**
* Creates the INS_SET instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair which keyPair to set params on, local/remote (KEYPAIR_* || ...)
* @param curve curve to set (EC_Consts.CURVE_*)
* @param params parameters to set (EC_Consts.PARAMETER_* | ...)
@@ -149,9 +149,9 @@ public abstract class Command {
private byte corruption;
/**
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair which keyPair to corrupt, local/remote (KEYPAIR_* || ...)
- * @param key
+ * @param key key to corrupt (EC_Consts.KEY_* | ...)
* @param params parameters to corrupt (EC_Consts.PARAMETER_* | ...)
* @param corruption corruption type (EC_Consts.CORRUPTION_*)
*/
@@ -187,7 +187,7 @@ public abstract class Command {
/**
* Creates the INS_GENERATE instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair which keyPair to generate, local/remote (KEYPAIR_* || ...)
*/
protected Generate(CardMngr cardManager, byte keyPair) {
@@ -217,7 +217,7 @@ public abstract class Command {
/**
* Creates the INS_EXPORT instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair keyPair to export from (KEYPAIR_* | ...)
* @param key key to export from (EC_Consts.KEY_* | ...)
* @param params params to export (EC_Consts.PARAMETER_* | ...)
@@ -256,12 +256,12 @@ public abstract class Command {
/**
* Creates the INS_ECDH instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param pubkey keyPair to use for public key, (KEYPAIR_LOCAL || KEYPAIR_REMOTE)
* @param privkey keyPair to use for private key, (KEYPAIR_LOCAL || KEYPAIR_REMOTE)
* @param export whether to export ECDH secret
* @param corruption whether to invalidate the pubkey before ECDH (EC_Consts.CORRUPTION_* || ...)
- * @param type
+ * @param type ECDH algorithm type (EC_Consts.KA_* | ...)
*/
protected ECDH(CardMngr cardManager, byte pubkey, byte privkey, byte export, byte corruption, byte type) {
super(cardManager);
@@ -293,7 +293,7 @@ public abstract class Command {
/**
* Creates the INS_ECDSA instruction.
*
- * @param cardManager
+ * @param cardManager cardManager to send APDU through
* @param keyPair keyPair to use for signing and verification (KEYPAIR_LOCAL || KEYPAIR_REMOTE)
* @param export whether to export ECDSA signature
* @param raw data to sign, can be null, in which case random data is signed.
@@ -328,6 +328,10 @@ public abstract class Command {
*/
public static class Cleanup extends Command {
+ /**
+ *
+ * @param cardManager cardManager to send APDU through
+ */
protected Cleanup(CardMngr cardManager) {
super(cardManager);
@@ -347,6 +351,11 @@ public abstract class Command {
*
*/
public static class Support extends Command {
+
+ /**
+ *
+ * @param cardManager cardManager to send APDU through
+ */
protected Support(CardMngr cardManager) {
super(cardManager);
diff --git a/src/cz/crcs/ectester/reader/ECTester.java b/src/cz/crcs/ectester/reader/ECTester.java
index 716d4ea..cb3d298 100644
--- a/src/cz/crcs/ectester/reader/ECTester.java
+++ b/src/cz/crcs/ectester/reader/ECTester.java
@@ -529,7 +529,10 @@ public class ECTester {
//TODO
} else {
// print given object
- //TODO
+ EC_Data object = dataStore.getObject(EC_Data.class, optListNamed);
+ if (object != null) {
+ System.out.println(object);
+ }
}
}
@@ -628,8 +631,8 @@ public class ECTester {
/**
* Tests Elliptic curve support for a given curve/curves.
*
- * @throws IOException
- * @throws CardException
+ * @throws CardException if APDU transmission fails
+ * @throws IOException if an IO error occurs when writing to key file.
*/
private void test() throws IOException, CardException {
List<Command> commands = new LinkedList<>();
@@ -915,9 +918,9 @@ public class ECTester {
private List<Command> prepareCurve(byte keyPair, short keyLength, byte keyClass) throws IOException {
List<Command> commands = new ArrayList<>();
- short domainParams = keyClass == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M;
if (optCustomCurve) {
// Set custom curve (one of the SECG curves embedded applet-side)
+ short domainParams = keyClass == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M;
commands.add(new Command.Set(cardManager, keyPair, EC_Consts.getCurve(keyLength, keyClass), domainParams, null));
} else if (optNamedCurve != null) {
// Set a named curve.
@@ -934,20 +937,20 @@ public class ECTester {
if (external == null) {
throw new IOException("Couldn't read named curve data.");
}
- commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, domainParams, external));
+ commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, curve.getParams(), external));
} else if (optCurveFile != null) {
// Set curve loaded from a file
- EC_Params params = new EC_Params(domainParams);
+ EC_Curve curve = new EC_Curve(keyLength, keyClass);
FileInputStream in = new FileInputStream(optCurveFile);
- params.readCSV(in);
+ curve.readCSV(in);
in.close();
- byte[] external = params.flatten();
+ byte[] external = curve.flatten();
if (external == null) {
throw new IOException("Couldn't read the curve file correctly.");
}
- commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, domainParams, external));
+ commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, curve.getParams(), external));
} else {
// Set default curve
/* This command was generally causing problems for simulating on jcardsim.
@@ -1036,8 +1039,9 @@ public class ECTester {
}
/**
+ *
* @return
- * @throws IOException
+ * @throws IOException if an IO error occurs when writing to key file.
*/
private List<Command> testCurve() throws IOException {
List<Command> commands = new LinkedList<>();
@@ -1052,10 +1056,11 @@ public class ECTester {
}
/**
+ *
* @param category
* @param field
* @return
- * @throws IOException
+ * @throws IOException if an IO error occurs when writing to key file.
*/
private List<Command> testCurves(String category, byte field) throws IOException {
List<Command> commands = new LinkedList<>();
diff --git a/src/cz/crcs/ectester/reader/Response.java b/src/cz/crcs/ectester/reader/Response.java
index 4bb5b88..c3f2fe4 100644
--- a/src/cz/crcs/ectester/reader/Response.java
+++ b/src/cz/crcs/ectester/reader/Response.java
@@ -524,7 +524,7 @@ public abstract class Response {
@Override
public String toString() {
- return String.format("Requested JCSystem object deletion");
+ return "Requested JCSystem object deletion";
}
}
diff --git a/src/cz/crcs/ectester/reader/ec/EC_Curve.java b/src/cz/crcs/ectester/reader/ec/EC_Curve.java
index 273b1f4..953884f 100644
--- a/src/cz/crcs/ectester/reader/ec/EC_Curve.java
+++ b/src/cz/crcs/ectester/reader/ec/EC_Curve.java
@@ -40,4 +40,9 @@ public class EC_Curve extends EC_Params {
public String getDesc() {
return desc;
}
+
+ @Override
+ public String toString() {
+ return "Elliptic curve (" + String.valueOf(bits) + "b): " + desc;
+ }
}
diff --git a/src/cz/crcs/ectester/reader/ec/EC_Data.java b/src/cz/crcs/ectester/reader/ec/EC_Data.java
index 2e1eb29..c55b99d 100644
--- a/src/cz/crcs/ectester/reader/ec/EC_Data.java
+++ b/src/cz/crcs/ectester/reader/ec/EC_Data.java
@@ -21,12 +21,12 @@ public class EC_Data {
EC_Data() {
}
- public EC_Data(int count) {
+ EC_Data(int count) {
this.count = count;
this.data = new byte[count][];
}
- public EC_Data(byte[][] data) {
+ EC_Data(byte[][] data) {
this.count = data.length;
this.data = data;
}
diff --git a/src/cz/crcs/ectester/reader/ec/EC_KAResult.java b/src/cz/crcs/ectester/reader/ec/EC_KAResult.java
index e556f90..f1be49a 100644
--- a/src/cz/crcs/ectester/reader/ec/EC_KAResult.java
+++ b/src/cz/crcs/ectester/reader/ec/EC_KAResult.java
@@ -1,5 +1,7 @@
package cz.crcs.ectester.reader.ec;
+import cz.crcs.ectester.applet.EC_Consts;
+
/**
* @author Jan Jancar johny@neuromancer.sk
*/
@@ -45,4 +47,10 @@ public class EC_KAResult extends EC_Data {
return desc;
}
+ @Override
+ public String toString() {
+ String agreement = ka == EC_Consts.KA_ECDH ? "ECDH" : "ECDHC";
+ return agreement + " over " + curve + ", " + oneKey + " + " + otherKey + ": " + desc;
+ }
+
}
diff --git a/src/cz/crcs/ectester/reader/ec/EC_Key.java b/src/cz/crcs/ectester/reader/ec/EC_Key.java
index b78aaee..983ffa8 100644
--- a/src/cz/crcs/ectester/reader/ec/EC_Key.java
+++ b/src/cz/crcs/ectester/reader/ec/EC_Key.java
@@ -37,6 +37,11 @@ public class EC_Key extends EC_Params {
public Public(String curve, String desc) {
super(EC_Consts.PARAMETER_W, curve, desc);
}
+
+ @Override
+ public String toString() {
+ return "EC Public key, over " + getCurve() + ": " + getDesc();
+ }
}
public static class Private extends EC_Key {
@@ -49,5 +54,9 @@ public class EC_Key extends EC_Params {
super(EC_Consts.PARAMETER_S, curve, desc);
}
+ @Override
+ public String toString() {
+ return "EC Private key, over " + getCurve() + ": " + getDesc();
+ }
}
}
diff --git a/src/cz/crcs/ectester/reader/ec/EC_Keypair.java b/src/cz/crcs/ectester/reader/ec/EC_Keypair.java
index 0ee3801..af4038a 100644
--- a/src/cz/crcs/ectester/reader/ec/EC_Keypair.java
+++ b/src/cz/crcs/ectester/reader/ec/EC_Keypair.java
@@ -27,4 +27,9 @@ public class EC_Keypair extends EC_Params {
public String getDesc() {
return desc;
}
+
+ @Override
+ public String toString() {
+ return "EC Keypair, over " + curve + ": " + desc;
+ }
}