aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2019-02-26 16:41:28 +0100
committerJ08nY2019-02-26 16:41:28 +0100
commit2b22e8032eb585d717cb1fdc98859a079c171d7e (patch)
tree3ef0219438d9671b7cbd46666ff84e650bf46248
parentf535cb56d88e2bcc17dde1f15d021a17d1f1f511 (diff)
downloadECTester-2b22e8032eb585d717cb1fdc98859a079c171d7e.tar.gz
ECTester-2b22e8032eb585d717cb1fdc98859a079c171d7e.tar.zst
ECTester-2b22e8032eb585d717cb1fdc98859a079c171d7e.zip
-rw-r--r--src/cz/crcs/ectester/reader/ECTesterReader.java17
-rw-r--r--src/cz/crcs/ectester/reader/command/Command.java6
2 files changed, 12 insertions, 11 deletions
diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java
index 7a9d3eb..bffd947 100644
--- a/src/cz/crcs/ectester/reader/ECTesterReader.java
+++ b/src/cz/crcs/ectester/reader/ECTesterReader.java
@@ -518,7 +518,6 @@ public class ECTesterReader {
case "compression":
suite = new CardCompressionSuite(writer, cfg, cardManager);
break;
- case "misc":
case "miscellaneous":
suite = new CardMiscSuite(writer, cfg, cardManager);
break;
@@ -598,11 +597,11 @@ public class ECTesterReader {
Response gen = new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_BOTH).send();
respWriter.outputResponse(gen);
if (cfg.anyPublicKey || cfg.anyKey) {
- Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_REMOTE).send();
+ Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W).send();
respWriter.outputResponse(prep);
}
if (cfg.anyPrivateKey || cfg.anyKey) {
- Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL).send();
+ Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S).send();
respWriter.outputResponse(prep);
}
@@ -630,10 +629,12 @@ public class ECTesterReader {
respWriter.outputResponse(regen);
}
- Response.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETERS_KEYPAIR).send();
- respWriter.outputResponse(export);
- byte[] pubkey_bytes = export.getParameter(ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W);
- byte[] privkey_bytes = export.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S);
+ Response.Export exportRemote = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W).send();
+ respWriter.outputResponse(exportRemote);
+ Response.Export exportLocal = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S).send();
+ respWriter.outputResponse(exportLocal);
+ byte[] pubkey_bytes = exportRemote.getParameter(ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W);
+ byte[] privkey_bytes = exportLocal.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S);
Command.ECDH perform = new Command.ECDH(cardManager, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, cfg.ECKAType);
@@ -697,7 +698,7 @@ public class ECTesterReader {
Command generate;
if (cfg.anyKeypart) {
- generate = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL);
+ generate = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETERS_KEYPAIR);
} else {
generate = new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_LOCAL);
}
diff --git a/src/cz/crcs/ectester/reader/command/Command.java b/src/cz/crcs/ectester/reader/command/Command.java
index bf2441f..b5b9393 100644
--- a/src/cz/crcs/ectester/reader/command/Command.java
+++ b/src/cz/crcs/ectester/reader/command/Command.java
@@ -121,7 +121,7 @@ public abstract class Command implements Cloneable {
* @return a CommandAPDU setting params loaded on the keyPair/s
* @throws IOException if any of the key files cannot be found/opened
*/
- public static Command prepareKey(CardMngr cardManager, EC_Store dataStore, ECTesterReader.Config cfg, byte keyPair) throws IOException {
+ public static Command prepareKey(CardMngr cardManager, EC_Store dataStore, ECTesterReader.Config cfg, byte keyPair, short allowedParams) throws IOException {
short params = EC_Consts.PARAMETERS_NONE;
byte[] data = null;
@@ -147,7 +147,7 @@ public abstract class Command implements Cloneable {
}
}
- if (cfg.publicKey != null || cfg.namedPublicKey != null) {
+ if ((cfg.publicKey != null || cfg.namedPublicKey != null) && ((allowedParams & EC_Consts.PARAMETER_W )!= 0)) {
params |= EC_Consts.PARAMETER_W;
EC_Params pub;
if (cfg.publicKey != null) {
@@ -172,7 +172,7 @@ public abstract class Command implements Cloneable {
}
data = pubkey;
}
- if (cfg.privateKey != null || cfg.namedPrivateKey != null) {
+ if ((cfg.privateKey != null || cfg.namedPrivateKey != null) && ((allowedParams & EC_Consts.PARAMETER_S )!= 0)) {
params |= EC_Consts.PARAMETER_S;
EC_Params priv;
if (cfg.privateKey != null) {