diff options
| author | J08nY | 2017-10-25 20:17:07 +0200 |
|---|---|---|
| committer | J08nY | 2017-10-25 20:17:07 +0200 |
| commit | 2c6c2a2d35292368b7263fedb6db508da7ded4c4 (patch) | |
| tree | e5c3c549c0ee58af6f50b1c73dc11d93f6498da3 /src/cz/crcs/ectester/reader/test | |
| parent | 69a4116df7b54ddfdaba2f8aa80ecb9e9a2ed9a7 (diff) | |
| download | ECTester-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')
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); } } |
