diff options
| author | J08nY | 2017-11-14 03:04:10 +0100 |
|---|---|---|
| committer | J08nY | 2017-11-14 03:04:10 +0100 |
| commit | 82a0399051d3bc059deb6923512092b31971d352 (patch) | |
| tree | a90c5f951e517a1a5989e1e5d788afd96cdde9ba | |
| parent | 80e14c7d3f9eeec34f0236bfb8c595033142756a (diff) | |
| download | ECTester-82a0399051d3bc059deb6923512092b31971d352.tar.gz ECTester-82a0399051d3bc059deb6923512092b31971d352.tar.zst ECTester-82a0399051d3bc059deb6923512092b31971d352.zip | |
4 files changed, 80 insertions, 61 deletions
diff --git a/src/cz/crcs/ectester/common/CLITools.java b/src/cz/crcs/ectester/common/CLITools.java new file mode 100644 index 0000000..57cea64 --- /dev/null +++ b/src/cz/crcs/ectester/common/CLITools.java @@ -0,0 +1,56 @@ +package cz.crcs.ectester.common; + +import cz.crcs.ectester.common.ec.EC_Category; +import cz.crcs.ectester.common.ec.EC_Data; +import cz.crcs.ectester.data.EC_Store; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Options; + +import java.util.Map; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class CLITools { + + /** + * Print help. + */ + public static void help(String prog, String header, Options options, String footer, boolean usage) { + HelpFormatter help = new HelpFormatter(); + help.setOptionComparator(null); + help.printHelp(prog, header, options, footer, usage); + } + + /** + * Print version info. + */ + public static void version(String description, String license) { + System.out.println(description); + System.out.println(license); + } + + /** + * List categories and named curves. + */ + public static void listNamed(EC_Store dataStore, String named) { + Map<String, EC_Category> categories = dataStore.getCategories(); + if (named == null) { + // print all categories, briefly + for (EC_Category cat : categories.values()) { + System.out.println(cat); + } + } else if (categories.containsKey(named)) { + // print given category + System.out.println(categories.get(named)); + } else { + // print given object + EC_Data object = dataStore.getObject(EC_Data.class, named); + if (object != null) { + System.out.println(object); + } else { + System.err.println("Named object " + named + " not found!"); + } + } + } +} diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java index 0bbe8f7..c51430d 100644 --- a/src/cz/crcs/ectester/reader/ECTesterReader.java +++ b/src/cz/crcs/ectester/reader/ECTesterReader.java @@ -23,6 +23,7 @@ package cz.crcs.ectester.reader; import cz.crcs.ectester.applet.ECTesterApplet; import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.CLITools; import cz.crcs.ectester.common.Util; import cz.crcs.ectester.common.ec.EC_Category; import cz.crcs.ectester.common.ec.EC_Data; @@ -79,11 +80,10 @@ public class ECTesterReader { //if help, print and quit if (cli.hasOption("help")) { - help(); + CLITools.help("ECTesterReader.jar", CLI_HEADER, opts, CLI_FOOTER, true); return; } else if (cli.hasOption("version")) { - System.out.println(DESCRIPTION); - System.out.println(LICENSE); + CLITools.version(DESCRIPTION, LICENSE); return; } cfg = new Config(); @@ -96,7 +96,7 @@ public class ECTesterReader { dataStore = new EC_Store(); //if list, print and quit if (cli.hasOption("list-named")) { - list(); + CLITools.listNamed(dataStore, cli.getOptionValue("list-named")); return; } @@ -312,39 +312,6 @@ public class ECTesterReader { } /** - * Prints help. - */ - private void help() { - HelpFormatter help = new HelpFormatter(); - help.setOptionComparator(null); - help.printHelp("ECTesterReader.jar", CLI_HEADER, opts, CLI_FOOTER, true); - } - - /** - * List categories and named curves. - */ - private void list() { - Map<String, EC_Category> categories = dataStore.getCategories(); - if (cfg.listNamed == null) { - // print all categories, briefly - for (EC_Category cat : categories.values()) { - System.out.println(cat); - } - } else if (categories.containsKey(cfg.listNamed)) { - // print given category - System.out.println(categories.get(cfg.listNamed)); - } else { - // print given object - EC_Data object = dataStore.getObject(EC_Data.class, cfg.listNamed); - if (object != null) { - System.out.println(object); - } else { - System.err.println("Named object " + cfg.listNamed + " not found!"); - } - } - } - - /** * Exports default card/simulation EC domain parameters to output file. * * @throws CardException if APDU transmission fails diff --git a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java b/src/cz/crcs/ectester/standalone/ECTesterStandalone.java index 016d095..e8998ff 100644 --- a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java +++ b/src/cz/crcs/ectester/standalone/ECTesterStandalone.java @@ -1,6 +1,7 @@ package cz.crcs.ectester.standalone; import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.CLITools; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.standalone.consts.KeyPairGeneratorIdent; @@ -40,15 +41,21 @@ public class ECTesterStandalone { CommandLine cli = parseArgs(args); if (cli.hasOption("help")) { - help(); + CLITools.help("ECTesterStandalone.jar", CLI_HEADER, opts, CLI_FOOTER, true); return; } else if (cli.hasOption("version")) { - version(); + CLITools.version(DESCRIPTION, LICENSE); return; } cfg = new Config(); dataStore = new EC_Store(); + + if (cli.hasOption("list-named")) { + CLITools.listNamed(dataStore, cli.getOptionValue("list-named")); + return; + } + for (ECLibrary lib : libs) { if (lib instanceof JavaECLibrary) { JavaECLibrary jlib = (JavaECLibrary) lib; @@ -72,7 +79,7 @@ public class ECTesterStandalone { if (cli.hasOption("generate")) { generate(); - } else if (cli.hasOption("libs")) { + } else if (cli.hasOption("list-libs")) { listLibraries(); } @@ -86,8 +93,14 @@ public class ECTesterStandalone { actions.setRequired(true); actions.addOption(Option.builder("V").longOpt("version").desc("Print version info.").build()); actions.addOption(Option.builder("h").longOpt("help").desc("Print help.").build()); + actions.addOption(Option.builder("e").longOpt("export").desc("Export the defaut curve parameters of the card(if any).").build()); actions.addOption(Option.builder("g").longOpt("generate").desc("Generate [amount] of EC keys.").hasArg().argName("amount").optionalArg(true).build()); - actions.addOption(Option.builder("ls").longOpt("libs").desc("List supported libraries.").build()); + actions.addOption(Option.builder("t").longOpt("test").desc("Test ECC support. [test_suite]:\n- default:\n- invalid:\n- wrong:\n- composite:\n- test-vectors:").hasArg().argName("test_suite").optionalArg(true).build()); + actions.addOption(Option.builder("dh").longOpt("ecdh").desc("Do ECDH, [count] times.").hasArg().argName("count").optionalArg(true).build()); + actions.addOption(Option.builder("dhc").longOpt("ecdhc").desc("Do ECDHC, [count] times.").hasArg().argName("count").optionalArg(true).build()); + actions.addOption(Option.builder("dsa").longOpt("ecdsa").desc("Sign data with ECDSA, [count] times.").hasArg().argName("count").optionalArg(true).build()); + actions.addOption(Option.builder("ln").longOpt("list-named").desc("Print the list of supported named curves and keys.").hasArg().argName("what").optionalArg(true).build()); + actions.addOption(Option.builder("ls").longOpt("list-libs").desc("List supported libraries.").build()); opts.addOptionGroup(actions); CommandLineParser parser = new DefaultParser(); @@ -95,23 +108,6 @@ public class ECTesterStandalone { } /** - * Prints help. - */ - private void help() { - HelpFormatter help = new HelpFormatter(); - help.setOptionComparator(null); - help.printHelp("ECTesterStandalone.jar", CLI_HEADER, opts, CLI_FOOTER, true); - } - - /** - * Prints version info. - */ - private void version() { - System.out.println(DESCRIPTION); - System.out.println(LICENSE); - } - - /** * */ private void generate() { diff --git a/src/cz/crcs/ectester/standalone/test/KeyGenerationTestable.java b/src/cz/crcs/ectester/standalone/test/KeyGenerationTestable.java index 10d02cb..8ad425b 100644 --- a/src/cz/crcs/ectester/standalone/test/KeyGenerationTestable.java +++ b/src/cz/crcs/ectester/standalone/test/KeyGenerationTestable.java @@ -6,14 +6,14 @@ import cz.crcs.ectester.common.test.Testable; import java.security.InvalidAlgorithmParameterException; import java.security.KeyPair; import java.security.KeyPairGenerator; -import java.security.spec.AlgorithmParameterSpec; +import java.security.spec.ECParameterSpec; public class KeyGenerationTestable implements Testable { private KeyPair kp; private KeyPairGenerator kpg; private int keysize; - private AlgorithmParameterSpec spec; + private ECParameterSpec spec; private boolean hasRun; private boolean error = false; private boolean ok; @@ -23,7 +23,7 @@ public class KeyGenerationTestable implements Testable { this.keysize = keysize; } - public KeyGenerationTestable(KeyPairGenerator kpg, AlgorithmParameterSpec spec) { + public KeyGenerationTestable(KeyPairGenerator kpg, ECParameterSpec spec) { this.kpg = kpg; this.spec = spec; } |
