diff options
| author | J08nY | 2018-07-23 01:13:36 +0200 |
|---|---|---|
| committer | J08nY | 2018-07-23 01:13:36 +0200 |
| commit | 2f97eed2f68e163e3cccb3c5a04ed60cdcfa17dd (patch) | |
| tree | 38a9cf358dfddcaabdc00ccbbee3600891ddeab7 /src | |
| parent | c04d4fdc26f7483beb4e56e838f9ba0c2e81560b (diff) | |
| download | ECTester-2f97eed2f68e163e3cccb3c5a04ed60cdcfa17dd.tar.gz ECTester-2f97eed2f68e163e3cccb3c5a04ed60cdcfa17dd.tar.zst ECTester-2f97eed2f68e163e3cccb3c5a04ed60cdcfa17dd.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/cz/crcs/ectester/common/ec/EC_Params.java | 11 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ECTesterReader.java | 18 |
2 files changed, 17 insertions, 12 deletions
diff --git a/src/cz/crcs/ectester/common/ec/EC_Params.java b/src/cz/crcs/ectester/common/ec/EC_Params.java index ef3019d..b08fdfd 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Params.java +++ b/src/cz/crcs/ectester/common/ec/EC_Params.java @@ -9,10 +9,11 @@ import java.util.List; /** * A list of EC parameters, can contain a subset of the Fp/F2M, A, B, G, R, K, W, S parameters. - * + * <p> * The set of parameters is uniquely identified by a short bit string. * The parameters can be exported to a byte array via <code>flatten()</code> or to a comma delimited * string via <code>expand()</code>. + * * @author Jan Jancar johny@neuromancer.sk */ public class EC_Params extends EC_Data { @@ -61,15 +62,15 @@ public class EC_Params extends EC_Data { if (masked == EC_Consts.PARAMETER_F2M) { result = new byte[4][]; result[0] = data[i].clone(); - result[1] = data[i+1].clone(); - result[2] = data[i+2].clone(); - result[3] = data[i+3].clone(); + result[1] = data[i + 1].clone(); + result[2] = data[i + 2].clone(); + result[3] = data[i + 3].clone(); break; } if (masked == EC_Consts.PARAMETER_G || masked == EC_Consts.PARAMETER_W) { result = new byte[2][]; result[0] = data[i].clone(); - result[1] = data[i+1].clone(); + result[1] = data[i + 1].clone(); break; } result = new byte[1][]; diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java index e8863dc..4a7d779 100644 --- a/src/cz/crcs/ectester/reader/ECTesterReader.java +++ b/src/cz/crcs/ectester/reader/ECTesterReader.java @@ -369,10 +369,10 @@ public class ECTesterReader { // Cofactor generally isn't set on the default curve parameters on cards, // since its not necessary for ECDH, only ECDHC which not many cards implement // TODO: check if its assumend to be == 1? - short domainAll = cfg.primeField ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; - short domain = (short) (domainAll ^ EC_Consts.PARAMETER_K); - Response.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domainAll).send(); + short domain = cfg.primeField ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; + Response.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); if (!export.successful()) { + domain = (short) (domain ^ EC_Consts.PARAMETER_K); export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); } sent.add(export); @@ -385,10 +385,14 @@ public class ECTesterReader { respWriter.outputResponse(cleanup); } - EC_Params exported = new EC_Params(domain, export.getParams()); - - OutputStream out = FileUtil.openStream(cfg.outputs); - exported.writeCSV(out); + PrintStream out = new PrintStream(FileUtil.openStream(cfg.outputs)); + byte[][] params = export.getParams(); + for (int i = 0; i < params.length; ++i) { + out.print(ByteUtil.bytesToHex(params[i], false)); + if (i != params.length - 1) { + out.print(","); + } + } out.close(); } |
