aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/common
diff options
context:
space:
mode:
authorJ08nY2018-11-28 01:04:31 +0100
committerJ08nY2018-11-28 01:04:31 +0100
commitebe40e2fdd5e28cdabe05250422f3149e188641a (patch)
treefbf29423e8053c6a7267d600d1630fefb1bf1a1b /src/cz/crcs/ectester/common
parent7e9917742785a9fd532a52231e95ddad5775555f (diff)
parent12845c8c41eff5f598dc8e843920f5bb4638775d (diff)
downloadECTester-ebe40e2fdd5e28cdabe05250422f3149e188641a.tar.gz
ECTester-ebe40e2fdd5e28cdabe05250422f3149e188641a.tar.zst
ECTester-ebe40e2fdd5e28cdabe05250422f3149e188641a.zip
Merge branch 'devel'
Diffstat (limited to 'src/cz/crcs/ectester/common')
-rw-r--r--src/cz/crcs/ectester/common/ec/EC_Category.java63
-rw-r--r--src/cz/crcs/ectester/common/ec/EC_SigResult.java2
-rw-r--r--src/cz/crcs/ectester/common/output/BaseTextTestWriter.java3
-rw-r--r--src/cz/crcs/ectester/common/util/CardUtil.java63
-rw-r--r--src/cz/crcs/ectester/common/util/ECUtil.java8
5 files changed, 89 insertions, 50 deletions
diff --git a/src/cz/crcs/ectester/common/ec/EC_Category.java b/src/cz/crcs/ectester/common/ec/EC_Category.java
index 8af308c..05c910c 100644
--- a/src/cz/crcs/ectester/common/ec/EC_Category.java
+++ b/src/cz/crcs/ectester/common/ec/EC_Category.java
@@ -91,56 +91,21 @@ public class EC_Category {
out.append(System.lineSeparator());
}
- Map<String, EC_Key> keys = getObjects(EC_Key.class);
- size = keys.size();
- if (size > 0) {
- out.append(Colors.bold("\t\tKeys: "));
- for (Map.Entry<String, EC_Key> key : keys.entrySet()) {
- out.append(key.getKey());
- size--;
- if (size > 0)
- out.append(", ");
+ String[] headers = new String[]{"Public keys", "Private keys", "KeyPairs", "Results(KA)", "Results(SIG)"};
+ Class[] classes = new Class[]{EC_Key.Public.class, EC_Key.Private.class, EC_Keypair.class, EC_KAResult.class, EC_SigResult.class};
+ for (int i = 0; i < headers.length; ++i) {
+ Map<String, EC_Data> data = getObjects(classes[i]);
+ size = data.size();
+ if (size > 0) {
+ out.append(Colors.bold(String.format("\t\t%s: ", headers[i])));
+ for (Map.Entry<String, EC_Data> key : data.entrySet()) {
+ out.append(key.getKey());
+ size--;
+ if (size > 0)
+ out.append(", ");
+ }
+ out.append(System.lineSeparator());
}
- out.append(System.lineSeparator());
- }
-
- Map<String, EC_Keypair> keypairs = getObjects(EC_Keypair.class);
- size = keypairs.size();
- if (size > 0) {
- out.append(Colors.bold("\t\tKeypairs: "));
- for (Map.Entry<String, EC_Keypair> key : keypairs.entrySet()) {
- out.append(key.getKey());
- size--;
- if (size > 0)
- out.append(", ");
- }
- out.append(System.lineSeparator());
- }
-
- Map<String, EC_KAResult> kaResults = getObjects(EC_KAResult.class);
- size = kaResults.size();
- if (size > 0) {
- out.append(Colors.bold("\t\tResults(KA): "));
- for (Map.Entry<String, EC_KAResult> result : kaResults.entrySet()) {
- out.append(result.getKey());
- size--;
- if (size > 0)
- out.append(", ");
- }
- out.append(System.lineSeparator());
- }
-
- Map<String, EC_SigResult> sigResults = getObjects(EC_SigResult.class);
- size = sigResults.size();
- if (size > 0) {
- out.append(Colors.bold("\t\tResults(SIG): "));
- for (Map.Entry<String, EC_SigResult> result : sigResults.entrySet()) {
- out.append(result.getKey());
- size--;
- if (size > 0)
- out.append(", ");
- }
- out.append(System.lineSeparator());
}
return out.toString();
}
diff --git a/src/cz/crcs/ectester/common/ec/EC_SigResult.java b/src/cz/crcs/ectester/common/ec/EC_SigResult.java
index f1ab0f5..d97ced1 100644
--- a/src/cz/crcs/ectester/common/ec/EC_SigResult.java
+++ b/src/cz/crcs/ectester/common/ec/EC_SigResult.java
@@ -69,7 +69,7 @@ public class EC_SigResult extends EC_Data {
@Override
public String toString() {
- return "<" + getId() + "> " + sig + " result over " + curve + ", " + signKey + " + " + verifyKey + (data == null ? "" : " of data \"" + data + "\"") + (desc == null ? "" : ": " + desc) + System.lineSeparator() + super.toString();
+ return "<" + getId() + "> " + sig + " result over " + curve + ", " + signKey + " + " + verifyKey + (data == null ? "" : " of data \"" + data + "\"") + (desc == null ? "" : ": " + desc) + System.lineSeparator() + super.toString();
}
}
diff --git a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java b/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
index f60f8bb..85b32a4 100644
--- a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
+++ b/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java
@@ -106,6 +106,9 @@ public abstract class BaseTextTestWriter implements TestWriter {
} else {
SimpleTest<? extends BaseTestable> test = (SimpleTest<? extends BaseTestable>) t;
out.append(testableString(test.getTestable()));
+ if (t.getResult().getCause() != null) {
+ out.append(" ┃ ").append(t.getResult().getCause().toString());
+ }
}
return line + out.toString();
}
diff --git a/src/cz/crcs/ectester/common/util/CardUtil.java b/src/cz/crcs/ectester/common/util/CardUtil.java
index e7b370c..7483c32 100644
--- a/src/cz/crcs/ectester/common/util/CardUtil.java
+++ b/src/cz/crcs/ectester/common/util/CardUtil.java
@@ -327,16 +327,22 @@ public class CardUtil {
public static byte getKAType(String kaTypeString) {
switch (kaTypeString) {
+ case "DH":
case "ALG_EC_SVDP_DH":
return EC_Consts.KeyAgreement_ALG_EC_SVDP_DH;
+ case "DH_PLAIN":
case "ALG_EC_SVDP_DH_PLAIN":
return EC_Consts.KeyAgreement_ALG_EC_SVDP_DH_PLAIN;
+ case "PACE_GM":
case "ALG_EC_PACE_GM":
return EC_Consts.KeyAgreement_ALG_EC_PACE_GM;
+ case "DH_PLAIN_XY":
case "ALG_EC_SVDP_DH_PLAIN_XY":
return EC_Consts.KeyAgreement_ALG_EC_SVDP_DH_PLAIN_XY;
+ case "DHC":
case "ALG_EC_SVDP_DHC":
return EC_Consts.KeyAgreement_ALG_EC_SVDP_DHC;
+ case "DHC_PLAIN":
case "ALG_EC_SVDP_DHC_PLAIN":
return EC_Consts.KeyAgreement_ALG_EC_SVDP_DHC_PLAIN;
default:
@@ -373,14 +379,19 @@ public class CardUtil {
public static byte getSigType(String sigTypeString) {
switch (sigTypeString) {
+ case "ECDSA_SHA":
case "ALG_ECDSA_SHA":
return EC_Consts.Signature_ALG_ECDSA_SHA;
+ case "ECDSA_SHA_224":
case "ALG_ECDSA_SHA_224":
return EC_Consts.Signature_ALG_ECDSA_SHA_224;
+ case "ECDSA_SHA_256":
case "ALG_ECDSA_SHA_256":
return EC_Consts.Signature_ALG_ECDSA_SHA_256;
+ case "ECDSA_SHA_384":
case "ALG_ECDSA_SHA_384":
return EC_Consts.Signature_ALG_ECDSA_SHA_384;
+ case "ECDSA_SHA_512":
case "ALG_ECDSA_SHA_512":
return EC_Consts.Signature_ALG_ECDSA_SHA_512;
default:
@@ -409,6 +420,58 @@ public class CardUtil {
}
}
+ public static String getCurveName(byte curve) {
+ String result = "";
+ switch (curve) {
+ case EC_Consts.CURVE_default:
+ result = "default";
+ break;
+ case EC_Consts.CURVE_external:
+ result = "external";
+ break;
+ case EC_Consts.CURVE_secp112r1:
+ result = "secp112r1";
+ break;
+ case EC_Consts.CURVE_secp128r1:
+ result = "secp128r1";
+ break;
+ case EC_Consts.CURVE_secp160r1:
+ result = "secp160r1";
+ break;
+ case EC_Consts.CURVE_secp192r1:
+ result = "secp192r1";
+ break;
+ case EC_Consts.CURVE_secp224r1:
+ result = "secp224r1";
+ break;
+ case EC_Consts.CURVE_secp256r1:
+ result = "secp256r1";
+ break;
+ case EC_Consts.CURVE_secp384r1:
+ result = "secp384r1";
+ break;
+ case EC_Consts.CURVE_secp521r1:
+ result = "secp521r1";
+ break;
+ case EC_Consts.CURVE_sect163r1:
+ result = "sect163r1";
+ break;
+ case EC_Consts.CURVE_sect233r1:
+ result = "sect233r1";
+ break;
+ case EC_Consts.CURVE_sect283r1:
+ result = "sect283r1";
+ break;
+ case EC_Consts.CURVE_sect409r1:
+ result = "sect409r1";
+ break;
+ case EC_Consts.CURVE_sect571r1:
+ result = "sect571r1";
+ break;
+ }
+ return result;
+ }
+
public static String getParameterString(short params) {
String what = "";
if (params == EC_Consts.PARAMETERS_DOMAIN_F2M || params == EC_Consts.PARAMETERS_DOMAIN_FP) {
diff --git a/src/cz/crcs/ectester/common/util/ECUtil.java b/src/cz/crcs/ectester/common/util/ECUtil.java
index 6c3ad58..1706ca0 100644
--- a/src/cz/crcs/ectester/common/util/ECUtil.java
+++ b/src/cz/crcs/ectester/common/util/ECUtil.java
@@ -31,6 +31,14 @@ public class ECUtil {
return raw;
}
+ public static byte[] toX962Compressed(byte[][] point) {
+ if (point.length != 2) {
+ return null;
+ }
+ byte ybit = (byte) (point[1][point[1].length - 1] % 2);
+ return ByteUtil.concatenate(new byte[]{(byte) (0x02 | ybit)}, point[0]);
+ }
+
public static byte[] toX962Compressed(ECPoint point, int bits) {
if (point.equals(ECPoint.POINT_INFINITY)) {
return new byte[]{0};