aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/reader/test
diff options
context:
space:
mode:
authorJ08nY2017-10-25 20:17:07 +0200
committerJ08nY2017-10-25 20:17:07 +0200
commit2c6c2a2d35292368b7263fedb6db508da7ded4c4 (patch)
treee5c3c549c0ee58af6f50b1c73dc11d93f6498da3 /src/cz/crcs/ectester/reader/test
parent69a4116df7b54ddfdaba2f8aa80ecb9e9a2ed9a7 (diff)
downloadECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.tar.gz
ECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.tar.zst
ECTester-2c6c2a2d35292368b7263fedb6db508da7ded4c4.zip
Split ResponseWriter into separate class, introduce TestRunner.
Diffstat (limited to 'src/cz/crcs/ectester/reader/test')
-rw-r--r--src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java9
-rw-r--r--src/cz/crcs/ectester/reader/test/DefaultSuite.java11
-rw-r--r--src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java11
-rw-r--r--src/cz/crcs/ectester/reader/test/TestRunner.java29
-rw-r--r--src/cz/crcs/ectester/reader/test/TestSuite.java22
-rw-r--r--src/cz/crcs/ectester/reader/test/TestVectorSuite.java10
-rw-r--r--src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java9
7 files changed, 49 insertions, 52 deletions
diff --git a/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java b/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java
index 75c6371..76b79de 100644
--- a/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java
+++ b/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java
@@ -8,7 +8,7 @@ import cz.crcs.ectester.reader.ECTester;
import cz.crcs.ectester.reader.command.Command;
import cz.crcs.ectester.reader.ec.EC_Curve;
import cz.crcs.ectester.reader.ec.EC_Key;
-import cz.crcs.ectester.reader.output.OutputWriter;
+import cz.crcs.ectester.reader.output.TestWriter;
import javacard.security.KeyPair;
import javax.smartcardio.CardException;
@@ -22,12 +22,12 @@ import java.util.Map;
*/
public class CompositeCurvesSuite extends TestSuite {
- public CompositeCurvesSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer) {
- super(dataStore, cfg, writer, "composite");
+ public CompositeCurvesSuite(EC_Store dataStore, ECTester.Config cfg) {
+ super(dataStore, cfg, "composite");
}
@Override
- public List<Test> run(CardMngr cardManager) throws IOException, CardException {
+ public void setup(CardMngr cardManager) {
/* Do the default tests with the public keys set to provided smallorder keys
* over composite order curves. Essentially small subgroup attacks.
* These should fail, the curves aren't safe so that if the computation with
@@ -55,6 +55,5 @@ public class CompositeCurvesSuite extends TestSuite {
tests.add(new Test.Simple(new Command.Cleanup(cardManager), Test.Result.ANY));
}
}
- return super.run(cardManager);
}
}
diff --git a/src/cz/crcs/ectester/reader/test/DefaultSuite.java b/src/cz/crcs/ectester/reader/test/DefaultSuite.java
index 2024578..de069f9 100644
--- a/src/cz/crcs/ectester/reader/test/DefaultSuite.java
+++ b/src/cz/crcs/ectester/reader/test/DefaultSuite.java
@@ -6,25 +6,21 @@ import cz.crcs.ectester.data.EC_Store;
import cz.crcs.ectester.reader.CardMngr;
import cz.crcs.ectester.reader.ECTester;
import cz.crcs.ectester.reader.command.Command;
-import cz.crcs.ectester.reader.output.OutputWriter;
import javacard.security.KeyPair;
-import javax.smartcardio.CardException;
import java.io.IOException;
-import java.util.List;
/**
- *
* @author Jan Jancar johny@neuromancer.sk
*/
public class DefaultSuite extends TestSuite {
- public DefaultSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer) {
- super(dataStore, cfg, writer, "default");
+ public DefaultSuite(EC_Store dataStore, ECTester.Config cfg) {
+ super(dataStore, cfg, "default");
}
@Override
- public List<Test> run(CardMngr cardManager) throws IOException, CardException {
+ public void setup(CardMngr cardManager) throws IOException {
tests.add(new Test.Simple(new Command.Support(cardManager), Test.Result.ANY));
if (cfg.namedCurve != null) {
if (cfg.primeField) {
@@ -57,7 +53,6 @@ public class DefaultSuite extends TestSuite {
}
}
}
- return super.run(cardManager);
}
private void defaultTests(CardMngr cardManager, short keyLength, byte keyType) throws IOException {
diff --git a/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java b/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java
index 20882b6..3b6cb2f 100644
--- a/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java
+++ b/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java
@@ -8,10 +8,8 @@ import cz.crcs.ectester.reader.ECTester;
import cz.crcs.ectester.reader.command.Command;
import cz.crcs.ectester.reader.ec.EC_Curve;
import cz.crcs.ectester.reader.ec.EC_Key;
-import cz.crcs.ectester.reader.output.OutputWriter;
import javacard.security.KeyPair;
-import javax.smartcardio.CardException;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
@@ -19,17 +17,16 @@ import java.util.List;
import java.util.Map;
/**
- *
* @author Jan Jancar johny@neuromancer.sk
*/
public class InvalidCurvesSuite extends TestSuite {
- public InvalidCurvesSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer) {
- super(dataStore, cfg, writer, "invalid");
+ public InvalidCurvesSuite(EC_Store dataStore, ECTester.Config cfg) {
+ super(dataStore, cfg, "invalid");
}
@Override
- public List<Test> run(CardMngr cardManager) throws CardException, IOException {
+ public void setup(CardMngr cardManager) throws IOException {
/* Set original curves (secg/nist/brainpool). Generate local.
* Try ECDH with invalid public keys of increasing (or decreasing) order.
*/
@@ -64,7 +61,5 @@ public class InvalidCurvesSuite extends TestSuite {
}
tests.add(new Test.Simple(new Command.Cleanup(cardManager), Test.Result.ANY));
}
-
- return super.run(cardManager);
}
}
diff --git a/src/cz/crcs/ectester/reader/test/TestRunner.java b/src/cz/crcs/ectester/reader/test/TestRunner.java
new file mode 100644
index 0000000..baab6a8
--- /dev/null
+++ b/src/cz/crcs/ectester/reader/test/TestRunner.java
@@ -0,0 +1,29 @@
+package cz.crcs.ectester.reader.test;
+
+import cz.crcs.ectester.reader.output.TestWriter;
+
+import javax.smartcardio.CardException;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public class TestRunner {
+ private TestSuite suite;
+ private TestWriter writer;
+
+ public TestRunner(TestSuite suite, TestWriter writer) {
+ this.suite = suite;
+ this.writer = writer;
+ }
+
+ public void run() throws CardException {
+ writer.begin(suite);
+ for (Test t : suite.getTests()) {
+ if (!t.hasRun()) {
+ t.run();
+ writer.outputTest(t);
+ }
+ }
+ writer.end();
+ }
+}
diff --git a/src/cz/crcs/ectester/reader/test/TestSuite.java b/src/cz/crcs/ectester/reader/test/TestSuite.java
index fde2266..6123a39 100644
--- a/src/cz/crcs/ectester/reader/test/TestSuite.java
+++ b/src/cz/crcs/ectester/reader/test/TestSuite.java
@@ -1,17 +1,13 @@
package cz.crcs.ectester.reader.test;
-import static cz.crcs.ectester.reader.test.Test.Result;
import cz.crcs.ectester.applet.ECTesterApplet;
import cz.crcs.ectester.applet.EC_Consts;
import cz.crcs.ectester.data.EC_Store;
import cz.crcs.ectester.reader.CardMngr;
import cz.crcs.ectester.reader.ECTester;
-import cz.crcs.ectester.reader.Util;
import cz.crcs.ectester.reader.command.Command;
import cz.crcs.ectester.reader.ec.*;
-import cz.crcs.ectester.reader.output.OutputWriter;
-import cz.crcs.ectester.reader.response.Response;
-import javacard.security.KeyPair;
+import cz.crcs.ectester.reader.output.TestWriter;
import javax.smartcardio.CardException;
import java.io.IOException;
@@ -24,28 +20,16 @@ public abstract class TestSuite {
EC_Store dataStore;
ECTester.Config cfg;
- OutputWriter writer;
String name;
List<Test> tests = new LinkedList<>();
- TestSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer, String name) {
+ TestSuite(EC_Store dataStore, ECTester.Config cfg, String name) {
this.dataStore = dataStore;
this.cfg = cfg;
- this.writer = writer;
this.name = name;
}
- public List<Test> run(CardMngr cardManager) throws CardException, IOException {
- writer.begin();
- for (Test t : tests) {
- if (!t.hasRun()) {
- t.run();
- writer.outputTest(t);
- }
- }
- writer.end();
- return tests;
- }
+ public abstract void setup(CardMngr cardManager) throws IOException;
public List<Test> getTests() {
return Collections.unmodifiableList(tests);
diff --git a/src/cz/crcs/ectester/reader/test/TestVectorSuite.java b/src/cz/crcs/ectester/reader/test/TestVectorSuite.java
index 2098ae3..2a74d41 100644
--- a/src/cz/crcs/ectester/reader/test/TestVectorSuite.java
+++ b/src/cz/crcs/ectester/reader/test/TestVectorSuite.java
@@ -8,28 +8,25 @@ import cz.crcs.ectester.reader.ECTester;
import cz.crcs.ectester.reader.Util;
import cz.crcs.ectester.reader.command.Command;
import cz.crcs.ectester.reader.ec.*;
-import cz.crcs.ectester.reader.output.OutputWriter;
import cz.crcs.ectester.reader.response.Response;
import javacard.security.KeyPair;
-import javax.smartcardio.CardException;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
- *
* @author Jan Jancar johny@neuromancer.sk
*/
public class TestVectorSuite extends TestSuite {
- public TestVectorSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer) {
- super(dataStore, cfg, writer, "test");
+ public TestVectorSuite(EC_Store dataStore, ECTester.Config cfg) {
+ super(dataStore, cfg, "test");
}
@Override
- public List<Test> run(CardMngr cardManager) throws IOException, CardException {
+ public void setup(CardMngr cardManager) throws IOException {
/* Set original curves (secg/nist/brainpool). Set keypairs from test vectors.
* Do ECDH both ways, export and verify that the result is correct.
*/
@@ -76,6 +73,5 @@ public class TestVectorSuite extends TestSuite {
tests.add(new Test.Simple(new Command.Cleanup(cardManager), Test.Result.ANY));
}
- return super.run(cardManager);
}
}
diff --git a/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java b/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java
index 3346b9f..95bbe1e 100644
--- a/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java
+++ b/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java
@@ -3,7 +3,7 @@ package cz.crcs.ectester.reader.test;
import cz.crcs.ectester.data.EC_Store;
import cz.crcs.ectester.reader.CardMngr;
import cz.crcs.ectester.reader.ECTester;
-import cz.crcs.ectester.reader.output.OutputWriter;
+import cz.crcs.ectester.reader.output.TestWriter;
import javacard.security.KeyPair;
import javax.smartcardio.CardException;
@@ -16,12 +16,12 @@ import java.util.List;
*/
public class WrongCurvesSuite extends TestSuite {
- public WrongCurvesSuite(EC_Store dataStore, ECTester.Config cfg, OutputWriter writer) {
- super(dataStore, cfg, writer, "wrong");
+ public WrongCurvesSuite(EC_Store dataStore, ECTester.Config cfg) {
+ super(dataStore, cfg, "wrong");
}
@Override
- public List<Test> run(CardMngr cardManager) throws CardException, IOException {
+ public void setup(CardMngr cardManager) throws IOException {
/* Just do the default tests on the wrong curves.
* These should generally fail, the curves aren't curves.
*/
@@ -31,6 +31,5 @@ public class WrongCurvesSuite extends TestSuite {
if (cfg.binaryField) {
tests.addAll(defaultCategoryTests(cardManager, cfg.testSuite, KeyPair.ALG_EC_F2M, Test.Result.FAILURE, Test.Result.FAILURE, Test.Result.FAILURE, Test.Result.FAILURE));
}
- return super.run(cardManager);
}
}