diff options
13 files changed, 67 insertions, 48 deletions
diff --git a/src/cz/crcs/ectester/common/output/TestWriter.java b/src/cz/crcs/ectester/common/output/TestWriter.java index 0f3c4e6..0ecfd5a 100644 --- a/src/cz/crcs/ectester/common/output/TestWriter.java +++ b/src/cz/crcs/ectester/common/output/TestWriter.java @@ -1,7 +1,7 @@ package cz.crcs.ectester.common.output; import cz.crcs.ectester.common.test.Test; -import cz.crcs.ectester.reader.test.TestSuite; +import cz.crcs.ectester.common.test.TestSuite; /** * @author Jan Jancar johny@neuromancer.sk diff --git a/src/cz/crcs/ectester/reader/test/TestRunner.java b/src/cz/crcs/ectester/common/test/TestRunner.java index e581aaa..8564d2c 100644 --- a/src/cz/crcs/ectester/reader/test/TestRunner.java +++ b/src/cz/crcs/ectester/common/test/TestRunner.java @@ -1,8 +1,7 @@ -package cz.crcs.ectester.reader.test; +package cz.crcs.ectester.common.test; -import cz.crcs.ectester.common.test.Test; -import cz.crcs.ectester.common.test.TestException; import cz.crcs.ectester.common.output.TestWriter; +import cz.crcs.ectester.reader.test.CardTestSuite; /** * @author Jan Jancar johny@neuromancer.sk @@ -11,7 +10,7 @@ public class TestRunner { private TestSuite suite; private TestWriter writer; - public TestRunner(TestSuite suite, TestWriter writer) { + public TestRunner(CardTestSuite suite, TestWriter writer) { this.suite = suite; this.writer = writer; } diff --git a/src/cz/crcs/ectester/common/test/TestSuite.java b/src/cz/crcs/ectester/common/test/TestSuite.java new file mode 100644 index 0000000..74a24af --- /dev/null +++ b/src/cz/crcs/ectester/common/test/TestSuite.java @@ -0,0 +1,36 @@ +package cz.crcs.ectester.common.test; + +import cz.crcs.ectester.data.EC_Store; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public abstract class TestSuite { + protected String name; + protected String description; + protected List<Test> tests = new LinkedList<>(); + protected EC_Store dataStore; + + public TestSuite(EC_Store dataStore, String name, String description) { + this.dataStore = dataStore; + this.name = name; + this.description = description; + } + + public List<Test> getTests() { + return Collections.unmodifiableList(tests); + } + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + +} diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java index e627099..be01129 100644 --- a/src/cz/crcs/ectester/reader/ECTesterReader.java +++ b/src/cz/crcs/ectester/reader/ECTesterReader.java @@ -28,6 +28,7 @@ import cz.crcs.ectester.common.ec.EC_Params; import cz.crcs.ectester.common.output.OutputLogger; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.TestException; +import cz.crcs.ectester.common.test.TestRunner; import cz.crcs.ectester.common.util.ByteUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.command.Command; @@ -406,14 +407,14 @@ public class ECTesterReader { * @throws IOException if an IO error occurs when writing to key file. */ private void test() throws IOException, TestException { - TestSuite suite; + CardTestSuite suite; switch (cfg.testSuite) { case "default": - suite = new DefaultSuite(dataStore, cfg); + suite = new CardDefaultSuite(dataStore, cfg); break; case "test-vectors": - suite = new TestVectorSuite(dataStore, cfg); + suite = new CardTestVectorSuite(dataStore, cfg); break; default: // These tests are dangerous, prompt before them. @@ -432,13 +433,13 @@ public class ECTesterReader { switch (cfg.testSuite) { case "wrong": - suite = new WrongCurvesSuite(dataStore, cfg); + suite = new CardWrongCurvesSuite(dataStore, cfg); break; case "composite": - suite = new CompositeCurvesSuite(dataStore, cfg); + suite = new CardCompositeCurvesSuite(dataStore, cfg); break; case "invalid": - suite = new InvalidCurvesSuite(dataStore, cfg); + suite = new CardInvalidCurvesSuite(dataStore, cfg); break; default: System.err.println("Unknown test suite."); diff --git a/src/cz/crcs/ectester/reader/output/TextTestWriter.java b/src/cz/crcs/ectester/reader/output/TextTestWriter.java index a4bb33e..06b6ea8 100644 --- a/src/cz/crcs/ectester/reader/output/TextTestWriter.java +++ b/src/cz/crcs/ectester/reader/output/TextTestWriter.java @@ -4,7 +4,7 @@ import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.reader.test.CommandTest; -import cz.crcs.ectester.reader.test.TestSuite; +import cz.crcs.ectester.reader.test.CardTestSuite; import java.io.PrintStream; @@ -23,7 +23,7 @@ public class TextTestWriter implements TestWriter { } @Override - public void begin(TestSuite suite) { + public void begin(CardTestSuite suite) { output.println("=== Running test suite: " + suite.getName() + " ==="); output.println("=== " + suite.getDescription()); } diff --git a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java index 1a94984..d889c3a 100644 --- a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java +++ b/src/cz/crcs/ectester/reader/output/XMLTestWriter.java @@ -7,7 +7,7 @@ import cz.crcs.ectester.reader.command.Command; import cz.crcs.ectester.reader.response.Response; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.reader.test.CommandTest; -import cz.crcs.ectester.reader.test.TestSuite; +import cz.crcs.ectester.reader.test.CardTestSuite; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -38,7 +38,7 @@ public class XMLTestWriter implements TestWriter { } @Override - public void begin(TestSuite suite) { + public void begin(CardTestSuite suite) { doc = db.newDocument(); Element rootElem = doc.createElement("testSuite"); rootElem.setAttribute("name", suite.getName()); diff --git a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java index e0038fd..cd89b1a 100644 --- a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java +++ b/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java @@ -7,7 +7,7 @@ import cz.crcs.ectester.reader.command.Command; import cz.crcs.ectester.reader.response.Response; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.reader.test.CommandTest; -import cz.crcs.ectester.reader.test.TestSuite; +import cz.crcs.ectester.reader.test.CardTestSuite; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; @@ -31,7 +31,7 @@ public class YAMLTestWriter implements TestWriter { } @Override - public void begin(TestSuite suite) { + public void begin(CardTestSuite suite) { output.println("---"); testRun = new HashMap<>(); testSuite = new HashMap<>(); diff --git a/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java b/src/cz/crcs/ectester/reader/test/CardCompositeCurvesSuite.java index 8a02381..930a0d0 100644 --- a/src/cz/crcs/ectester/reader/test/CompositeCurvesSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardCompositeCurvesSuite.java @@ -17,9 +17,9 @@ import static cz.crcs.ectester.common.test.Result.ExpectedValue; /** * @author Jan Jancar johny@neuromancer.sk */ -public class CompositeCurvesSuite extends TestSuite { +public class CardCompositeCurvesSuite extends CardTestSuite { - public CompositeCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { + public CardCompositeCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { super(dataStore, cfg, "composite", "The composite suite tests ECDH over curves with composite order. This should generally fail, as using such a curve is unsafe."); } diff --git a/src/cz/crcs/ectester/reader/test/DefaultSuite.java b/src/cz/crcs/ectester/reader/test/CardDefaultSuite.java index 881480c..06818d4 100644 --- a/src/cz/crcs/ectester/reader/test/DefaultSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardDefaultSuite.java @@ -15,9 +15,9 @@ import static cz.crcs.ectester.common.test.Result.ExpectedValue; /** * @author Jan Jancar johny@neuromancer.sk */ -public class DefaultSuite extends TestSuite { +public class CardDefaultSuite extends CardTestSuite { - public DefaultSuite(EC_Store dataStore, ECTesterReader.Config cfg) { + public CardDefaultSuite(EC_Store dataStore, ECTesterReader.Config cfg) { super(dataStore, cfg, "default", "The default test suite tests basic support of ECDH and ECDSA."); } diff --git a/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java b/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java index 96e4ca2..e4e55c9 100644 --- a/src/cz/crcs/ectester/reader/test/InvalidCurvesSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java @@ -23,9 +23,9 @@ import static cz.crcs.ectester.common.test.Result.ExpectedValue; /** * @author Jan Jancar johny@neuromancer.sk */ -public class InvalidCurvesSuite extends TestSuite { +public class CardInvalidCurvesSuite extends CardTestSuite { - public InvalidCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { + public CardInvalidCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { super(dataStore, cfg, "invalid", "The invalid curve suite tests whether the card rejects points outside of the curve during ECDH."); } diff --git a/src/cz/crcs/ectester/reader/test/TestSuite.java b/src/cz/crcs/ectester/reader/test/CardTestSuite.java index e722960..e3cc155 100644 --- a/src/cz/crcs/ectester/reader/test/TestSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardTestSuite.java @@ -6,6 +6,7 @@ import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.test.TestSuite; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -24,34 +25,16 @@ import static cz.crcs.ectester.common.test.Result.Value; /** * @author Jan Jancar johny@neuromancer.sk */ -public abstract class TestSuite { - EC_Store dataStore; +public abstract class CardTestSuite extends TestSuite { ECTesterReader.Config cfg; - String name; - String description; - List<Test> tests = new LinkedList<>(); - TestSuite(EC_Store dataStore, ECTesterReader.Config cfg, String name, String description) { - this.dataStore = dataStore; + CardTestSuite(EC_Store dataStore, ECTesterReader.Config cfg, String name, String description) { + super(dataStore, name, description); this.cfg = cfg; - this.name = name; - this.description = description; } public abstract void setup(CardMngr cardManager) throws IOException; - public List<Test> getTests() { - return Collections.unmodifiableList(tests); - } - - public String getName() { - return name; - } - - public String getDescription() { - return description; - } - /** * @param cardManager cardManager to send APDU through * @param generateExpected expected result of the Generate command diff --git a/src/cz/crcs/ectester/reader/test/TestVectorSuite.java b/src/cz/crcs/ectester/reader/test/CardTestVectorSuite.java index c89cfa6..72e3cce 100644 --- a/src/cz/crcs/ectester/reader/test/TestVectorSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardTestVectorSuite.java @@ -26,9 +26,9 @@ import static cz.crcs.ectester.common.test.Result.Value; /** * @author Jan Jancar johny@neuromancer.sk */ -public class TestVectorSuite extends TestSuite { +public class CardTestVectorSuite extends CardTestSuite { - public TestVectorSuite(EC_Store dataStore, ECTesterReader.Config cfg) { + public CardTestVectorSuite(EC_Store dataStore, ECTesterReader.Config cfg) { super(dataStore, cfg, "test", "The test-vectors suite contains a collection of test vectors which test basic ECDH correctness."); } diff --git a/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java b/src/cz/crcs/ectester/reader/test/CardWrongCurvesSuite.java index 76da718..4c529da 100644 --- a/src/cz/crcs/ectester/reader/test/WrongCurvesSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardWrongCurvesSuite.java @@ -12,9 +12,9 @@ import static cz.crcs.ectester.common.test.Result.ExpectedValue; /** * @author Jan Jancar johny@neuromancer.sk */ -public class WrongCurvesSuite extends TestSuite { +public class CardWrongCurvesSuite extends CardTestSuite { - public WrongCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { + public CardWrongCurvesSuite(EC_Store dataStore, ECTesterReader.Config cfg) { super(dataStore, cfg, "wrong", "The wrong curve suite tests whether the card rejects domain parameters which are not curves."); } |
