diff options
| author | J08nY | 2018-12-17 14:12:26 +0100 |
|---|---|---|
| committer | J08nY | 2018-12-17 14:12:26 +0100 |
| commit | 07a3d6ff46765fec03fe88e7bebbd0ea204d11b4 (patch) | |
| tree | bdbeac4a98acf9d5dabfa22a84b62e86e5f72aba /src/cz/crcs/ectester/reader/command/Command.java | |
| parent | 41fc9f173c86531c2060a72dc8cdc26e5db1b1f1 (diff) | |
| download | ECTester-07a3d6ff46765fec03fe88e7bebbd0ea204d11b4.tar.gz ECTester-07a3d6ff46765fec03fe88e7bebbd0ea204d11b4.tar.zst ECTester-07a3d6ff46765fec03fe88e7bebbd0ea204d11b4.zip | |
Diffstat (limited to 'src/cz/crcs/ectester/reader/command/Command.java')
| -rw-r--r-- | src/cz/crcs/ectester/reader/command/Command.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/cz/crcs/ectester/reader/command/Command.java b/src/cz/crcs/ectester/reader/command/Command.java index a92017e..ce35fcc 100644 --- a/src/cz/crcs/ectester/reader/command/Command.java +++ b/src/cz/crcs/ectester/reader/command/Command.java @@ -11,6 +11,7 @@ import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; +import cz.crcs.ectester.reader.output.ResponseWriter; import cz.crcs.ectester.reader.response.Response; import javacard.security.KeyPair; @@ -194,6 +195,19 @@ public abstract class Command implements Cloneable { return new Command.Set(cardManager, keyPair, EC_Consts.CURVE_external, params, data); } + public static long dryRunTime(CardMngr cardManager, Command cmd, int num, ResponseWriter respWriter) throws CardException { + long time = 0; + respWriter.outputResponse(new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_DRY_RUN).send()); + for (int i = 0; i < num; ++i) { + Response dry = cmd.send(); + respWriter.outputResponse(dry); + time += dry.getDuration(); + } + time /= num; + respWriter.outputResponse(new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_NORMAL).send()); + return time; + } + /** * */ @@ -907,7 +921,7 @@ public abstract class Command implements Cloneable { } @Override - public Response send() throws CardException { + public Response.SetDryRunMode send() throws CardException { long elapsed = -System.nanoTime(); ResponseAPDU response = cardManager.send(cmd); elapsed += System.nanoTime(); |
