From ca283e0c28ad2050c25f12817db8f8103f1cedc1 Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 25 Oct 2017 21:33:31 +0200 Subject: Introduce a Result class, that has a value and a cause. --- src/cz/crcs/ectester/reader/Util.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/cz/crcs/ectester/reader/Util.java') diff --git a/src/cz/crcs/ectester/reader/Util.java b/src/cz/crcs/ectester/reader/Util.java index 754cda3..840f4c5 100644 --- a/src/cz/crcs/ectester/reader/Util.java +++ b/src/cz/crcs/ectester/reader/Util.java @@ -28,15 +28,19 @@ public class Util { array[offset] = (byte) ((value >> 8) & 0xFF); } - public static boolean compareBytes(byte[] one, int oneOffset, byte[] other, int otherOffset, int length) { + public static int diffBytes(byte[] one, int oneOffset, byte[] other, int otherOffset, int length) { for (int i = 0; i < length; ++i) { byte a = one[i + oneOffset]; byte b = other[i + otherOffset]; if (a != b) { - return false; + return i; } } - return true; + return length; + } + + public static boolean compareBytes(byte[] one, int oneOffset, byte[] other, int otherOffset, int length) { + return diffBytes(one, oneOffset, other, otherOffset, length) == length; } public static boolean allValue(byte[] array, byte value) { -- cgit v1.2.3-70-g09d2 From aa13c1ba0082d975cb9d1f1e0f0ab1f151438b02 Mon Sep 17 00:00:00 2001 From: J08nY Date: Sun, 5 Nov 2017 18:52:56 +0100 Subject: Introduce Result.Value.ERROR. - Value.ERROR is used when response.error() is true. - Value.ERROR is NOK. --- src/cz/crcs/ectester/reader/Util.java | 4 +- .../ectester/reader/output/ResponseWriter.java | 2 +- src/cz/crcs/ectester/reader/response/Response.java | 4 +- src/cz/crcs/ectester/reader/test/Result.java | 44 ++++++++++++++-------- src/cz/crcs/ectester/reader/test/Test.java | 2 +- 5 files changed, 35 insertions(+), 21 deletions(-) (limited to 'src/cz/crcs/ectester/reader/Util.java') diff --git a/src/cz/crcs/ectester/reader/Util.java b/src/cz/crcs/ectester/reader/Util.java index 840f4c5..4e1154b 100644 --- a/src/cz/crcs/ectester/reader/Util.java +++ b/src/cz/crcs/ectester/reader/Util.java @@ -287,10 +287,10 @@ public class Util { public static String getSWString(short sw) { if (sw == ISO7816.SW_NO_ERROR) { - return "OK\t(0x9000)"; + return "OK (0x9000)"; } else { String str = getSW(sw); - return String.format("fail\t(%s, 0x%04x)", str, sw); + return String.format("fail (%s, 0x%04x)", str, sw); } } diff --git a/src/cz/crcs/ectester/reader/output/ResponseWriter.java b/src/cz/crcs/ectester/reader/output/ResponseWriter.java index 0f932e7..c357233 100644 --- a/src/cz/crcs/ectester/reader/output/ResponseWriter.java +++ b/src/cz/crcs/ectester/reader/output/ResponseWriter.java @@ -31,7 +31,7 @@ public class ResponseWriter { public void outputResponse(Response r) { String out = ""; - out += String.format("%-70s", r.getDescription()) + " : "; + out += String.format("%-70s", r.getDescription()) + " ┃ "; out += responseSuffix(r); output.println(out); output.flush(); diff --git a/src/cz/crcs/ectester/reader/response/Response.java b/src/cz/crcs/ectester/reader/response/Response.java index 42629b4..4abfd14 100644 --- a/src/cz/crcs/ectester/reader/response/Response.java +++ b/src/cz/crcs/ectester/reader/response/Response.java @@ -3,6 +3,7 @@ package cz.crcs.ectester.reader.response; import cz.crcs.ectester.applet.ECTesterApplet; import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.reader.Util; +import cz.crcs.ectester.reader.ec.EC_Data; import javacard.framework.ISO7816; import javacard.security.KeyPair; @@ -18,7 +19,6 @@ public abstract class Response { private short[] sws; private int numSW = 0; private byte[][] params; - //TODO replace params with EC_Data? private boolean success = true; private boolean error = false; @@ -27,7 +27,7 @@ public abstract class Response { this.time = time; } - public void parse(int numSW, int numParams) { + void parse(int numSW, int numParams) { this.numSW = numSW; this.sws = new short[numSW]; diff --git a/src/cz/crcs/ectester/reader/test/Result.java b/src/cz/crcs/ectester/reader/test/Result.java index 9110929..82f0f32 100644 --- a/src/cz/crcs/ectester/reader/test/Result.java +++ b/src/cz/crcs/ectester/reader/test/Result.java @@ -29,11 +29,29 @@ public class Result { return value.ok(); } + public boolean compareTo(Result other) { + if (other == null) { + return false; + } + return value == other.value; + } + + public boolean compareTo(Value other) { + if (other == null) { + return false; + } + return value == other; + } + + /** + * + */ public enum Value { SUCCESS(true), FAILURE(false), UXSUCCESS(false), - XFAILURE(true); + XFAILURE(true), + ERROR(false); private boolean ok; @@ -53,28 +71,24 @@ public class Result { return SUCCESS; } + public static Value fromExpected(ExpectedValue expected, boolean successful, boolean error) { + if (error) { + return ERROR; + } + return fromExpected(expected, successful); + } + public boolean ok() { return ok; } } + /** + * + */ public enum ExpectedValue { SUCCESS, FAILURE, ANY } - - public boolean compareTo(Result other) { - if (other == null) { - return false; - } - return value == other.value; - } - - public boolean compareTo(Value other) { - if (other == null) { - return false; - } - return value == other; - } } diff --git a/src/cz/crcs/ectester/reader/test/Test.java b/src/cz/crcs/ectester/reader/test/Test.java index 48280ed..022ad56 100644 --- a/src/cz/crcs/ectester/reader/test/Test.java +++ b/src/cz/crcs/ectester/reader/test/Test.java @@ -71,7 +71,7 @@ public abstract class Test { public Simple(Command command, ExpectedValue expected, String ok, String nok) { this(command, (cmd, resp) -> { - Value resultValue = Value.fromExpected(expected, resp.successful()); + Value resultValue = Value.fromExpected(expected, resp.successful(), resp.error()); return new Result(resultValue, resultValue.ok() ? ok : nok); }); } -- cgit v1.2.3-70-g09d2