diff options
| author | J08nY | 2017-05-24 01:12:26 +0200 |
|---|---|---|
| committer | J08nY | 2017-05-24 01:12:26 +0200 |
| commit | d6d1f38f8c8cf5bf9f6b1acc714d191e04632d56 (patch) | |
| tree | 89e557587dd68ee0efd7ecd7f3aa66408d9999e3 /src | |
| parent | 931d6b12b301eef7cfdd1dd54bd9aef4b63c746a (diff) | |
| download | ECTester-d6d1f38f8c8cf5bf9f6b1acc714d191e04632d56.tar.gz ECTester-d6d1f38f8c8cf5bf9f6b1acc714d191e04632d56.tar.zst ECTester-d6d1f38f8c8cf5bf9f6b1acc714d191e04632d56.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/cz/crcs/ectester/reader/ECTester.java | 37 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/TestSuite.java | 27 |
2 files changed, 39 insertions, 25 deletions
diff --git a/src/cz/crcs/ectester/reader/ECTester.java b/src/cz/crcs/ectester/reader/ECTester.java index 4ba8e9a..b1bd1b5 100644 --- a/src/cz/crcs/ectester/reader/ECTester.java +++ b/src/cz/crcs/ectester/reader/ECTester.java @@ -150,8 +150,14 @@ public class ECTester { System.err.println("Not a number. " + nfex.getMessage()); } catch (FileNotFoundException fnfe) { System.err.println("File " + fnfe.getMessage() + " not found."); - } catch (ParseException | IOException | CardException ex) { + } catch (ParseException | IOException ex) { System.err.println(ex.getMessage()); + } catch (CardException ex) { + if (systemOutLogger != null) + systemOutLogger.println(ex.getMessage()); + } finally { + if (systemOutLogger != null) + systemOutLogger.flush(); } } @@ -201,6 +207,7 @@ public class ECTester { * * -f / --fresh * -s / --simulate + * -y / --yes */ OptionGroup actions = new OptionGroup(); actions.setRequired(true); @@ -250,6 +257,7 @@ public class ECTester { opts.addOption(Option.builder("f").longOpt("fresh").desc("Generate fresh keys (set domain parameters before every generation).").build()); opts.addOption(Option.builder("s").longOpt("simulate").desc("Simulate a card with jcardsim instead of using a terminal.").build()); + opts.addOption(Option.builder("y").longOpt("yes").desc("Accept all warnings and prompts.").build()); CommandLineParser parser = new DefaultParser(); return parser.parse(opts, args); @@ -385,32 +393,35 @@ public class ECTester { switch (cfg.testSuite) { case "default": - suite = new TestSuite.Default(dataStore, cfg); + suite = new TestSuite.Default(dataStore, cfg, systemOutLogger); break; case "test-vectors": - suite = new TestSuite.TestVectors(dataStore, cfg); + suite = new TestSuite.TestVectors(dataStore, cfg, systemOutLogger); break; default: // These tests are dangerous, prompt before them. System.out.println("The test you selected (" + cfg.testSuite + ") is potentially dangerous."); System.out.println("Some of these tests have caused temporary DoS of some cards."); - System.out.print("Do you want to proceed? (y/n): "); - Scanner in = new Scanner(System.in); - String confirmation = in.nextLine(); - if (!Arrays.asList("yes", "YES", "y", "Y").contains(confirmation)) { - return; + if (!cfg.yes) { + System.out.print("Do you want to proceed? (y/n): "); + Scanner in = new Scanner(System.in); + String confirmation = in.nextLine(); + if (!Arrays.asList("yes", "YES", "y", "Y").contains(confirmation)) { + return; + } + in.close(); } - in.close(); + switch (cfg.testSuite) { case "wrong": - suite = new TestSuite.Wrong(dataStore, cfg); + suite = new TestSuite.Wrong(dataStore, cfg, systemOutLogger); break; case "nonprime": - suite = new TestSuite.NonPrime(dataStore, cfg); + suite = new TestSuite.NonPrime(dataStore, cfg, systemOutLogger); break; case "invalid": - suite = new TestSuite.Invalid(dataStore, cfg); + suite = new TestSuite.Invalid(dataStore, cfg, systemOutLogger); break; default: System.err.println("Unknown test suite."); @@ -595,6 +606,7 @@ public class ECTester { public String output; public boolean fresh = false; public boolean simulate = false; + public boolean yes = false; //Action-related ions public String listNamed; @@ -642,6 +654,7 @@ public class ECTester { output = cli.getOptionValue("output"); fresh = cli.hasOption("fresh"); simulate = cli.hasOption("simulate"); + yes = cli.hasOption("yes"); if (cli.hasOption("list-named")) { listNamed = cli.getOptionValue("list-named"); diff --git a/src/cz/crcs/ectester/reader/TestSuite.java b/src/cz/crcs/ectester/reader/TestSuite.java index 414c2a9..958c51d 100644 --- a/src/cz/crcs/ectester/reader/TestSuite.java +++ b/src/cz/crcs/ectester/reader/TestSuite.java @@ -4,7 +4,6 @@ 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.ec.*; -import javacard.security.Key; import javacard.security.KeyPair; import javax.smartcardio.CardException; @@ -18,12 +17,14 @@ public abstract class TestSuite { EC_Store dataStore; ECTester.Config cfg; + DirtyLogger systemOut; String name; List<Test> tests = new LinkedList<>(); - TestSuite(EC_Store dataStore, ECTester.Config cfg, String name) { + TestSuite(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut, String name) { this.dataStore = dataStore; this.cfg = cfg; + this.systemOut = systemOut; this.name = name; } @@ -31,7 +32,7 @@ public abstract class TestSuite { for (Test t : tests) { if (!t.hasRun()) { t.run(); - System.out.println(t); + systemOut.println(t.toString()); } } return tests; @@ -97,8 +98,8 @@ public abstract class TestSuite { public static class Default extends TestSuite { - public Default(EC_Store dataStore, ECTester.Config cfg) { - super(dataStore, cfg, "default"); + public Default(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut) { + super(dataStore, cfg, systemOut, "default"); } @Override @@ -150,8 +151,8 @@ public abstract class TestSuite { public static class TestVectors extends TestSuite { - public TestVectors(EC_Store dataStore, ECTester.Config cfg) { - super(dataStore, cfg, "test"); + public TestVectors(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut) { + super(dataStore, cfg, systemOut, "test"); } @Override @@ -206,8 +207,8 @@ public abstract class TestSuite { public static class NonPrime extends TestSuite { - public NonPrime(EC_Store dataStore, ECTester.Config cfg) { - super(dataStore, cfg, "nonprime"); + public NonPrime(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut) { + super(dataStore, cfg, systemOut, "nonprime"); } @Override @@ -242,8 +243,8 @@ public abstract class TestSuite { public static class Invalid extends TestSuite { - public Invalid(EC_Store dataStore, ECTester.Config cfg) { - super(dataStore, cfg, "invalid"); + public Invalid(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut) { + super(dataStore, cfg, systemOut, "invalid"); } @Override @@ -288,8 +289,8 @@ public abstract class TestSuite { public static class Wrong extends TestSuite { - public Wrong(EC_Store dataStore, ECTester.Config cfg) { - super(dataStore, cfg, "wrong"); + public Wrong(EC_Store dataStore, ECTester.Config cfg, DirtyLogger systemOut) { + super(dataStore, cfg, systemOut, "wrong"); } @Override |
