diff options
| author | J08nY | 2017-04-04 23:25:20 +0200 |
|---|---|---|
| committer | J08nY | 2017-04-04 23:25:20 +0200 |
| commit | 45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f (patch) | |
| tree | 835d98c294bdc26d8bb3d628b54ba63e06c194d8 /src/cz/crcs/ectester | |
| parent | 2af338ffb8b81915ad1fb08d5b030374ae6be1dd (diff) | |
| download | ECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.tar.gz ECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.tar.zst ECTester-45d1bb40cbc4c71e5b94e78f3a541e8f9cd8d62f.zip | |
Diffstat (limited to 'src/cz/crcs/ectester')
| -rw-r--r-- | src/cz/crcs/ectester/reader/Command.java | 29 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ECTester.java | 27 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/Response.java | 2 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ec/EC_Curve.java | 5 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ec/EC_Data.java | 4 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ec/EC_KAResult.java | 8 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ec/EC_Key.java | 9 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ec/EC_Keypair.java | 5 |
8 files changed, 65 insertions, 24 deletions
diff --git a/src/cz/crcs/ectester/reader/Command.java b/src/cz/crcs/ectester/reader/Command.java index 24418be..73f4987 100644 --- a/src/cz/crcs/ectester/reader/Command.java +++ b/src/cz/crcs/ectester/reader/Command.java @@ -44,7 +44,7 @@ public abstract class Command { /** * Creates the INS_ALLOCATE instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair which keyPair to use, local/remote (KEYPAIR_* | ...) * @param keyLength key length to set * @param keyClass key class to allocate @@ -76,7 +76,7 @@ public abstract class Command { private byte keyPair; /** - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair which keyPair clear, local/remote (KEYPAIR_* || ...) */ protected Clear(CardMngr cardManager, byte keyPair) { @@ -107,7 +107,7 @@ public abstract class Command { /** * Creates the INS_SET instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair which keyPair to set params on, local/remote (KEYPAIR_* || ...) * @param curve curve to set (EC_Consts.CURVE_*) * @param params parameters to set (EC_Consts.PARAMETER_* | ...) @@ -149,9 +149,9 @@ public abstract class Command { private byte corruption; /** - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair which keyPair to corrupt, local/remote (KEYPAIR_* || ...) - * @param key + * @param key key to corrupt (EC_Consts.KEY_* | ...) * @param params parameters to corrupt (EC_Consts.PARAMETER_* | ...) * @param corruption corruption type (EC_Consts.CORRUPTION_*) */ @@ -187,7 +187,7 @@ public abstract class Command { /** * Creates the INS_GENERATE instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair which keyPair to generate, local/remote (KEYPAIR_* || ...) */ protected Generate(CardMngr cardManager, byte keyPair) { @@ -217,7 +217,7 @@ public abstract class Command { /** * Creates the INS_EXPORT instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair keyPair to export from (KEYPAIR_* | ...) * @param key key to export from (EC_Consts.KEY_* | ...) * @param params params to export (EC_Consts.PARAMETER_* | ...) @@ -256,12 +256,12 @@ public abstract class Command { /** * Creates the INS_ECDH instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param pubkey keyPair to use for public key, (KEYPAIR_LOCAL || KEYPAIR_REMOTE) * @param privkey keyPair to use for private key, (KEYPAIR_LOCAL || KEYPAIR_REMOTE) * @param export whether to export ECDH secret * @param corruption whether to invalidate the pubkey before ECDH (EC_Consts.CORRUPTION_* || ...) - * @param type + * @param type ECDH algorithm type (EC_Consts.KA_* | ...) */ protected ECDH(CardMngr cardManager, byte pubkey, byte privkey, byte export, byte corruption, byte type) { super(cardManager); @@ -293,7 +293,7 @@ public abstract class Command { /** * Creates the INS_ECDSA instruction. * - * @param cardManager + * @param cardManager cardManager to send APDU through * @param keyPair keyPair to use for signing and verification (KEYPAIR_LOCAL || KEYPAIR_REMOTE) * @param export whether to export ECDSA signature * @param raw data to sign, can be null, in which case random data is signed. @@ -328,6 +328,10 @@ public abstract class Command { */ public static class Cleanup extends Command { + /** + * + * @param cardManager cardManager to send APDU through + */ protected Cleanup(CardMngr cardManager) { super(cardManager); @@ -347,6 +351,11 @@ public abstract class Command { * */ public static class Support extends Command { + + /** + * + * @param cardManager cardManager to send APDU through + */ protected Support(CardMngr cardManager) { super(cardManager); diff --git a/src/cz/crcs/ectester/reader/ECTester.java b/src/cz/crcs/ectester/reader/ECTester.java index 716d4ea..cb3d298 100644 --- a/src/cz/crcs/ectester/reader/ECTester.java +++ b/src/cz/crcs/ectester/reader/ECTester.java @@ -529,7 +529,10 @@ public class ECTester { //TODO } else { // print given object - //TODO + EC_Data object = dataStore.getObject(EC_Data.class, optListNamed); + if (object != null) { + System.out.println(object); + } } } @@ -628,8 +631,8 @@ public class ECTester { /** * Tests Elliptic curve support for a given curve/curves. * - * @throws IOException - * @throws CardException + * @throws CardException if APDU transmission fails + * @throws IOException if an IO error occurs when writing to key file. */ private void test() throws IOException, CardException { List<Command> commands = new LinkedList<>(); @@ -915,9 +918,9 @@ public class ECTester { private List<Command> prepareCurve(byte keyPair, short keyLength, byte keyClass) throws IOException { List<Command> commands = new ArrayList<>(); - short domainParams = keyClass == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; if (optCustomCurve) { // Set custom curve (one of the SECG curves embedded applet-side) + short domainParams = keyClass == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; commands.add(new Command.Set(cardManager, keyPair, EC_Consts.getCurve(keyLength, keyClass), domainParams, null)); } else if (optNamedCurve != null) { // Set a named curve. @@ -934,20 +937,20 @@ public class ECTester { if (external == null) { throw new IOException("Couldn't read named curve data."); } - commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, domainParams, external)); + commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, curve.getParams(), external)); } else if (optCurveFile != null) { // Set curve loaded from a file - EC_Params params = new EC_Params(domainParams); + EC_Curve curve = new EC_Curve(keyLength, keyClass); FileInputStream in = new FileInputStream(optCurveFile); - params.readCSV(in); + curve.readCSV(in); in.close(); - byte[] external = params.flatten(); + byte[] external = curve.flatten(); if (external == null) { throw new IOException("Couldn't read the curve file correctly."); } - commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, domainParams, external)); + commands.add(new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, curve.getParams(), external)); } else { // Set default curve /* This command was generally causing problems for simulating on jcardsim. @@ -1036,8 +1039,9 @@ public class ECTester { } /** + * * @return - * @throws IOException + * @throws IOException if an IO error occurs when writing to key file. */ private List<Command> testCurve() throws IOException { List<Command> commands = new LinkedList<>(); @@ -1052,10 +1056,11 @@ public class ECTester { } /** + * * @param category * @param field * @return - * @throws IOException + * @throws IOException if an IO error occurs when writing to key file. */ private List<Command> testCurves(String category, byte field) throws IOException { List<Command> commands = new LinkedList<>(); diff --git a/src/cz/crcs/ectester/reader/Response.java b/src/cz/crcs/ectester/reader/Response.java index 4bb5b88..c3f2fe4 100644 --- a/src/cz/crcs/ectester/reader/Response.java +++ b/src/cz/crcs/ectester/reader/Response.java @@ -524,7 +524,7 @@ public abstract class Response { @Override public String toString() { - return String.format("Requested JCSystem object deletion"); + return "Requested JCSystem object deletion"; } } diff --git a/src/cz/crcs/ectester/reader/ec/EC_Curve.java b/src/cz/crcs/ectester/reader/ec/EC_Curve.java index 273b1f4..953884f 100644 --- a/src/cz/crcs/ectester/reader/ec/EC_Curve.java +++ b/src/cz/crcs/ectester/reader/ec/EC_Curve.java @@ -40,4 +40,9 @@ public class EC_Curve extends EC_Params { public String getDesc() { return desc; } + + @Override + public String toString() { + return "Elliptic curve (" + String.valueOf(bits) + "b): " + desc; + } } diff --git a/src/cz/crcs/ectester/reader/ec/EC_Data.java b/src/cz/crcs/ectester/reader/ec/EC_Data.java index 2e1eb29..c55b99d 100644 --- a/src/cz/crcs/ectester/reader/ec/EC_Data.java +++ b/src/cz/crcs/ectester/reader/ec/EC_Data.java @@ -21,12 +21,12 @@ public class EC_Data { EC_Data() { } - public EC_Data(int count) { + EC_Data(int count) { this.count = count; this.data = new byte[count][]; } - public EC_Data(byte[][] data) { + EC_Data(byte[][] data) { this.count = data.length; this.data = data; } diff --git a/src/cz/crcs/ectester/reader/ec/EC_KAResult.java b/src/cz/crcs/ectester/reader/ec/EC_KAResult.java index e556f90..f1be49a 100644 --- a/src/cz/crcs/ectester/reader/ec/EC_KAResult.java +++ b/src/cz/crcs/ectester/reader/ec/EC_KAResult.java @@ -1,5 +1,7 @@ package cz.crcs.ectester.reader.ec; +import cz.crcs.ectester.applet.EC_Consts; + /** * @author Jan Jancar johny@neuromancer.sk */ @@ -45,4 +47,10 @@ public class EC_KAResult extends EC_Data { return desc; } + @Override + public String toString() { + String agreement = ka == EC_Consts.KA_ECDH ? "ECDH" : "ECDHC"; + return agreement + " over " + curve + ", " + oneKey + " + " + otherKey + ": " + desc; + } + } diff --git a/src/cz/crcs/ectester/reader/ec/EC_Key.java b/src/cz/crcs/ectester/reader/ec/EC_Key.java index b78aaee..983ffa8 100644 --- a/src/cz/crcs/ectester/reader/ec/EC_Key.java +++ b/src/cz/crcs/ectester/reader/ec/EC_Key.java @@ -37,6 +37,11 @@ public class EC_Key extends EC_Params { public Public(String curve, String desc) { super(EC_Consts.PARAMETER_W, curve, desc); } + + @Override + public String toString() { + return "EC Public key, over " + getCurve() + ": " + getDesc(); + } } public static class Private extends EC_Key { @@ -49,5 +54,9 @@ public class EC_Key extends EC_Params { super(EC_Consts.PARAMETER_S, curve, desc); } + @Override + public String toString() { + return "EC Private key, over " + getCurve() + ": " + getDesc(); + } } } diff --git a/src/cz/crcs/ectester/reader/ec/EC_Keypair.java b/src/cz/crcs/ectester/reader/ec/EC_Keypair.java index 0ee3801..af4038a 100644 --- a/src/cz/crcs/ectester/reader/ec/EC_Keypair.java +++ b/src/cz/crcs/ectester/reader/ec/EC_Keypair.java @@ -27,4 +27,9 @@ public class EC_Keypair extends EC_Params { public String getDesc() { return desc; } + + @Override + public String toString() { + return "EC Keypair, over " + curve + ": " + desc; + } } |
