diff options
| author | J08nY | 2018-11-28 01:04:31 +0100 |
|---|---|---|
| committer | J08nY | 2018-11-28 01:04:31 +0100 |
| commit | ebe40e2fdd5e28cdabe05250422f3149e188641a (patch) | |
| tree | fbf29423e8053c6a7267d600d1630fefb1bf1a1b /src/cz/crcs/ectester/common | |
| parent | 7e9917742785a9fd532a52231e95ddad5775555f (diff) | |
| parent | 12845c8c41eff5f598dc8e843920f5bb4638775d (diff) | |
| download | ECTester-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.java | 63 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/common/ec/EC_SigResult.java | 2 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/common/output/BaseTextTestWriter.java | 3 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/common/util/CardUtil.java | 63 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/common/util/ECUtil.java | 8 |
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}; |
