From 73af477a8774e1ede5dd8de6491eb353dc0b12bd Mon Sep 17 00:00:00 2001 From: J08nY Date: Fri, 22 Mar 2024 23:58:55 +0100 Subject: Basic Gradle setup. --- common/build.gradle.kts | 22 + .../java/cz/crcs/ectester/common/cli/Argument.java | 29 + .../java/cz/crcs/ectester/common/cli/CLITools.java | 161 +++ .../java/cz/crcs/ectester/common/cli/Colors.java | 97 ++ .../cz/crcs/ectester/common/cli/ParserOptions.java | 35 + .../crcs/ectester/common/cli/TreeCommandLine.java | 179 +++ .../cz/crcs/ectester/common/cli/TreeParser.java | 130 ++ .../crcs/ectester/common/ec/CustomECFieldF2m.java | 67 + .../crcs/ectester/common/ec/CustomECFieldFp.java | 43 + .../ectester/common/ec/CustomECParameterSpec.java | 47 + .../ectester/common/ec/CustomEllipticCurve.java | 60 + .../cz/crcs/ectester/common/ec/EC_Category.java | 110 ++ .../java/cz/crcs/ectester/common/ec/EC_Consts.java | 1512 ++++++++++++++++++++ .../java/cz/crcs/ectester/common/ec/EC_Curve.java | 163 +++ .../java/cz/crcs/ectester/common/ec/EC_Data.java | 265 ++++ .../cz/crcs/ectester/common/ec/EC_KAResult.java | 65 + .../java/cz/crcs/ectester/common/ec/EC_Key.java | 81 ++ .../cz/crcs/ectester/common/ec/EC_Keypair.java | 39 + .../java/cz/crcs/ectester/common/ec/EC_Params.java | 233 +++ .../cz/crcs/ectester/common/ec/EC_SigResult.java | 75 + .../crcs/ectester/common/ec/RawECPrivateKey.java | 46 + .../cz/crcs/ectester/common/ec/RawECPublicKey.java | 46 + .../ectester/common/output/BaseTextTestWriter.java | 149 ++ .../ectester/common/output/BaseXMLTestWriter.java | 144 ++ .../ectester/common/output/BaseYAMLTestWriter.java | 120 ++ .../crcs/ectester/common/output/OutputLogger.java | 63 + .../ectester/common/output/TeeOutputStream.java | 36 + .../crcs/ectester/common/output/TeeTestWriter.java | 43 + .../cz/crcs/ectester/common/output/TestWriter.java | 38 + .../cz/crcs/ectester/common/test/BaseTestable.java | 44 + .../cz/crcs/ectester/common/test/CompoundTest.java | 214 +++ .../java/cz/crcs/ectester/common/test/Result.java | 106 ++ .../cz/crcs/ectester/common/test/SimpleTest.java | 38 + .../java/cz/crcs/ectester/common/test/Test.java | 83 ++ .../cz/crcs/ectester/common/test/TestCallback.java | 11 + .../crcs/ectester/common/test/TestException.java | 15 + .../cz/crcs/ectester/common/test/TestSuite.java | 100 ++ .../ectester/common/test/TestSuiteException.java | 14 + .../cz/crcs/ectester/common/test/Testable.java | 38 + .../cz/crcs/ectester/common/util/ByteUtil.java | 193 +++ .../cz/crcs/ectester/common/util/CardConsts.java | 65 + .../cz/crcs/ectester/common/util/CardUtil.java | 533 +++++++ .../java/cz/crcs/ectester/common/util/ECUtil.java | 467 ++++++ .../cz/crcs/ectester/common/util/FileUtil.java | 99 ++ .../java/cz/crcs/ectester/common/util/Util.java | 28 + .../main/java/cz/crcs/ectester/data/EC_Store.java | 405 ++++++ .../crcs/ectester/data/anomalous/anomalous112.csv | 1 + .../crcs/ectester/data/anomalous/anomalous128.csv | 1 + .../crcs/ectester/data/anomalous/anomalous160.csv | 1 + .../crcs/ectester/data/anomalous/anomalous192.csv | 1 + .../crcs/ectester/data/anomalous/anomalous224.csv | 1 + .../crcs/ectester/data/anomalous/anomalous256.csv | 1 + .../crcs/ectester/data/anomalous/anomalous320.csv | 1 + .../crcs/ectester/data/anomalous/anomalous384.csv | 1 + .../crcs/ectester/data/anomalous/anomalous512.csv | 1 + .../crcs/ectester/data/anomalous/anomalous521.csv | 1 + .../cz/crcs/ectester/data/anomalous/curves.xml | 92 ++ .../crcs/ectester/data/anomalous/miyaji128a1.csv | 1 + .../crcs/ectester/data/anomalous/miyaji128a2.csv | 1 + .../crcs/ectester/data/anomalous/miyaji128b1.csv | 1 + .../crcs/ectester/data/anomalous/miyaji128b2.csv | 1 + .../java/cz/crcs/ectester/data/anssi/curves.xml | 10 + .../java/cz/crcs/ectester/data/anssi/frp256v1.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn158.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn190.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn222.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn254.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn286.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn318.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn350.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn382.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn414.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn446.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn478.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn510.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn542.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn574.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn606.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/bn638.csv | 1 + .../main/java/cz/crcs/ectester/data/bn/curves.xml | 116 ++ .../ectester/data/brainpool/brainpoolP160r1.csv | 1 + .../ectester/data/brainpool/brainpoolP160t1.csv | 1 + .../ectester/data/brainpool/brainpoolP192r1.csv | 1 + .../ectester/data/brainpool/brainpoolP192t1.csv | 1 + .../ectester/data/brainpool/brainpoolP224r1.csv | 1 + .../ectester/data/brainpool/brainpoolP224t1.csv | 1 + .../ectester/data/brainpool/brainpoolP256r1.csv | 1 + .../ectester/data/brainpool/brainpoolP256t1.csv | 1 + .../ectester/data/brainpool/brainpoolP320r1.csv | 1 + .../ectester/data/brainpool/brainpoolP320t1.csv | 1 + .../ectester/data/brainpool/brainpoolP384r1.csv | 1 + .../ectester/data/brainpool/brainpoolP384t1.csv | 1 + .../ectester/data/brainpool/brainpoolP512r1.csv | 1 + .../ectester/data/brainpool/brainpoolP512t1.csv | 1 + .../cz/crcs/ectester/data/brainpool/curves.xml | 88 ++ .../main/java/cz/crcs/ectester/data/categories.xml | 107 ++ .../ectester/data/cofactor/cofactor128p128.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p16.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p2.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p32.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p4.csv | 1 + .../ectester/data/cofactor/cofactor128p56467.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p64.csv | 1 + .../ectester/data/cofactor/cofactor128p65521.csv | 1 + .../ectester/data/cofactor/cofactor128p65535.csv | 1 + .../crcs/ectester/data/cofactor/cofactor128p8.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p16.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p2.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p32.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p4.csv | 1 + .../ectester/data/cofactor/cofactor160p56467.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p64.csv | 1 + .../ectester/data/cofactor/cofactor160p65521.csv | 1 + .../ectester/data/cofactor/cofactor160p65535.csv | 1 + .../crcs/ectester/data/cofactor/cofactor160p8.csv | 1 + .../ectester/data/cofactor/cofactor163t128.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t16.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t2.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t32.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t4.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t64.csv | 1 + .../crcs/ectester/data/cofactor/cofactor163t8.csv | 1 + .../crcs/ectester/data/cofactor/cofactor192p2.csv | 1 + .../crcs/ectester/data/cofactor/cofactor192p4.csv | 1 + .../crcs/ectester/data/cofactor/cofactor192p8.csv | 1 + .../ectester/data/cofactor/cofactor233t128.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t16.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t2.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t32.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t4.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t64.csv | 1 + .../crcs/ectester/data/cofactor/cofactor233t8.csv | 1 + .../java/cz/crcs/ectester/data/cofactor/curves.xml | 225 +++ .../java/cz/crcs/ectester/data/cofactor/keys.xml | 742 ++++++++++ .../cz/crcs/ectester/data/cofactor/secg_keys.xml | 221 +++ .../ectester/data/composite/carmichael_128.csv | 1 + .../ectester/data/composite/carmichael_192.csv | 1 + .../ectester/data/composite/carmichael_224.csv | 1 + .../ectester/data/composite/carmichael_256.csv | 1 + .../ectester/data/composite/carmichael_384.csv | 1 + .../ectester/data/composite/carmichael_512.csv | 1 + .../ectester/data/composite/carmichael_521.csv | 1 + .../crcs/ectester/data/composite/composite128.csv | 1 + .../ectester/data/composite/composite128_pq.csv | 1 + .../ectester/data/composite/composite128_pq1.csv | 1 + .../ectester/data/composite/composite128_pq2.csv | 1 + .../ectester/data/composite/composite128_rg0.csv | 1 + .../ectester/data/composite/composite128_small.csv | 1 + .../crcs/ectester/data/composite/composite160.csv | 1 + .../ectester/data/composite/composite160_pq.csv | 1 + .../ectester/data/composite/composite160_pq1.csv | 1 + .../ectester/data/composite/composite160_pq2.csv | 1 + .../ectester/data/composite/composite160_rg0.csv | 1 + .../ectester/data/composite/composite160_small.csv | 1 + .../crcs/ectester/data/composite/composite192.csv | 1 + .../ectester/data/composite/composite192_pq.csv | 1 + .../ectester/data/composite/composite192_pq1.csv | 1 + .../ectester/data/composite/composite192_pq2.csv | 1 + .../ectester/data/composite/composite192_rg0.csv | 1 + .../ectester/data/composite/composite192_small.csv | 1 + .../crcs/ectester/data/composite/composite224.csv | 1 + .../ectester/data/composite/composite224_pq.csv | 1 + .../ectester/data/composite/composite224_pq1.csv | 1 + .../ectester/data/composite/composite224_pq2.csv | 1 + .../ectester/data/composite/composite224_rg0.csv | 1 + .../ectester/data/composite/composite224_small.csv | 1 + .../crcs/ectester/data/composite/composite256.csv | 1 + .../ectester/data/composite/composite256_pq.csv | 1 + .../ectester/data/composite/composite256_pq1.csv | 1 + .../ectester/data/composite/composite256_pq2.csv | 1 + .../ectester/data/composite/composite256_rg0.csv | 1 + .../ectester/data/composite/composite256_small.csv | 1 + .../crcs/ectester/data/composite/composite384.csv | 1 + .../ectester/data/composite/composite384_small.csv | 1 + .../crcs/ectester/data/composite/composite521.csv | 1 + .../ectester/data/composite/composite521_small.csv | 1 + .../cz/crcs/ectester/data/composite/curves.xml | 668 +++++++++ .../java/cz/crcs/ectester/data/composite/keys.xml | 568 ++++++++ .../data/composite/varying/160/first/10.csv | 1 + .../data/composite/varying/160/first/112.csv | 1 + .../data/composite/varying/160/first/12.csv | 1 + .../data/composite/varying/160/first/128.csv | 1 + .../data/composite/varying/160/first/135.csv | 1 + .../data/composite/varying/160/first/14.csv | 1 + .../data/composite/varying/160/first/140.csv | 1 + .../data/composite/varying/160/first/144.csv | 1 + .../data/composite/varying/160/first/146.csv | 1 + .../data/composite/varying/160/first/148.csv | 1 + .../data/composite/varying/160/first/150.csv | 1 + .../data/composite/varying/160/first/152.csv | 1 + .../composite/varying/160/first/152_cofactor.csv | 1 + .../data/composite/varying/160/first/16.csv | 1 + .../data/composite/varying/160/first/20.csv | 1 + .../data/composite/varying/160/first/25.csv | 1 + .../data/composite/varying/160/first/2a.csv | 1 + .../data/composite/varying/160/first/2b.csv | 1 + .../data/composite/varying/160/first/3.csv | 1 + .../data/composite/varying/160/first/32.csv | 1 + .../data/composite/varying/160/first/4.csv | 1 + .../data/composite/varying/160/first/48.csv | 1 + .../data/composite/varying/160/first/5.csv | 1 + .../data/composite/varying/160/first/6.csv | 1 + .../data/composite/varying/160/first/64.csv | 1 + .../data/composite/varying/160/first/7.csv | 1 + .../data/composite/varying/160/first/70.csv | 1 + .../data/composite/varying/160/first/8.csv | 1 + .../data/composite/varying/160/first/80.csv | 1 + .../data/composite/varying/160/first/90.csv | 1 + .../data/composite/varying/160/first/96.csv | 1 + .../data/composite/varying/160/second/140.csv | 1 + .../data/composite/varying/160/second/141.csv | 1 + .../data/composite/varying/160/second/142.csv | 1 + .../data/composite/varying/160/second/143.csv | 1 + .../data/composite/varying/160/second/144.csv | 1 + .../data/composite/varying/160/second/145.csv | 1 + .../data/composite/varying/160/second/146.csv | 1 + .../data/composite/varying/160/second/147.csv | 1 + .../data/composite/varying/160/second/148.csv | 1 + .../data/composite/varying/160/second/149.csv | 1 + .../data/composite/varying/160/second/150.csv | 1 + .../data/composite/varying/160/second/151.csv | 1 + .../data/composite/varying/160/second/152.csv | 1 + .../data/composite/varying/160/second/153.csv | 1 + .../data/composite/varying/160/second/154.csv | 1 + .../data/composite/varying/160/second/155.csv | 1 + .../data/composite/varying/160/second/156.csv | 1 + .../data/composite/varying/160/second/157.csv | 1 + .../data/composite/varying/160/second/158.csv | 1 + .../cz/crcs/ectester/data/degenerate/brainpool.xml | 362 +++++ .../cz/crcs/ectester/data/degenerate/cofactor.xml | 123 ++ .../java/cz/crcs/ectester/data/degenerate/keys.xml | 16 + .../java/cz/crcs/ectester/data/degenerate/secg.xml | 628 ++++++++ .../java/cz/crcs/ectester/data/gost/curves.xml | 16 + .../java/cz/crcs/ectester/data/gost/gost256.csv | 1 + .../java/cz/crcs/ectester/data/gost/gost512.csv | 1 + .../data/invalid/brainpool/brainpoolP160r1.xml | 344 +++++ .../data/invalid/brainpool/brainpoolP160t1.xml | 344 +++++ .../data/invalid/brainpool/brainpoolP192r1.xml | 386 +++++ .../data/invalid/brainpool/brainpoolP192t1.xml | 386 +++++ .../data/invalid/brainpool/brainpoolP224r1.xml | 434 ++++++ .../data/invalid/brainpool/brainpoolP224t1.xml | 434 ++++++ .../data/invalid/brainpool/brainpoolP256r1.xml | 482 +++++++ .../data/invalid/brainpool/brainpoolP256t1.xml | 482 +++++++ .../java/cz/crcs/ectester/data/invalid/keys.xml | 60 + .../cz/crcs/ectester/data/invalid/nist/b163.xml | 325 +++++ .../cz/crcs/ectester/data/invalid/nist/b233.xml | 427 ++++++ .../cz/crcs/ectester/data/invalid/nist/b283.xml | 499 +++++++ .../cz/crcs/ectester/data/invalid/nist/k163.xml | 325 +++++ .../cz/crcs/ectester/data/invalid/nist/k233.xml | 427 ++++++ .../cz/crcs/ectester/data/invalid/nist/k283.xml | 499 +++++++ .../crcs/ectester/data/invalid/secg/secp112r1.xml | 266 ++++ .../crcs/ectester/data/invalid/secg/secp112r2.xml | 266 ++++ .../crcs/ectester/data/invalid/secg/secp128r1.xml | 289 ++++ .../crcs/ectester/data/invalid/secg/secp128r2.xml | 290 ++++ .../crcs/ectester/data/invalid/secg/secp160r1.xml | 344 +++++ .../crcs/ectester/data/invalid/secg/secp160r2.xml | 344 +++++ .../crcs/ectester/data/invalid/secg/secp192r1.xml | 392 +++++ .../crcs/ectester/data/invalid/secg/secp224r1.xml | 434 ++++++ .../crcs/ectester/data/invalid/secg/secp256r1.xml | 482 +++++++ .../main/java/cz/crcs/ectester/data/misc/keys.xml | 50 + .../java/cz/crcs/ectester/data/misc/results.xml | 14 + .../main/java/cz/crcs/ectester/data/mnt/curves.xml | 74 + .../main/java/cz/crcs/ectester/data/mnt/mnt1.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt2_1.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt2_2.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt3_1.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt3_2.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt3_3.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt4.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt5_1.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt5_2.csv | 1 + .../main/java/cz/crcs/ectester/data/mnt/mnt5_3.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/b163.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/b233.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/b283.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/b409.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/b571.csv | 1 + .../java/cz/crcs/ectester/data/nist/curves.xml | 95 ++ .../main/java/cz/crcs/ectester/data/nist/k163.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/k233.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/k283.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/k409.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/k571.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/p192.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/p224.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/p256.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/p384.csv | 1 + .../main/java/cz/crcs/ectester/data/nist/p521.csv | 1 + .../cz/crcs/ectester/data/other/curve25519.csv | 1 + .../java/cz/crcs/ectester/data/other/curves.xml | 33 + .../main/java/cz/crcs/ectester/data/other/m221.csv | 1 + .../main/java/cz/crcs/ectester/data/other/m383.csv | 1 + .../main/java/cz/crcs/ectester/data/other/m511.csv | 1 + .../src/main/java/cz/crcs/ectester/data/schema.xsd | 133 ++ .../java/cz/crcs/ectester/data/secg/curves.xml | 161 +++ .../java/cz/crcs/ectester/data/secg/secp112r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp112r2.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp128r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp128r2.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp160k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp160r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp160r2.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp192k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp192r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp224r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp256k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp256r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp384r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/secp521r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect163k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect163r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect163r2.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect233k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect233r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect239k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect283k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect283r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect409k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect409r1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect571k1.csv | 1 + .../java/cz/crcs/ectester/data/secg/sect571r1.csv | 1 + .../cz/crcs/ectester/data/supersingular/curves.xml | 32 + .../cz/crcs/ectester/data/supersingular/ss128.csv | 1 + .../cz/crcs/ectester/data/supersingular/ss192.csv | 1 + .../cz/crcs/ectester/data/supersingular/ss224.csv | 1 + .../cz/crcs/ectester/data/supersingular/ss256.csv | 1 + .../data/test/brainpool/brainpoolP224r1-dh-raw.csv | 1 + .../test/brainpool/brainpoolP224r1-dh-sha1.csv | 1 + .../data/test/brainpool/brainpoolP224r1-keyA.csv | 1 + .../data/test/brainpool/brainpoolP224r1-keyB.csv | 1 + .../data/test/brainpool/brainpoolP256r1-dh-raw.csv | 1 + .../test/brainpool/brainpoolP256r1-dh-sha1.csv | 1 + .../data/test/brainpool/brainpoolP256r1-keyA.csv | 1 + .../data/test/brainpool/brainpoolP256r1-keyB.csv | 1 + .../data/test/brainpool/brainpoolP384r1-dh-raw.csv | 1 + .../test/brainpool/brainpoolP384r1-dh-sha1.csv | 1 + .../data/test/brainpool/brainpoolP384r1-keyA.csv | 1 + .../data/test/brainpool/brainpoolP384r1-keyB.csv | 1 + .../data/test/brainpool/brainpoolP512r1-dh-raw.csv | 1 + .../test/brainpool/brainpoolP512r1-dh-sha1.csv | 1 + .../data/test/brainpool/brainpoolP512r1-keyA.csv | 1 + .../data/test/brainpool/brainpoolP512r1-keyB.csv | 1 + .../main/java/cz/crcs/ectester/data/test/keys.xml | 216 +++ .../crcs/ectester/data/test/nist/b163-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/b163-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/b163-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/b163-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/b233-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/b233-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/b233-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/b233-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/b283-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/b283-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/b283-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/b283-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/b409-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/b409-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/b409-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/b409-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/b571-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/b571-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/b571-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/b571-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/k163-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/k163-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/k163-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/k163-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/k233-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/k233-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/k233-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/k233-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/k283-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/k283-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/k283-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/k283-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/k409-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/k409-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/k409-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/k409-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/k571-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/k571-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/k571-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/k571-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/p192-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/p192-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/p192-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/p192-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/p224-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/p224-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/p224-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/p224-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/p256-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/p256-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/p256-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/p256-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/p384-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/p384-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/p384-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/p384-keyIUT.csv | 1 + .../crcs/ectester/data/test/nist/p521-dhc-raw.csv | 1 + .../crcs/ectester/data/test/nist/p521-dhc-sha1.csv | 1 + .../crcs/ectester/data/test/nist/p521-keyCAVS.csv | 1 + .../crcs/ectester/data/test/nist/p521-keyIUT.csv | 1 + .../java/cz/crcs/ectester/data/test/results.xml | 263 ++++ .../ectester/data/test/secg/secp160r1-dh-kdf.csv | 1 + .../ectester/data/test/secg/secp160r1-dh-raw.csv | 1 + .../ectester/data/test/secg/secp160r1-dh-sha1.csv | 1 + .../ectester/data/test/secg/secp160r1-keyU.csv | 1 + .../ectester/data/test/secg/secp160r1-keyV.csv | 1 + .../ectester/data/test/secg/sect163k1-dh-kdf.csv | 1 + .../ectester/data/test/secg/sect163k1-dh-raw.csv | 1 + .../ectester/data/test/secg/sect163k1-dh-sha1.csv | 1 + .../ectester/data/test/secg/sect163k1-dhc-kdf.csv | 1 + .../ectester/data/test/secg/sect163k1-dhc-raw.csv | 1 + .../ectester/data/test/secg/sect163k1-dhc-sha1.csv | 1 + .../ectester/data/test/secg/sect163k1-keyU.csv | 1 + .../ectester/data/test/secg/sect163k1-keyV.csv | 1 + .../ectester/data/twist/cofactor/cofactor128p4.xml | 44 + .../ectester/data/twist/cofactor/cofactor160p4.xml | 74 + .../main/java/cz/crcs/ectester/data/twist/keys.xml | 54 + .../java/cz/crcs/ectester/data/twist/nist/b163.xml | 37 + .../java/cz/crcs/ectester/data/twist/nist/b233.xml | 43 + .../java/cz/crcs/ectester/data/twist/nist/b283.xml | 43 + .../java/cz/crcs/ectester/data/twist/nist/k163.xml | 31 + .../java/cz/crcs/ectester/data/twist/nist/k233.xml | 37 + .../java/cz/crcs/ectester/data/twist/nist/k283.xml | 13 + .../java/cz/crcs/ectester/data/twist/nist/p192.xml | 19 + .../java/cz/crcs/ectester/data/twist/nist/p224.xml | 43 + .../java/cz/crcs/ectester/data/twist/nist/p256.xml | 31 + .../java/cz/crcs/ectester/data/twist/nist/p384.xml | 7 + .../java/cz/crcs/ectester/data/twist/nist/p521.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp112r1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp112r2.xml | 37 + .../cz/crcs/ectester/data/twist/secg/secp128r1.xml | 25 + .../cz/crcs/ectester/data/twist/secg/secp128r2.xml | 19 + .../cz/crcs/ectester/data/twist/secg/secp160k1.xml | 37 + .../cz/crcs/ectester/data/twist/secg/secp160r1.xml | 19 + .../cz/crcs/ectester/data/twist/secg/secp160r2.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp192k1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp192r1.xml | 19 + .../cz/crcs/ectester/data/twist/secg/secp224r1.xml | 43 + .../cz/crcs/ectester/data/twist/secg/secp256k1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp256r1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/secp384r1.xml | 7 + .../cz/crcs/ectester/data/twist/secg/secp521r1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/sect163k1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/sect163r1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/sect163r2.xml | 37 + .../cz/crcs/ectester/data/twist/secg/sect233k1.xml | 37 + .../cz/crcs/ectester/data/twist/secg/sect233r1.xml | 43 + .../cz/crcs/ectester/data/twist/secg/sect239k1.xml | 31 + .../cz/crcs/ectester/data/twist/secg/sect283k1.xml | 13 + .../cz/crcs/ectester/data/twist/secg/sect283r1.xml | 43 + .../java/cz/crcs/ectester/data/wrong/curves.xml | 95 ++ .../main/java/cz/crcs/ectester/data/wrong/keys.xml | 28 + .../java/cz/crcs/ectester/data/wrong/results.xml | 213 +++ .../java/cz/crcs/ectester/data/wrong/wrongp128.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp160.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp192.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp224.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp256.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp384.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongp521.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt163.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt233.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt239.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt283.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt409.csv | 1 + .../java/cz/crcs/ectester/data/wrong/wrongt571.csv | 1 + .../java/cz/crcs/ectester/data/wycheproof/keys.xml | 892 ++++++++++++ .../cz/crcs/ectester/data/wycheproof/results.xml | 589 ++++++++ .../java/cz/crcs/ectester/data/x962/curves.xml | 48 + .../java/cz/crcs/ectester/data/x962/prime192v1.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime192v2.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime192v3.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime239v1.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime239v2.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime239v3.csv | 1 + .../java/cz/crcs/ectester/data/x962/prime256v1.csv | 1 + 479 files changed, 23937 insertions(+) create mode 100644 common/build.gradle.kts create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/Argument.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/Colors.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/cli/TreeParser.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldF2m.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/CustomECParameterSpec.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/CustomEllipticCurve.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Category.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Consts.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Curve.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Data.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_KAResult.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Key.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Keypair.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_Params.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/EC_SigResult.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/RawECPrivateKey.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/ec/RawECPublicKey.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/OutputLogger.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/TeeOutputStream.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/BaseTestable.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/CompoundTest.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/Result.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/SimpleTest.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/Test.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/TestCallback.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/TestException.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/TestSuiteException.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/test/Testable.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/ByteUtil.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/CardConsts.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/CardUtil.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java create mode 100644 common/src/main/java/cz/crcs/ectester/common/util/Util.java create mode 100644 common/src/main/java/cz/crcs/ectester/data/EC_Store.java create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous112.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous160.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous320.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous384.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous512.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/anssi/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/anssi/frp256v1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn158.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn190.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn222.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn254.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn286.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn318.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn350.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn382.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn414.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn446.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn478.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn510.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn542.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn574.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn606.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/bn638.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/bn/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/brainpool/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/categories.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p16.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p32.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p64.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p16.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p32.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p64.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t16.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t32.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t64.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t16.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t32.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t64.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/cofactor/secg_keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_384.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_512.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/carmichael_521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128_rg0.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite128_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160_rg0.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite160_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192_rg0.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite192_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224_rg0.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite224_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256_rg0.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite256_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite384.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite384_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/composite521_small.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/10.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/112.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/12.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/135.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/14.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/140.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/144.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/146.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/148.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/150.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/16.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/20.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/25.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2a.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2b.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/3.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/32.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/48.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/5.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/6.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/64.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/7.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/70.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/8.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/80.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/90.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/96.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/140.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/141.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/142.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/143.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/144.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/145.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/146.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/147.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/148.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/149.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/150.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/151.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/152.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/153.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/154.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/155.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/156.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/157.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/158.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/degenerate/brainpool.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/degenerate/cofactor.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/degenerate/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/degenerate/secg.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/gost/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/gost/gost256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/gost/gost512.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/b163.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/b233.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/b283.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/k163.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/k233.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/nist/k283.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp192r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp224r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp256r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/misc/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/misc/results.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_3.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt4.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_3.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/b163.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/b233.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/b283.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/b409.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/b571.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/k163.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/k233.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/k283.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/k409.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/k571.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/p192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/p224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/p256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/p384.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/nist/p521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/other/curve25519.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/other/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/other/m221.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/other/m383.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/other/m511.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/schema.xsd create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp112r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp112r2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp128r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp128r2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp160k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp160r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp160r2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp192k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp192r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp224r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp256k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp256r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp384r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/secp521r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect163k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect163r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect163r2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect233k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect233r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect239k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect283k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect283r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect409k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect409r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect571k1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/secg/sect571r1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/supersingular/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/supersingular/ss128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/supersingular/ss192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/supersingular/ss224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/supersingular/ss256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/results.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/b163.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/b233.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/b283.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/k163.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/k233.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/k283.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/p192.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/p224.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/p256.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/p384.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/nist/p521.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp224r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp384r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/secp521r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r2.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect239k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283k1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283r1.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/results.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp128.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp160.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp192.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp224.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp256.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp384.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongp521.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt163.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt233.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt239.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt283.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt409.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wrong/wrongt571.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/wycheproof/keys.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/wycheproof/results.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/curves.xml create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime192v1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime192v2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime192v3.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime239v1.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime239v2.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime239v3.csv create mode 100644 common/src/main/java/cz/crcs/ectester/data/x962/prime256v1.csv (limited to 'common') diff --git a/common/build.gradle.kts b/common/build.gradle.kts new file mode 100644 index 0000000..a336f6b --- /dev/null +++ b/common/build.gradle.kts @@ -0,0 +1,22 @@ +/* + * This file was generated by the Gradle 'init' task. + */ + +plugins { + id("java-library") +} + +repositories { + mavenCentral() +} + +dependencies { + // https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on + api("org.bouncycastle:bcprov-jdk18on:1.77") + // https://mvnrepository.com/artifact/com.klinec/jcardsim + api("com.klinec:jcardsim:3.0.5.11") + // https://mvnrepository.com/artifact/commons-cli/commons-cli + api("commons-cli:commons-cli:1.6.0") + // https://mvnrepository.com/artifact/org.yaml/snakeyaml + api("org.yaml:snakeyaml:1.19") +} \ No newline at end of file diff --git a/common/src/main/java/cz/crcs/ectester/common/cli/Argument.java b/common/src/main/java/cz/crcs/ectester/common/cli/Argument.java new file mode 100644 index 0000000..e9b6688 --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/cli/Argument.java @@ -0,0 +1,29 @@ +package cz.crcs.ectester.common.cli; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class Argument { + private String name; + private String desc; + private boolean required; + + public Argument(String name, String desc, boolean isRequired) { + this.name = name; + this.desc = desc; + this.required = isRequired; + } + + + public String getName() { + return name; + } + + public String getDesc() { + return desc; + } + + public boolean isRequired() { + return required; + } +} diff --git a/common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java b/common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java new file mode 100644 index 0000000..82ab530 --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java @@ -0,0 +1,161 @@ +package cz.crcs.ectester.common.cli; + +import cz.crcs.ectester.common.ec.EC_Category; +import cz.crcs.ectester.common.ec.EC_Data; +import cz.crcs.ectester.data.EC_Store; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Options; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.Map; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class CLITools { + + /** + * Print help. + */ + public static void help(String prog, String header, Options options, String footer, boolean usage) { + HelpFormatter help = new HelpFormatter(); + help.setOptionComparator(null); + help.printHelp(Colors.bold(prog), header, options, footer, usage); + } + + private static void help(HelpFormatter help, PrintWriter pw, String cmd, ParserOptions parser, int depth) { + String description = parser.getDescription() == null ? "" : " | " + parser.getDescription() + " |"; + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, String.format("%" + depth + "s" + cmd + ":" + description, " ")); + CLITools.help(help, pw, parser.getParser(), parser.getOptions(), depth + 1); + } + + private static void help(HelpFormatter help, PrintWriter pw, CommandLineParser cli, Options opts, int depth) { + if (opts.getOptions().size() > 0) { + help.printOptions(pw, HelpFormatter.DEFAULT_WIDTH, opts, HelpFormatter.DEFAULT_LEFT_PAD + depth, HelpFormatter.DEFAULT_DESC_PAD); + } + if (cli instanceof TreeParser) { + TreeParser tp = (TreeParser) cli; + for (Argument arg : tp.getArgs()) { + String argname = arg.isRequired() ? "<" + arg.getName() + ">" : "[" + arg.getName() + "]"; + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, String.format("%" + (depth + 1) + "s" + argname + " " + arg.getDesc(), " ")); + } + tp.getParsers().forEach((key, value) -> { + pw.println(); + help(help, pw, key, value, depth); + }); + } + } + + private static void usage(HelpFormatter help, PrintWriter pw, CommandLineParser cli, Options opts) { + StringWriter sw = new StringWriter(); + PrintWriter upw = new PrintWriter(sw); + help.printUsage(upw, HelpFormatter.DEFAULT_WIDTH, "", opts); + if (cli instanceof TreeParser) { + upw.print(" "); + TreeParser tp = (TreeParser) cli; + String[] keys = tp.getParsers().keySet().toArray(new String[tp.getParsers().size()]); + if (keys.length > 0 && !tp.isRequired()) { + upw.print("[ "); + } + + for (int i = 0; i < keys.length; ++i) { + String key = keys[i]; + ParserOptions value = tp.getParsers().get(key); + upw.print("(" + key); + usage(help, upw, value.getParser(), value.getOptions()); + upw.print(")"); + if (i != keys.length - 1) { + upw.print(" | "); + } + } + + if (keys.length > 0 && !tp.isRequired()) { + upw.print(" ]"); + } + + Argument[] args = tp.getArgs().toArray(new Argument[tp.getArgs().size()]); + if (args.length > 0) { + String[] argss = new String[tp.getArgs().size()]; + for (int i = 0; i < args.length; ++i) { + Argument arg = args[i]; + argss[i] = arg.isRequired() ? "<" + arg.getName() + ">" : "[" + arg.getName() + "]"; + } + upw.print(" " + String.join(" ", argss)); + } + } + pw.println(sw.toString().replaceAll("usage:( )?", "").replace("\n", "")); + } + + /** + * Print tree help. + */ + public static void help(String prog, String header, Options baseOpts, TreeParser baseParser, String footer, boolean printUsage) { + HelpFormatter help = new HelpFormatter(); + help.setOptionComparator(null); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, header); + if (printUsage) { + StringWriter uw = new StringWriter(); + PrintWriter upw = new PrintWriter(uw); + usage(help, upw, baseParser, baseOpts); + pw.print("usage: " + Colors.bold(prog)); + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, uw.toString()); + upw.close(); + pw.println(); + } + help(help, pw, baseParser, baseOpts, 1); + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, footer); + System.out.println(sw.toString()); + } + + public static void help(String header, TreeParser baseParser, String footer, String command) { + ParserOptions opts = baseParser.getParsers().get(command); + if (opts == null) { + System.err.println("Command not found: " + command); + return; + } + HelpFormatter help = new HelpFormatter(); + help.setOptionComparator(null); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, header); + help(help, pw, command, opts, 1); + help.printWrapped(pw, HelpFormatter.DEFAULT_WIDTH, footer); + System.out.println(sw.toString()); + } + + /** + * Print version info. + */ + public static void version(String description, String license) { + System.out.println(description); + System.out.println(license); + } + + /** + * List categories and named curves. + */ + public static void listNamed(EC_Store dataStore, String named) { + Map categories = dataStore.getCategories(); + if (named == null) { + // print all categories, briefly + for (EC_Category cat : categories.values()) { + System.out.println(cat); + } + } else if (categories.containsKey(named)) { + // print given category + System.out.println(categories.get(named)); + } else { + // print given object + EC_Data object = dataStore.getObject(EC_Data.class, named); + if (object != null) { + System.out.println(object); + } else { + System.err.println("Named object " + named + " not found!"); + } + } + } +} diff --git a/common/src/main/java/cz/crcs/ectester/common/cli/Colors.java b/common/src/main/java/cz/crcs/ectester/common/cli/Colors.java new file mode 100644 index 0000000..7601088 --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/cli/Colors.java @@ -0,0 +1,97 @@ +package cz.crcs.ectester.common.cli; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * @author Diogo Nunes + * @author Jan Jancar johny@neuromancer.sk + * Adapted from https://github.com/dialex/JCDP/ + */ +public class Colors { + public static boolean enabled = false; + + public interface ANSIParam { + } + + public enum Foreground implements ANSIParam { + BLACK("30"), RED("31"), GREEN("32"), YELLOW("33"), BLUE("34"), MAGENTA("35"), CYAN("36"), WHITE("37"), NONE(""); + private final String code; + + Foreground(String code) { + this.code = code; + } + + @Override + public String toString() { + return code; + } + } + + public enum Background implements ANSIParam { + BLACK("40"), RED("41"), GREEN("42"), YELLOW("43"), BLUE("44"), MAGENTA("45"), CYAN("46"), WHITE("47"), NONE(""); + private final String code; + + Background(String code) { + this.code = code; + } + + @Override + public String toString() { + return code; + } + } + + public enum Attribute implements ANSIParam { + CLEAR("0"), BOLD("1"), LIGHT("1"), DARK("2"), UNDERLINE("4"), REVERSE("7"), HIDDEN("8"), NONE(""); + private final String code; + + Attribute(String code) { + this.code = code; + } + + @Override + public String toString() { + return code; + } + } + + private static final String PREFIX = "\033["; + private static final String SEPARATOR = ";"; + private static final String POSTFIX = "m"; + + public static String colored(String text, ANSIParam... params) { + if (!enabled) { + return text; + } + Optional fg = Arrays.stream(params).filter(Foreground.class::isInstance).map(Foreground.class::cast).findFirst(); + Optional bg = Arrays.stream(params).filter(Background.class::isInstance).map(Background.class::cast).findFirst(); + List attr = Arrays.stream(params).filter(Attribute.class::isInstance).distinct().map(Attribute.class::cast).collect(Collectors.toList()); + + List apply = new LinkedList<>(); + apply.addAll(attr); + fg.ifPresent(apply::add); + bg.ifPresent(apply::add); + List codes = apply.stream().map(Object::toString).collect(Collectors.toList()); + return PREFIX + String.join(SEPARATOR, codes) + POSTFIX + text + PREFIX + Attribute.CLEAR + POSTFIX; + } + + public static String error(String text) { + return colored(text, Foreground.RED, Attribute.BOLD); + } + + public static String ok(String text) { + return colored(text, Foreground.GREEN, Attribute.BOLD); + } + + public static String bold(String text) { + return colored(text, Attribute.BOLD); + } + + public static String underline(String text) { + return colored(text, Attribute.UNDERLINE); + } +} \ No newline at end of file diff --git a/common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java b/common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java new file mode 100644 index 0000000..7300cbb --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java @@ -0,0 +1,35 @@ +package cz.crcs.ectester.common.cli; + +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.Options; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class ParserOptions { + private CommandLineParser parser; + private Options options; + private String description; + + public ParserOptions(CommandLineParser parser, Options options) { + this.parser = parser; + this.options = options; + } + + public ParserOptions(CommandLineParser parser, Options options, String description) { + this(parser, options); + this.description = description; + } + + public CommandLineParser getParser() { + return parser; + } + + public Options getOptions() { + return options; + } + + public String getDescription() { + return description; + } +} diff --git a/common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java b/common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java new file mode 100644 index 0000000..d758b78 --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java @@ -0,0 +1,179 @@ +package cz.crcs.ectester.common.cli; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.ParseException; + +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.Properties; +import java.util.function.BiFunction; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +@SuppressWarnings("serial") +public class TreeCommandLine extends CommandLine { + private String name = ""; + private TreeCommandLine next; + private CommandLine cli; + + public TreeCommandLine(CommandLine cli, TreeCommandLine next) { + this.cli = cli; + this.next = next; + } + + public TreeCommandLine(String name, CommandLine cli, TreeCommandLine next) { + this(cli, next); + this.name = name; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public String getNextName() { + if (next != null) { + return next.getName(); + } + return null; + } + + public TreeCommandLine getNext() { + return next; + } + + public boolean isNext(String next) { + return Objects.equals(getNextName(), next); + } + + public CommandLine getThis() { + return cli; + } + + public int getDepth() { + if (next == null) { + return 0; + } + return next.getDepth() + 1; + } + + private T getOption(String opt, BiFunction getter, T defaultValue) { + if (opt.contains(".")) { + String[] parts = opt.split("\\.", 2); + if (next != null && parts[0].equals(next.getName())) { + T result = getter.apply(next, parts[1]); + if (result != null) + return result; + return defaultValue; + } + return defaultValue; + } + return getter.apply(cli, opt); + } + + @Override + public boolean hasOption(String opt) { + return getOption(opt, CommandLine::hasOption, false); + } + + @Override + public boolean hasOption(char opt) { + return cli.hasOption(opt); + } + + @Override + public Object getParsedOptionValue(String opt) throws ParseException { + if (opt.contains(".")) { + String[] parts = opt.split("\\.", 2); + if (next != null && parts[0].equals(next.getName())) { + return next.getParsedOptionValue(parts[1]); + } + return null; + } + return cli.getParsedOptionValue(opt); + } + + @Override + public Object getOptionObject(char opt) { + return cli.getOptionObject(opt); + } + + @Override + public String getOptionValue(String opt) { + return getOption(opt, CommandLine::getOptionValue, null); + } + + @Override + public String getOptionValue(char opt) { + return cli.getOptionValue(opt); + } + + @Override + public String[] getOptionValues(String opt) { + return getOption(opt, CommandLine::getOptionValues, null); + } + + @Override + public String[] getOptionValues(char opt) { + return cli.getOptionValues(opt); + } + + @Override + public String getOptionValue(String opt, String defaultValue) { + return getOption(opt, CommandLine::getOptionValue, defaultValue); + } + + @Override + public String getOptionValue(char opt, String defaultValue) { + return cli.getOptionValue(opt, defaultValue); + } + + @Override + public Properties getOptionProperties(String opt) { + return getOption(opt, CommandLine::getOptionProperties, new Properties()); + } + + @Override + public Iterator