diff options
| -rw-r--r-- | .gitattributes | 9 | ||||
| -rw-r--r-- | .gitignore | 6 | ||||
| -rw-r--r-- | applet/build.gradle.kts | 136 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/AppletBase.java (renamed from src/cz/crcs/ectester/applet/AppletBase.java) | 200 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/AppletUtil.java (renamed from src/cz/crcs/ectester/applet/AppletUtil.java) | 8 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/CardConsts.java | 65 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/ECKeyGenerator.java (renamed from src/cz/crcs/ectester/applet/ECKeyGenerator.java) | 0 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/ECKeyTester.java (renamed from src/cz/crcs/ectester/applet/ECKeyTester.java) | 4 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java (renamed from src/cz/crcs/ectester/applet/ECTesterApplet.java) | 2 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java (renamed from src/cz/crcs/ectester/applet/ECTesterAppletExtended.java) | 2 | ||||
| -rw-r--r-- | applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java (renamed from src/cz/crcs/ectester/applet/EC_Consts.java) | 0 | ||||
| -rw-r--r-- | common/build.gradle.kts | 22 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/Argument.java (renamed from src/cz/crcs/ectester/common/cli/Argument.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java (renamed from src/cz/crcs/ectester/common/cli/CLITools.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/Colors.java (renamed from src/cz/crcs/ectester/common/cli/Colors.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java (renamed from src/cz/crcs/ectester/common/cli/ParserOptions.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java (renamed from src/cz/crcs/ectester/common/cli/TreeCommandLine.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/cli/TreeParser.java (renamed from src/cz/crcs/ectester/common/cli/TreeParser.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldF2m.java (renamed from src/cz/crcs/ectester/common/ec/CustomECFieldF2m.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java (renamed from src/cz/crcs/ectester/common/ec/CustomECFieldFp.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/CustomECParameterSpec.java (renamed from src/cz/crcs/ectester/common/ec/CustomECParameterSpec.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/CustomEllipticCurve.java (renamed from src/cz/crcs/ectester/common/ec/CustomEllipticCurve.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Category.java (renamed from src/cz/crcs/ectester/common/ec/EC_Category.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Consts.java | 1512 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Curve.java (renamed from src/cz/crcs/ectester/common/ec/EC_Curve.java) | 1 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Data.java (renamed from src/cz/crcs/ectester/common/ec/EC_Data.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_KAResult.java (renamed from src/cz/crcs/ectester/common/ec/EC_KAResult.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Key.java (renamed from src/cz/crcs/ectester/common/ec/EC_Key.java) | 2 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Keypair.java (renamed from src/cz/crcs/ectester/common/ec/EC_Keypair.java) | 2 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_Params.java (renamed from src/cz/crcs/ectester/common/ec/EC_Params.java) | 1 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/EC_SigResult.java (renamed from src/cz/crcs/ectester/common/ec/EC_SigResult.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/RawECPrivateKey.java (renamed from src/cz/crcs/ectester/common/ec/RawECPrivateKey.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/ec/RawECPublicKey.java (renamed from src/cz/crcs/ectester/common/ec/RawECPublicKey.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java (renamed from src/cz/crcs/ectester/common/output/BaseTextTestWriter.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java (renamed from src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java (renamed from src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/OutputLogger.java (renamed from src/cz/crcs/ectester/common/output/OutputLogger.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/TeeOutputStream.java (renamed from src/cz/crcs/ectester/common/output/TeeOutputStream.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java (renamed from src/cz/crcs/ectester/common/output/TeeTestWriter.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java (renamed from src/cz/crcs/ectester/common/output/TestWriter.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/BaseTestable.java (renamed from src/cz/crcs/ectester/common/test/BaseTestable.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/CompoundTest.java (renamed from src/cz/crcs/ectester/common/test/CompoundTest.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/Result.java (renamed from src/cz/crcs/ectester/common/test/Result.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/SimpleTest.java (renamed from src/cz/crcs/ectester/common/test/SimpleTest.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/Test.java (renamed from src/cz/crcs/ectester/common/test/Test.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/TestCallback.java (renamed from src/cz/crcs/ectester/common/test/TestCallback.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/TestException.java (renamed from src/cz/crcs/ectester/common/test/TestException.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java (renamed from src/cz/crcs/ectester/common/test/TestSuite.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/TestSuiteException.java (renamed from src/cz/crcs/ectester/common/test/TestSuiteException.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/test/Testable.java (renamed from src/cz/crcs/ectester/common/test/Testable.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/ByteUtil.java (renamed from src/cz/crcs/ectester/common/util/ByteUtil.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/CardConsts.java | 65 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/CardUtil.java (renamed from src/cz/crcs/ectester/common/util/CardUtil.java) | 41 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java (renamed from src/cz/crcs/ectester/common/util/ECUtil.java) | 18 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java (renamed from src/cz/crcs/ectester/common/util/FileUtil.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/Util.java (renamed from src/cz/crcs/ectester/common/util/Util.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/EC_Store.java (renamed from src/cz/crcs/ectester/data/EC_Store.java) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous112.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous112.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous128.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous160.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous160.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous192.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous224.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous256.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous320.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous320.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous384.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous384.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous512.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous512.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous521.csv (renamed from src/cz/crcs/ectester/data/anomalous/anomalous521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/curves.xml (renamed from src/cz/crcs/ectester/data/anomalous/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a1.csv (renamed from src/cz/crcs/ectester/data/anomalous/miyaji128a1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a2.csv (renamed from src/cz/crcs/ectester/data/anomalous/miyaji128a2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b1.csv (renamed from src/cz/crcs/ectester/data/anomalous/miyaji128b1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b2.csv (renamed from src/cz/crcs/ectester/data/anomalous/miyaji128b2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anssi/curves.xml (renamed from src/cz/crcs/ectester/data/anssi/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/anssi/frp256v1.csv (renamed from src/cz/crcs/ectester/data/anssi/frp256v1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn158.csv (renamed from src/cz/crcs/ectester/data/bn/bn158.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn190.csv (renamed from src/cz/crcs/ectester/data/bn/bn190.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn222.csv (renamed from src/cz/crcs/ectester/data/bn/bn222.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn254.csv (renamed from src/cz/crcs/ectester/data/bn/bn254.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn286.csv (renamed from src/cz/crcs/ectester/data/bn/bn286.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn318.csv (renamed from src/cz/crcs/ectester/data/bn/bn318.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn350.csv (renamed from src/cz/crcs/ectester/data/bn/bn350.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn382.csv (renamed from src/cz/crcs/ectester/data/bn/bn382.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn414.csv (renamed from src/cz/crcs/ectester/data/bn/bn414.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn446.csv (renamed from src/cz/crcs/ectester/data/bn/bn446.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn478.csv (renamed from src/cz/crcs/ectester/data/bn/bn478.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn510.csv (renamed from src/cz/crcs/ectester/data/bn/bn510.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn542.csv (renamed from src/cz/crcs/ectester/data/bn/bn542.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn574.csv (renamed from src/cz/crcs/ectester/data/bn/bn574.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn606.csv (renamed from src/cz/crcs/ectester/data/bn/bn606.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/bn638.csv (renamed from src/cz/crcs/ectester/data/bn/bn638.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/bn/curves.xml (renamed from src/cz/crcs/ectester/data/bn/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv (renamed from src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/brainpool/curves.xml (renamed from src/cz/crcs/ectester/data/brainpool/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/categories.xml (renamed from src/cz/crcs/ectester/data/categories.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p128.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p16.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p2.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p32.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p4.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p64.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p8.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p16.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p2.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p32.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p4.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p64.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p8.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t128.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t16.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t2.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t32.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t4.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t64.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t8.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p2.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p4.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p8.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t128.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t16.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t2.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t32.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t4.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t64.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t8.csv (renamed from src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/curves.xml (renamed from src/cz/crcs/ectester/data/cofactor/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/keys.xml (renamed from src/cz/crcs/ectester/data/cofactor/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/cofactor/secg_keys.xml (renamed from src/cz/crcs/ectester/data/cofactor/secg_keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_128.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_192.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_224.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_256.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_384.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_384.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_512.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_512.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/carmichael_521.csv (renamed from src/cz/crcs/ectester/data/composite/carmichael_521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128.csv (renamed from src/cz/crcs/ectester/data/composite/composite128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq.csv (renamed from src/cz/crcs/ectester/data/composite/composite128_pq.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq1.csv (renamed from src/cz/crcs/ectester/data/composite/composite128_pq1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq2.csv (renamed from src/cz/crcs/ectester/data/composite/composite128_pq2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128_rg0.csv (renamed from src/cz/crcs/ectester/data/composite/composite128_rg0.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite128_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite128_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160.csv (renamed from src/cz/crcs/ectester/data/composite/composite160.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq.csv (renamed from src/cz/crcs/ectester/data/composite/composite160_pq.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq1.csv (renamed from src/cz/crcs/ectester/data/composite/composite160_pq1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq2.csv (renamed from src/cz/crcs/ectester/data/composite/composite160_pq2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160_rg0.csv (renamed from src/cz/crcs/ectester/data/composite/composite160_rg0.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite160_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite160_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192.csv (renamed from src/cz/crcs/ectester/data/composite/composite192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq.csv (renamed from src/cz/crcs/ectester/data/composite/composite192_pq.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq1.csv (renamed from src/cz/crcs/ectester/data/composite/composite192_pq1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq2.csv (renamed from src/cz/crcs/ectester/data/composite/composite192_pq2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192_rg0.csv (renamed from src/cz/crcs/ectester/data/composite/composite192_rg0.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite192_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite192_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224.csv (renamed from src/cz/crcs/ectester/data/composite/composite224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq.csv (renamed from src/cz/crcs/ectester/data/composite/composite224_pq.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq1.csv (renamed from src/cz/crcs/ectester/data/composite/composite224_pq1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq2.csv (renamed from src/cz/crcs/ectester/data/composite/composite224_pq2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224_rg0.csv (renamed from src/cz/crcs/ectester/data/composite/composite224_rg0.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite224_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite224_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256.csv (renamed from src/cz/crcs/ectester/data/composite/composite256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq.csv (renamed from src/cz/crcs/ectester/data/composite/composite256_pq.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq1.csv (renamed from src/cz/crcs/ectester/data/composite/composite256_pq1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq2.csv (renamed from src/cz/crcs/ectester/data/composite/composite256_pq2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256_rg0.csv (renamed from src/cz/crcs/ectester/data/composite/composite256_rg0.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite256_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite256_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite384.csv (renamed from src/cz/crcs/ectester/data/composite/composite384.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite384_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite384_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite521.csv (renamed from src/cz/crcs/ectester/data/composite/composite521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/composite521_small.csv (renamed from src/cz/crcs/ectester/data/composite/composite521_small.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/curves.xml (renamed from src/cz/crcs/ectester/data/composite/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/keys.xml (renamed from src/cz/crcs/ectester/data/composite/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/10.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/10.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/112.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/112.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/12.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/12.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/128.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/135.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/135.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/14.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/14.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/140.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/140.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/144.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/144.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/146.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/146.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/148.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/148.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/150.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/150.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/152.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/16.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/16.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/20.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/20.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/25.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/25.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2a.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/2a.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2b.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/2b.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/3.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/3.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/32.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/32.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/4.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/48.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/48.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/5.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/5.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/6.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/6.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/64.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/64.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/7.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/7.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/70.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/70.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/8.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/8.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/80.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/80.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/90.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/90.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/96.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/first/96.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/140.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/140.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/141.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/141.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/142.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/142.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/143.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/143.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/144.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/144.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/145.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/145.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/146.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/146.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/147.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/147.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/148.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/148.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/149.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/149.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/150.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/150.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/151.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/151.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/152.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/152.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/153.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/153.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/154.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/154.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/155.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/155.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/156.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/156.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/157.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/157.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/158.csv (renamed from src/cz/crcs/ectester/data/composite/varying/160/second/158.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/degenerate/brainpool.xml (renamed from src/cz/crcs/ectester/data/degenerate/brainpool.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/degenerate/cofactor.xml (renamed from src/cz/crcs/ectester/data/degenerate/cofactor.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/degenerate/keys.xml (renamed from src/cz/crcs/ectester/data/degenerate/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/degenerate/secg.xml (renamed from src/cz/crcs/ectester/data/degenerate/secg.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/gost/curves.xml (renamed from src/cz/crcs/ectester/data/gost/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/gost/gost256.csv (renamed from src/cz/crcs/ectester/data/gost/gost256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/gost/gost512.csv (renamed from src/cz/crcs/ectester/data/gost/gost512.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml (renamed from src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/keys.xml (renamed from src/cz/crcs/ectester/data/invalid/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/b163.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/b163.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/b233.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/b233.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/b283.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/b283.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/k163.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/k163.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/k233.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/k233.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/nist/k283.xml (renamed from src/cz/crcs/ectester/data/invalid/nist/k283.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r2.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r2.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r2.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp192r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp224r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp256r1.xml (renamed from src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/misc/keys.xml (renamed from src/cz/crcs/ectester/data/misc/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/misc/results.xml (renamed from src/cz/crcs/ectester/data/misc/results.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/curves.xml (renamed from src/cz/crcs/ectester/data/mnt/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt1.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_1.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt2_1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_2.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt2_2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_1.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt3_1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_2.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt3_2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_3.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt3_3.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt4.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt4.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_1.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt5_1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_2.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt5_2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_3.csv (renamed from src/cz/crcs/ectester/data/mnt/mnt5_3.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/b163.csv (renamed from src/cz/crcs/ectester/data/nist/b163.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/b233.csv (renamed from src/cz/crcs/ectester/data/nist/b233.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/b283.csv (renamed from src/cz/crcs/ectester/data/nist/b283.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/b409.csv (renamed from src/cz/crcs/ectester/data/nist/b409.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/b571.csv (renamed from src/cz/crcs/ectester/data/nist/b571.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/curves.xml (renamed from src/cz/crcs/ectester/data/nist/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/k163.csv (renamed from src/cz/crcs/ectester/data/nist/k163.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/k233.csv (renamed from src/cz/crcs/ectester/data/nist/k233.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/k283.csv (renamed from src/cz/crcs/ectester/data/nist/k283.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/k409.csv (renamed from src/cz/crcs/ectester/data/nist/k409.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/k571.csv (renamed from src/cz/crcs/ectester/data/nist/k571.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/p192.csv (renamed from src/cz/crcs/ectester/data/nist/p192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/p224.csv (renamed from src/cz/crcs/ectester/data/nist/p224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/p256.csv (renamed from src/cz/crcs/ectester/data/nist/p256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/p384.csv (renamed from src/cz/crcs/ectester/data/nist/p384.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/nist/p521.csv (renamed from src/cz/crcs/ectester/data/nist/p521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/other/curve25519.csv (renamed from src/cz/crcs/ectester/data/other/curve25519.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/other/curves.xml (renamed from src/cz/crcs/ectester/data/other/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/other/m221.csv (renamed from src/cz/crcs/ectester/data/other/m221.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/other/m383.csv (renamed from src/cz/crcs/ectester/data/other/m383.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/other/m511.csv (renamed from src/cz/crcs/ectester/data/other/m511.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/schema.xsd (renamed from src/cz/crcs/ectester/data/schema.xsd) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/curves.xml (renamed from src/cz/crcs/ectester/data/secg/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp112r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp112r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp112r2.csv (renamed from src/cz/crcs/ectester/data/secg/secp112r2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp128r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp128r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp128r2.csv (renamed from src/cz/crcs/ectester/data/secg/secp128r2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp160k1.csv (renamed from src/cz/crcs/ectester/data/secg/secp160k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp160r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp160r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp160r2.csv (renamed from src/cz/crcs/ectester/data/secg/secp160r2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp192k1.csv (renamed from src/cz/crcs/ectester/data/secg/secp192k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp192r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp192r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp224r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp224r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp256k1.csv (renamed from src/cz/crcs/ectester/data/secg/secp256k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp256r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp256r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp384r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp384r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/secp521r1.csv (renamed from src/cz/crcs/ectester/data/secg/secp521r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect163k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect163k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect163r1.csv (renamed from src/cz/crcs/ectester/data/secg/sect163r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect163r2.csv (renamed from src/cz/crcs/ectester/data/secg/sect163r2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect233k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect233k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect233r1.csv (renamed from src/cz/crcs/ectester/data/secg/sect233r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect239k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect239k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect283k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect283k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect283r1.csv (renamed from src/cz/crcs/ectester/data/secg/sect283r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect409k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect409k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect409r1.csv (renamed from src/cz/crcs/ectester/data/secg/sect409r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect571k1.csv (renamed from src/cz/crcs/ectester/data/secg/sect571k1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/secg/sect571r1.csv (renamed from src/cz/crcs/ectester/data/secg/sect571r1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/supersingular/curves.xml (renamed from src/cz/crcs/ectester/data/supersingular/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/supersingular/ss128.csv (renamed from src/cz/crcs/ectester/data/supersingular/ss128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/supersingular/ss192.csv (renamed from src/cz/crcs/ectester/data/supersingular/ss192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/supersingular/ss224.csv (renamed from src/cz/crcs/ectester/data/supersingular/ss224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/supersingular/ss256.csv (renamed from src/cz/crcs/ectester/data/supersingular/ss256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv (renamed from src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/keys.xml (renamed from src/cz/crcs/ectester/data/test/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv (renamed from src/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv (renamed from src/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/results.xml (renamed from src/cz/crcs/ectester/data/test/results.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv (renamed from src/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv (renamed from src/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv (renamed from src/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv (renamed from src/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml (renamed from src/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml (renamed from src/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/keys.xml (renamed from src/cz/crcs/ectester/data/twist/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/b163.xml (renamed from src/cz/crcs/ectester/data/twist/nist/b163.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/b233.xml (renamed from src/cz/crcs/ectester/data/twist/nist/b233.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/b283.xml (renamed from src/cz/crcs/ectester/data/twist/nist/b283.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/k163.xml (renamed from src/cz/crcs/ectester/data/twist/nist/k163.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/k233.xml (renamed from src/cz/crcs/ectester/data/twist/nist/k233.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/k283.xml (renamed from src/cz/crcs/ectester/data/twist/nist/k283.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/p192.xml (renamed from src/cz/crcs/ectester/data/twist/nist/p192.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/p224.xml (renamed from src/cz/crcs/ectester/data/twist/nist/p224.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/p256.xml (renamed from src/cz/crcs/ectester/data/twist/nist/p256.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/p384.xml (renamed from src/cz/crcs/ectester/data/twist/nist/p384.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/nist/p521.xml (renamed from src/cz/crcs/ectester/data/twist/nist/p521.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp112r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r2.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp112r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp128r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r2.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp128r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp160k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp160r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r2.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp160r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp192k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp192r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp224r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp224r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp256k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp256r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp384r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp384r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/secp521r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/secp521r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect163k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect163r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r2.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect163r2.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect233k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect233r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect239k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect239k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283k1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect283k1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283r1.xml (renamed from src/cz/crcs/ectester/data/twist/secg/sect283r1.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/curves.xml (renamed from src/cz/crcs/ectester/data/wrong/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/keys.xml (renamed from src/cz/crcs/ectester/data/wrong/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/results.xml (renamed from src/cz/crcs/ectester/data/wrong/results.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp128.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp128.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp160.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp160.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp192.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp192.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp224.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp224.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp256.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp256.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp384.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp384.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongp521.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongp521.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt163.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt163.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt233.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt233.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt239.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt239.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt283.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt283.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt409.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt409.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wrong/wrongt571.csv (renamed from src/cz/crcs/ectester/data/wrong/wrongt571.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wycheproof/keys.xml (renamed from src/cz/crcs/ectester/data/wycheproof/keys.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/wycheproof/results.xml (renamed from src/cz/crcs/ectester/data/wycheproof/results.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/curves.xml (renamed from src/cz/crcs/ectester/data/x962/curves.xml) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime192v1.csv (renamed from src/cz/crcs/ectester/data/x962/prime192v1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime192v2.csv (renamed from src/cz/crcs/ectester/data/x962/prime192v2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime192v3.csv (renamed from src/cz/crcs/ectester/data/x962/prime192v3.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime239v1.csv (renamed from src/cz/crcs/ectester/data/x962/prime239v1.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime239v2.csv (renamed from src/cz/crcs/ectester/data/x962/prime239v2.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime239v3.csv (renamed from src/cz/crcs/ectester/data/x962/prime239v3.csv) | 0 | ||||
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/data/x962/prime256v1.csv (renamed from src/cz/crcs/ectester/data/x962/prime256v1.csv) | 0 | ||||
| -rw-r--r-- | dist/README.TXT | 16 | ||||
| -rw-r--r-- | ext/ant-javacard.jar | bin | 372534 -> 0 bytes | |||
| m--------- | ext/sdks | 0 | ||||
| -rw-r--r-- | ext/wolfcrypt-jni.jar (renamed from lib/wolfcrypt-jni.jar) | bin | 83453 -> 83453 bytes | |||
| -rw-r--r-- | gradle/wrapper/gradle-wrapper.jar | bin | 0 -> 43462 bytes | |||
| -rw-r--r-- | gradle/wrapper/gradle-wrapper.properties | 7 | ||||
| -rwxr-xr-x | gradlew | 249 | ||||
| -rw-r--r-- | gradlew.bat | 92 | ||||
| -rw-r--r-- | lib/bcprov-jdk18on-177.jar | bin | 8372360 -> 0 bytes | |||
| -rw-r--r-- | lib/commons-cli-1.5.0-javadoc.jar | bin | 185927 -> 0 bytes | |||
| -rw-r--r-- | lib/commons-cli-1.5.0.jar | bin | 58284 -> 0 bytes | |||
| -rw-r--r-- | lib/jcardsim-3.0.5.11.jar | bin | 499643 -> 0 bytes | |||
| -rw-r--r-- | lib/snakeyaml-1.19.jar | bin | 297518 -> 0 bytes | |||
| -rw-r--r-- | nbproject/copylibstask.jar | bin | 11902 -> 0 bytes | |||
| -rw-r--r-- | nbproject/dist-build.xml | 39 | ||||
| -rw-r--r-- | nbproject/genfiles.properties | 8 | ||||
| -rwxr-xr-x | nbproject/keystore | bin | 3987 -> 0 bytes | |||
| -rw-r--r-- | nbproject/reader/build-impl.xml | 1413 | ||||
| -rw-r--r-- | nbproject/reader/manifest.mf | 4 | ||||
| -rw-r--r-- | nbproject/reader/project.properties | 80 | ||||
| -rw-r--r-- | nbproject/reader/project.xml | 15 | ||||
| -rw-r--r-- | nbproject/standalone/build-impl.xml | 1413 | ||||
| -rw-r--r-- | nbproject/standalone/manifest.mf | 4 | ||||
| -rw-r--r-- | nbproject/standalone/project.properties | 81 | ||||
| -rw-r--r-- | nbproject/standalone/project.xml | 15 | ||||
| -rw-r--r-- | reader/build.gradle.kts | 20 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/CardMngr.java (renamed from src/cz/crcs/ectester/reader/CardMngr.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java (renamed from src/cz/crcs/ectester/reader/ECTesterReader.java) | 84 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/ISO7816_status_words.txt (renamed from src/cz/crcs/ectester/reader/ISO7816_status_words.txt) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/command/Command.java (renamed from src/cz/crcs/ectester/reader/command/Command.java) | 90 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/FileTestWriter.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/output/ResponseWriter.java (renamed from src/cz/crcs/ectester/reader/output/ResponseWriter.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/output/TextTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/TextTestWriter.java) | 4 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/output/XMLTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/XMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/output/YAMLTestWriter.java (renamed from src/cz/crcs/ectester/reader/output/YAMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/response/Response.java (renamed from src/cz/crcs/ectester/reader/response/Response.java) | 36 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardCofactorSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardCofactorSuite.java) | 16 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardCompositeSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardCompositeSuite.java) | 22 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardCompressionSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardCompressionSuite.java) | 32 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardDefaultSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardDefaultSuite.java) | 24 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardDegenerateSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardDegenerateSuite.java) | 16 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java) | 86 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardInvalidSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardInvalidSuite.java) | 16 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardMiscSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardMiscSuite.java) | 14 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardSignatureSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardSignatureSuite.java) | 12 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardTestSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardTestSuite.java) | 18 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardTestVectorSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardTestVectorSuite.java) | 33 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardTwistSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardTwistSuite.java) | 16 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CardWrongSuite.java (renamed from src/cz/crcs/ectester/reader/test/CardWrongSuite.java) | 56 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CommandTest.java (renamed from src/cz/crcs/ectester/reader/test/CommandTest.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/CommandTestable.java (renamed from src/cz/crcs/ectester/reader/test/CommandTestable.java) | 0 | ||||
| -rw-r--r-- | reader/src/main/java/cz/crcs/ectester/reader/test/PerformanceTest.java (renamed from src/cz/crcs/ectester/reader/test/PerformanceTest.java) | 6 | ||||
| -rw-r--r-- | settings.gradle.kts | 12 | ||||
| -rw-r--r-- | standalone/build.gradle.kts | 23 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java (renamed from src/cz/crcs/ectester/standalone/ECTesterStandalone.java) | 15 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/consts/Ident.java (renamed from src/cz/crcs/ectester/standalone/consts/Ident.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java (renamed from src/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java (renamed from src/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/consts/SignatureIdent.java (renamed from src/cz/crcs/ectester/standalone/consts/SignatureIdent.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java (renamed from src/cz/crcs/ectester/standalone/libs/BoringsslLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java (renamed from src/cz/crcs/ectester/standalone/libs/BotanLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java (renamed from src/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/CryptoppLib.java (renamed from src/cz/crcs/ectester/standalone/libs/CryptoppLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/ECLibrary.java (renamed from src/cz/crcs/ectester/standalone/libs/ECLibrary.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java (renamed from src/cz/crcs/ectester/standalone/libs/GcryptLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/IppcpLib.java (renamed from src/cz/crcs/ectester/standalone/libs/IppcpLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java (renamed from src/cz/crcs/ectester/standalone/libs/LibresslLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/MatrixsslLib.java (renamed from src/cz/crcs/ectester/standalone/libs/MatrixsslLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/MbedTLSLib.java (renamed from src/cz/crcs/ectester/standalone/libs/MbedTLSLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/MscngLib.java (renamed from src/cz/crcs/ectester/standalone/libs/MscngLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java (renamed from src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/NettleLib.java (renamed from src/cz/crcs/ectester/standalone/libs/NettleLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java (renamed from src/cz/crcs/ectester/standalone/libs/OpensslLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java (renamed from src/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/SunECLib.java (renamed from src/cz/crcs/ectester/standalone/libs/SunECLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java (renamed from src/cz/crcs/ectester/standalone/libs/TomcryptLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/WolfCryptLib.java (renamed from src/cz/crcs/ectester/standalone/libs/WolfCryptLib.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.clang-format (renamed from src/cz/crcs/ectester/standalone/libs/jni/.clang-format) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.gitignore (renamed from src/cz/crcs/ectester/standalone/libs/jni/.gitignore) | 2 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile (renamed from src/cz/crcs/ectester/standalone/libs/jni/Makefile) | 0 | ||||
| -rwxr-xr-x | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile.bat (renamed from src/cz/crcs/ectester/standalone/libs/jni/Makefile.bat) | 326 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java (renamed from src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/boringssl.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/boringssl.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/botan.cpp (renamed from src/cz/crcs/ectester/standalone/libs/jni/botan.cpp) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/c_timing.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.h (renamed from src/cz/crcs/ectester/standalone/libs/jni/c_timing.h) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/c_utils.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.h (renamed from src/cz/crcs/ectester/standalone/libs/jni/c_utils.h) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp (renamed from src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp (renamed from src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp (renamed from src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/gcrypt.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/ippcp.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/ippcp.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/libressl.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/libressl.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/matrixssl.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mbedtls.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mscng.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/mscng.c) | 2544 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/native.h (renamed from src/cz/crcs/ectester/standalone/libs/jni/native.h) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/nettle.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/nettle.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/openssl.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/openssl.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c (renamed from src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/output/TextTestWriter.java (renamed from src/cz/crcs/ectester/standalone/output/TextTestWriter.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/output/XMLTestWriter.java (renamed from src/cz/crcs/ectester/standalone/output/XMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/output/YAMLTestWriter.java (renamed from src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java (renamed from src/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java (renamed from src/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java (renamed from src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java (renamed from src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java (renamed from src/cz/crcs/ectester/standalone/test/base/PerformanceTest.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTest.java (renamed from src/cz/crcs/ectester/standalone/test/base/SignatureTest.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTestable.java (renamed from src/cz/crcs/ectester/standalone/test/base/SignatureTestable.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java (renamed from src/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java) | 1 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java) | 0 | ||||
| -rw-r--r-- | standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java (renamed from src/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java) | 1 | ||||
| -rw-r--r-- | util/applet/GPPcScConnectionPlugin.dll (renamed from applet/GPPcScConnectionPlugin.dll) | bin | 15360 -> 15360 bytes | |||
| -rw-r--r-- | util/applet/GPShell.exe (renamed from applet/GPShell.exe) | bin | 33280 -> 33280 bytes | |||
| -rw-r--r-- | util/applet/GlobalPlatform.dll (renamed from applet/GlobalPlatform.dll) | bin | 117248 -> 117248 bytes | |||
| -rw-r--r-- | util/applet/gp.exe (renamed from applet/gp.exe) | bin | 908346 -> 908346 bytes | |||
| -rw-r--r-- | util/applet/gp.jar (renamed from applet/gp.jar) | bin | 894200 -> 894200 bytes | |||
| -rw-r--r-- | util/applet/gppro_upload.bat (renamed from applet/gppro_upload.bat) | 0 | ||||
| -rwxr-xr-x | util/applet/gppro_upload.sh (renamed from applet/gppro_upload.sh) | 0 | ||||
| -rw-r--r-- | util/applet/gppro_upload_emv.bat (renamed from applet/gppro_upload_emv.bat) | 0 | ||||
| -rwxr-xr-x | util/applet/gppro_upload_emv.sh (renamed from applet/gppro_upload_emv.sh) | 0 | ||||
| -rw-r--r-- | util/applet/libeay32.dll (renamed from applet/libeay32.dll) | bin | 1017344 -> 1017344 bytes | |||
| -rw-r--r-- | util/applet/openkms-gp.jar (renamed from applet/openkms-gp.jar) | bin | 78142 -> 78142 bytes | |||
| -rw-r--r-- | util/applet/ssleay32.dll (renamed from applet/ssleay32.dll) | bin | 200704 -> 200704 bytes | |||
| -rw-r--r-- | util/applet/zlib1.dll (renamed from applet/zlib1.dll) | bin | 75264 -> 75264 bytes |
633 files changed, 4048 insertions, 5009 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..097f9f9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf + @@ -40,3 +40,9 @@ # Python stuff /util/__pycache__/ /util/.ipynb_checkpoints/ + +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/applet/build.gradle.kts b/applet/build.gradle.kts new file mode 100644 index 0000000..d93496e --- /dev/null +++ b/applet/build.gradle.kts @@ -0,0 +1,136 @@ +version "0.3.3" + +// Buildscript configuration for the javacard-gradle plugin. +// Do not modify this particular block. Dependencies for the project are lower. +buildscript { + repositories { + mavenCentral() + maven("https://javacard.pro/maven") + maven("https://deadcode.me/mvn") + // mavenLocal() + } + dependencies { + classpath("com.klinec:gradle-javacard:1.8.0") + } +} + +plugins { + id("com.klinec.gradle.javacard") version "1.8.0" + id("java") +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } +} + +// Common settings, definitions +val rootPath = rootDir.absolutePath +val libs = "$rootPath/ext/libs" +val libsSdk = "$rootPath/ext/sdks" + +// Repositories for your project +repositories { + mavenCentral() + // mavenLocal() // for local maven repository if needed + + // Repository with JCardSim, Globalplatform, etc, ... + maven("https://javacard.pro/maven") + maven("https://deadcode.me/mvn") + + // Local lib repository + flatDir { + dirs(libs) + } +} + +// Dependencies for your project +dependencies { + jcardsim("com.klinec:jcardsim:3.0.5.11") + implementation("com.klinec:jcardsim:3.0.5.11") + + testImplementation(platform("org.junit:junit-bom:5.10.2")) + testImplementation("org.junit.jupiter:junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + //testImplementation(group = "com.klinec", name = "javacard-tools", version = "1.0.4") { + // exclude group = "com.klinec", module = "jcardsim" + //} + + // Include plugin as it has bundled GP & other tools. + // Alternative: include GP manually, but the included + // version has to be compatible with the plugin. + runtimeOnly("com.klinec:gradle-javacard:1.8.0") +} + +//task dumpClassPath (dependsOn: listOf("idea")) { +// doLast { +// println "Gradle classpath:\n- "+configurations.implementation.files*.name.join("\n- ") +// println "-------\n" +// println "IDEA classpath: \n- "+file(project.name+".iml").readLines() +// .grep(~ / . * "jar:.*/).collect { it.split("listOf(\\/)")[-3].trim() }.join("\n-") +// println "-------\n" +// } +//} + +tasks.named<Test>("test") { + useJUnitPlatform() +} + +// JavaCard SDKs and libraries +val JC212 = libsSdk + "/jc212_kit" +val JC221 = libsSdk + "/jc221_kit" +val JC222 = libsSdk + "/jc222_kit" +val JC303 = libsSdk + "/jc303_kit" +val JC304 = libsSdk + "/jc304_kit" +val JC305 = libsSdk + "/jc305u1_kit" +val JC305u2 = libsSdk + "/jc305u2_kit" +val JC305u3 = libsSdk + "/jc305u3_kit" + +// Which JavaCard SDK to use - select +// In order to compile JC222 and lower you have to have Java SDK <= 1.8 +// For more info on JavaCard vs JDK version requirements inspect: +// https://github.com/martinpaljak/ant-javacard/wiki/Version-compatibility +// +// JC310b43 supports building also for lower versions (cap.targetsdk). +// If another SDK is selected, please comment the cap.targetsdk setting. +val JC_SELECTED = JC222 + + +javacard { + + config { + jckit(JC_SELECTED) + + // Using custom repo with jcardsim + debugGpPro(true) + addImplicitJcardSim(false) + addImplicitJcardSimJunit(false) + + cap { + packageName("cz.crcs.ectester.applet") + version("0.3.3") + aid("01:ff:ff:04:05:06:07:08:09") + output("applet.cap") + + // JC310b43 supports compilation targeting for lower API versions. + // Here you can specify path to the SDK you want to use. + // Only JC304 and higher are supported for targeting. + // If JC310b43 is not used, targetsdk cannot be set. + targetsdk(JC_SELECTED) + + // Override java bytecode version if needed. + // javaversion "1.7" + + applet { + className("applet.MainApplet") + aid("01:ff:ff:04:05:06:07:08:09:01:02") + } + + // dependencies { + // remote "com.klinec:globalplatform:2.1.1" + // } + } + } +}
\ No newline at end of file diff --git a/src/cz/crcs/ectester/applet/AppletBase.java b/applet/src/main/java/cz/crcs/ectester/applet/AppletBase.java index 9a8a479..411e5a1 100644 --- a/src/cz/crcs/ectester/applet/AppletBase.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/AppletBase.java @@ -11,70 +11,6 @@ import javacard.security.*; * @author Jan Jancar johny@neuromancer.sk */ public abstract class AppletBase extends Applet { - - // MAIN INSTRUCTION CLASS - public static final byte CLA_ECTESTERAPPLET = (byte) 0xB0; - - // INSTRUCTIONS - public static final byte INS_ALLOCATE = (byte) 0x5a; - public static final byte INS_CLEAR = (byte) 0x5b; - public static final byte INS_SET = (byte) 0x5c; - public static final byte INS_TRANSFORM = (byte) 0x5d; - public static final byte INS_GENERATE = (byte) 0x5e; - public static final byte INS_EXPORT = (byte) 0x5f; - public static final byte INS_ECDH = (byte) 0x70; - public static final byte INS_ECDH_DIRECT = (byte) 0x71; - public static final byte INS_ECDSA = (byte) 0x72; - public static final byte INS_ECDSA_SIGN = (byte) 0x73; - public static final byte INS_ECDSA_VERIFY = (byte) 0x74; - public static final byte INS_CLEANUP = (byte) 0x75; - public static final byte INS_ALLOCATE_KA = (byte) 0x76; - public static final byte INS_ALLOCATE_SIG = (byte) 0x77; - public static final byte INS_GET_INFO = (byte) 0x78; - public static final byte INS_SET_DRY_RUN_MODE = (byte) 0x79; - public static final byte INS_BUFFER = (byte) 0x7a; - public static final byte INS_PERFORM = (byte) 0x7b; - - // PARAMETERS for P1 and P2 - public static final byte KEYPAIR_LOCAL = (byte) 0x01; - public static final byte KEYPAIR_REMOTE = (byte) 0x02; - public static final byte KEYPAIR_BOTH = KEYPAIR_LOCAL | KEYPAIR_REMOTE; - public static final byte BUILD_KEYPAIR = (byte) 0x01; - public static final byte BUILD_KEYBUILDER = (byte) 0x02; - public static final byte EXPORT_TRUE = (byte) 0xff; - public static final byte EXPORT_FALSE = (byte) 0x00; - public static final byte MODE_NORMAL = (byte) 0xaa; - public static final byte MODE_DRY_RUN = (byte) 0xbb; - - // STATUS WORDS - public static final short SW_SIG_VERIFY_FAIL = (short) 0x0ee1; - public static final short SW_DH_DHC_MISMATCH = (short) 0x0ee2; - public static final short SW_KEYPAIR_NULL = (short) 0x0ee3; - public static final short SW_KA_NULL = (short) 0x0ee4; - public static final short SW_SIGNATURE_NULL = (short) 0x0ee5; - public static final short SW_OBJECT_NULL = (short) 0x0ee6; - public static final short SW_CANNOT_FIT = (short) 0x0ee7; - public static final short SW_Exception = (short) 0xff01; - public static final short SW_ArrayIndexOutOfBoundsException = (short) 0xff02; - public static final short SW_ArithmeticException = (short) 0xff03; - public static final short SW_ArrayStoreException = (short) 0xff04; - public static final short SW_NullPointerException = (short) 0xff05; - public static final short SW_NegativeArraySizeException = (short) 0xff06; - public static final short SW_CryptoException_prefix = (short) 0xf100; - public static final short SW_SystemException_prefix = (short) 0xf200; - public static final short SW_PINException_prefix = (short) 0xf300; - public static final short SW_TransactionException_prefix = (short) 0xf400; - public static final short SW_CardRuntimeException_prefix = (short) 0xf500; - - // - public static final short BASE_221 = (short) 0x0221; - public static final short BASE_222 = (short) 0x0222; - - // - public static final short CDATA_BASIC = (short) 5; - public static final short CDATA_EXTENDED = (short) 7; - - // public static final byte[] VERSION = {'v', '0', '.', '3', '.', '3'}; public static final short ARRAY_LENGTH = 0x100; @@ -171,12 +107,12 @@ public abstract class AppletBase extends Applet { return; } - if (cla == CLA_ECTESTERAPPLET) { + if (cla == CardConsts.CLA_ECTESTERAPPLET) { try { - if (ins == INS_BUFFER) { + if (ins == CardConsts.INS_BUFFER) { short read = readAPDU(apdu, true); if (read == -1) { - ISOException.throwIt(SW_CANNOT_FIT); + ISOException.throwIt(CardConsts.SW_CANNOT_FIT); return; } apduEnd += read; @@ -184,12 +120,12 @@ public abstract class AppletBase extends Applet { return; } else { apduEnd = 0; - if (ins == INS_PERFORM) { + if (ins == CardConsts.INS_PERFORM) { ins = apduArray[ISO7816.OFFSET_INS]; apdu.setIncomingAndReceive(); } else { if (readAPDU(apdu, false) == -1) { - ISOException.throwIt(SW_CANNOT_FIT); + ISOException.throwIt(CardConsts.SW_CANNOT_FIT); return; } } @@ -197,52 +133,52 @@ public abstract class AppletBase extends Applet { short length = 0; switch (ins) { - case INS_ALLOCATE_KA: + case CardConsts.INS_ALLOCATE_KA: length = insAllocateKA(apdu); break; - case INS_ALLOCATE_SIG: + case CardConsts.INS_ALLOCATE_SIG: length = insAllocateSig(apdu); break; - case INS_ALLOCATE: + case CardConsts.INS_ALLOCATE: length = insAllocate(apdu); break; - case INS_CLEAR: + case CardConsts.INS_CLEAR: length = insClear(apdu); break; - case INS_SET: + case CardConsts.INS_SET: length = insSet(apdu); break; - case INS_TRANSFORM: + case CardConsts.INS_TRANSFORM: length = insTransform(apdu); break; - case INS_GENERATE: + case CardConsts.INS_GENERATE: length = insGenerate(apdu); break; - case INS_EXPORT: + case CardConsts.INS_EXPORT: length = insExport(apdu); break; - case INS_ECDH: + case CardConsts.INS_ECDH: length = insECDH(apdu); break; - case INS_ECDH_DIRECT: + case CardConsts.INS_ECDH_DIRECT: length = insECDH_direct(apdu); break; - case INS_ECDSA: + case CardConsts.INS_ECDSA: length = insECDSA(apdu); break; - case INS_ECDSA_SIGN: + case CardConsts.INS_ECDSA_SIGN: length = insECDSA_sign(apdu); break; - case INS_ECDSA_VERIFY: + case CardConsts.INS_ECDSA_VERIFY: length = insECDSA_verify(apdu); break; - case INS_CLEANUP: + case CardConsts.INS_CLEANUP: length = insCleanup(apdu); break; - case INS_GET_INFO: + case CardConsts.INS_GET_INFO: length = insGetInfo(apdu); break; - case INS_SET_DRY_RUN_MODE: + case CardConsts.INS_SET_DRY_RUN_MODE: length = insSetDryRunMode(apdu); break; default: @@ -255,27 +191,27 @@ public abstract class AppletBase extends Applet { } catch (ISOException e) { throw e; // Our exception from code, just re-emit } catch (ArrayIndexOutOfBoundsException e) { - ISOException.throwIt(SW_ArrayIndexOutOfBoundsException); + ISOException.throwIt(CardConsts.SW_ArrayIndexOutOfBoundsException); } catch (ArithmeticException e) { - ISOException.throwIt(SW_ArithmeticException); + ISOException.throwIt(CardConsts.SW_ArithmeticException); } catch (ArrayStoreException e) { - ISOException.throwIt(SW_ArrayStoreException); + ISOException.throwIt(CardConsts.SW_ArrayStoreException); } catch (NullPointerException e) { - ISOException.throwIt(SW_NullPointerException); + ISOException.throwIt(CardConsts.SW_NullPointerException); } catch (NegativeArraySizeException e) { - ISOException.throwIt(SW_NegativeArraySizeException); + ISOException.throwIt(CardConsts.SW_NegativeArraySizeException); } catch (CryptoException e) { - ISOException.throwIt((short) (SW_CryptoException_prefix | e.getReason())); + ISOException.throwIt((short) (CardConsts.SW_CryptoException_prefix | e.getReason())); } catch (SystemException e) { - ISOException.throwIt((short) (SW_SystemException_prefix | e.getReason())); + ISOException.throwIt((short) (CardConsts.SW_SystemException_prefix | e.getReason())); } catch (PINException e) { - ISOException.throwIt((short) (SW_PINException_prefix | e.getReason())); + ISOException.throwIt((short) (CardConsts.SW_PINException_prefix | e.getReason())); } catch (TransactionException e) { - ISOException.throwIt((short) (SW_TransactionException_prefix | e.getReason())); + ISOException.throwIt((short) (CardConsts.SW_TransactionException_prefix | e.getReason())); } catch (CardRuntimeException e) { - ISOException.throwIt((short) (SW_CardRuntimeException_prefix | e.getReason())); + ISOException.throwIt((short) (CardConsts.SW_CardRuntimeException_prefix | e.getReason())); } catch (Exception e) { - ISOException.throwIt(SW_Exception); + ISOException.throwIt(CardConsts.SW_Exception); } } else ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED); @@ -293,9 +229,9 @@ public abstract class AppletBase extends Applet { short offset = 0; if (skipHeader) { offset = cdataOffset; - cdata = CDATA_EXTENDED; + cdata = CardConsts.CDATA_EXTENDED; } else { - cdata = CDATA_BASIC; + cdata = CardConsts.CDATA_BASIC; } /* How much stuff was really sent in this APDU? */ @@ -380,10 +316,10 @@ public abstract class AppletBase extends Applet { byte keyPair = apduArray[ISO7816.OFFSET_P1]; short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += clear(localKeypair, apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += clear(remoteKeypair, apdu.getBuffer(), len); } @@ -411,10 +347,10 @@ public abstract class AppletBase extends Applet { short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += set(localKeypair, curve, params, apduArray, (short) (cdata + 2), apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += set(remoteKeypair, curve, params, apduArray, (short) (cdata + 2), apdu.getBuffer(), len); } @@ -438,11 +374,11 @@ public abstract class AppletBase extends Applet { short transformation = Util.getShort(apduArray, (short) (cdata + 2)); short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += transform(localKeypair, key, params, transformation, apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += transform(remoteKeypair, key, params, transformation, apdu.getBuffer(), len); } @@ -461,10 +397,10 @@ public abstract class AppletBase extends Applet { byte keyPair = apduArray[ISO7816.OFFSET_P1]; short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += generate(localKeypair, apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += generate(remoteKeypair, apdu.getBuffer(), len); } @@ -485,13 +421,13 @@ public abstract class AppletBase extends Applet { short params = Util.getShort(apduArray, cdata); short swOffset = 0; - short len = (short) (keyPair == KEYPAIR_BOTH ? 4 : 2); + short len = (short) (keyPair == CardConsts.KEYPAIR_BOTH ? 4 : 2); - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += export(localKeypair, key, params, apdu.getBuffer(), swOffset, len); swOffset += 2; } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += export(remoteKeypair, key, params, apdu.getBuffer(), swOffset, len); } @@ -557,10 +493,10 @@ public abstract class AppletBase extends Applet { byte sigType = apduArray[cdata]; short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += ecdsa(localKeypair, sigType, export, apduArray, (short) (cdata + 1), apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += ecdsa(remoteKeypair, sigType, export, apduArray, (short) (cdata + 1), apdu.getBuffer(), len); } @@ -581,10 +517,10 @@ public abstract class AppletBase extends Applet { byte sigType = apduArray[cdata]; short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += ecdsa_sign(localKeypair, sigType, export, apduArray, (short) (cdata + 1), apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += ecdsa_sign(remoteKeypair, sigType, export, apduArray, (short) (cdata + 1), apdu.getBuffer(), len); } return len; @@ -604,10 +540,10 @@ public abstract class AppletBase extends Applet { byte sigType = apduArray[ISO7816.OFFSET_P2]; short len = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { len += ecdsa_verify(localKeypair, sigType, apduArray, cdata, apdu.getBuffer(), (short) 0); } - if ((keyPair & KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { len += ecdsa_verify(remoteKeypair, sigType, apduArray, cdata, apdu.getBuffer(), len); } return len; @@ -649,10 +585,10 @@ public abstract class AppletBase extends Applet { byte mode = apduArray[ISO7816.OFFSET_P1]; short len = 0; - if (mode == MODE_NORMAL) { + if (mode == CardConsts.MODE_NORMAL) { len = setDryRunMode(apdubuf, false, (short) 0); } - if (mode == MODE_DRY_RUN) { + if (mode == CardConsts.MODE_DRY_RUN) { len = setDryRunMode(apdubuf, true, (short) 0); } return len; @@ -669,26 +605,26 @@ public abstract class AppletBase extends Applet { */ private short allocate(byte keyPair, byte build, short keyLength, byte keyClass, byte[] outBuffer, short outOffset) { short length = 0; - if ((keyPair & KEYPAIR_LOCAL) != 0) { - if ((build & BUILD_KEYPAIR) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { + if ((build & CardConsts.BUILD_KEYPAIR) != 0) { localKeypair = keyGenerator.allocatePair(keyClass, keyLength); - if (keyGenerator.getSW() != ISO7816.SW_NO_ERROR && (build & BUILD_KEYBUILDER) != 0) { + if (keyGenerator.getSW() != ISO7816.SW_NO_ERROR && (build & CardConsts.BUILD_KEYBUILDER) != 0) { localKeypair = keyGenerator.constructPair(keyClass, keyLength); } - } else if ((build & BUILD_KEYBUILDER) != 0) { + } else if ((build & CardConsts.BUILD_KEYBUILDER) != 0) { localKeypair = keyGenerator.constructPair(keyClass, keyLength); } Util.setShort(outBuffer, outOffset, keyGenerator.getSW()); length += 2; } - if ((keyPair & KEYPAIR_REMOTE) != 0) { - if ((build & BUILD_KEYPAIR) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { + if ((build & CardConsts.BUILD_KEYPAIR) != 0) { remoteKeypair = keyGenerator.allocatePair(keyClass, keyLength); - if (keyGenerator.getSW() != ISO7816.SW_NO_ERROR && (build & BUILD_KEYBUILDER) != 0) { + if (keyGenerator.getSW() != ISO7816.SW_NO_ERROR && (build & CardConsts.BUILD_KEYBUILDER) != 0) { remoteKeypair = keyGenerator.constructPair(keyClass, keyLength); } - } else if ((build & BUILD_KEYBUILDER) != 0) { + } else if ((build & CardConsts.BUILD_KEYBUILDER) != 0) { remoteKeypair = keyGenerator.constructPair(keyClass, keyLength); } Util.setShort(outBuffer, (short) (outOffset + length), keyGenerator.getSW()); @@ -811,8 +747,8 @@ public abstract class AppletBase extends Applet { private short ecdh(byte pubkey, byte privkey, byte export, short transformation, byte type, byte[] outBuffer, short outOffset) { short length = 0; - KeyPair pub = ((pubkey & KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; - KeyPair priv = ((privkey & KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; + KeyPair pub = ((pubkey & CardConsts.KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; + KeyPair priv = ((privkey & CardConsts.KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; short secretLength = 0; if (keyTester.getKaType() == type) { @@ -826,7 +762,7 @@ public abstract class AppletBase extends Applet { Util.setShort(outBuffer, outOffset, keyTester.getSW()); length += 2; - if ((export == EXPORT_TRUE)) { + if ((export == CardConsts.EXPORT_TRUE)) { Util.setShort(outBuffer, (short) (outOffset + length), secretLength); length += 2; Util.arrayCopyNonAtomic(ramArray2, (short) 0, outBuffer, (short) (outOffset + length), secretLength); @@ -839,7 +775,7 @@ public abstract class AppletBase extends Applet { private short ecdh_direct(byte privkey, byte export, short transformation, byte type, short keyOffset, short keyLength, byte[] outBuffer, short outOffset) { short length = 0; - KeyPair priv = ((privkey & KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; + KeyPair priv = ((privkey & CardConsts.KEYPAIR_LOCAL) != 0) ? localKeypair : remoteKeypair; short secretLength = 0; if (keyTester.getKaType() == type) { @@ -854,7 +790,7 @@ public abstract class AppletBase extends Applet { Util.setShort(outBuffer, outOffset, keyTester.getSW()); length += 2; - if ((export == EXPORT_TRUE)) { + if ((export == CardConsts.EXPORT_TRUE)) { Util.setShort(outBuffer, (short) (outOffset + length), secretLength); length += 2; Util.arrayCopyNonAtomic(ramArray2, (short) 0, outBuffer, (short) (outOffset + length), secretLength); @@ -897,7 +833,7 @@ public abstract class AppletBase extends Applet { Util.setShort(outBuffer, outOffset, keyTester.getSW()); length += 2; - if (export == EXPORT_TRUE) { + if (export == CardConsts.EXPORT_TRUE) { Util.setShort(outBuffer, (short) (outOffset + length), signatureLength); length += 2; @@ -932,7 +868,7 @@ public abstract class AppletBase extends Applet { Util.setShort(outBuffer, outOffset, keyTester.getSW()); length += 2; - if (export == EXPORT_TRUE) { + if (export == CardConsts.EXPORT_TRUE) { Util.setShort(outBuffer, (short) (outOffset + length), signatureLength); length += 2; diff --git a/src/cz/crcs/ectester/applet/AppletUtil.java b/applet/src/main/java/cz/crcs/ectester/applet/AppletUtil.java index 9869aa4..c4a6744 100644 --- a/src/cz/crcs/ectester/applet/AppletUtil.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/AppletUtil.java @@ -18,18 +18,18 @@ public class AppletUtil { } public static short objCheck(Object obj) { - return nullCheck(obj, AppletBase.SW_OBJECT_NULL); + return nullCheck(obj, CardConsts.SW_OBJECT_NULL); } public static short keypairCheck(KeyPair keyPair) { - return nullCheck(keyPair, AppletBase.SW_KEYPAIR_NULL); + return nullCheck(keyPair, CardConsts.SW_KEYPAIR_NULL); } public static short kaCheck(KeyAgreement keyAgreement) { - return nullCheck(keyAgreement, AppletBase.SW_KA_NULL); + return nullCheck(keyAgreement, CardConsts.SW_KA_NULL); } public static short signCheck(Signature signature) { - return nullCheck(signature, AppletBase.SW_SIGNATURE_NULL); + return nullCheck(signature, CardConsts.SW_SIGNATURE_NULL); } } diff --git a/applet/src/main/java/cz/crcs/ectester/applet/CardConsts.java b/applet/src/main/java/cz/crcs/ectester/applet/CardConsts.java new file mode 100644 index 0000000..abac8e7 --- /dev/null +++ b/applet/src/main/java/cz/crcs/ectester/applet/CardConsts.java @@ -0,0 +1,65 @@ +package cz.crcs.ectester.applet; + +public class CardConsts { + // MAIN INSTRUCTION CLASS + public static final byte CLA_ECTESTERAPPLET = (byte) 0xB0; + + // INSTRUCTIONS + public static final byte INS_ALLOCATE = (byte) 0x5a; + public static final byte INS_CLEAR = (byte) 0x5b; + public static final byte INS_SET = (byte) 0x5c; + public static final byte INS_TRANSFORM = (byte) 0x5d; + public static final byte INS_GENERATE = (byte) 0x5e; + public static final byte INS_EXPORT = (byte) 0x5f; + public static final byte INS_ECDH = (byte) 0x70; + public static final byte INS_ECDH_DIRECT = (byte) 0x71; + public static final byte INS_ECDSA = (byte) 0x72; + public static final byte INS_ECDSA_SIGN = (byte) 0x73; + public static final byte INS_ECDSA_VERIFY = (byte) 0x74; + public static final byte INS_CLEANUP = (byte) 0x75; + public static final byte INS_ALLOCATE_KA = (byte) 0x76; + public static final byte INS_ALLOCATE_SIG = (byte) 0x77; + public static final byte INS_GET_INFO = (byte) 0x78; + public static final byte INS_SET_DRY_RUN_MODE = (byte) 0x79; + public static final byte INS_BUFFER = (byte) 0x7a; + public static final byte INS_PERFORM = (byte) 0x7b; + + // PARAMETERS for P1 and P2 + public static final byte KEYPAIR_LOCAL = (byte) 0x01; + public static final byte KEYPAIR_REMOTE = (byte) 0x02; + public static final byte KEYPAIR_BOTH = KEYPAIR_LOCAL | KEYPAIR_REMOTE; + public static final byte BUILD_KEYPAIR = (byte) 0x01; + public static final byte BUILD_KEYBUILDER = (byte) 0x02; + public static final byte EXPORT_TRUE = (byte) 0xff; + public static final byte EXPORT_FALSE = (byte) 0x00; + public static final byte MODE_NORMAL = (byte) 0xaa; + public static final byte MODE_DRY_RUN = (byte) 0xbb; + + // STATUS WORDS + public static final short SW_SIG_VERIFY_FAIL = (short) 0x0ee1; + public static final short SW_DH_DHC_MISMATCH = (short) 0x0ee2; + public static final short SW_KEYPAIR_NULL = (short) 0x0ee3; + public static final short SW_KA_NULL = (short) 0x0ee4; + public static final short SW_SIGNATURE_NULL = (short) 0x0ee5; + public static final short SW_OBJECT_NULL = (short) 0x0ee6; + public static final short SW_CANNOT_FIT = (short) 0x0ee7; + public static final short SW_Exception = (short) 0xff01; + public static final short SW_ArrayIndexOutOfBoundsException = (short) 0xff02; + public static final short SW_ArithmeticException = (short) 0xff03; + public static final short SW_ArrayStoreException = (short) 0xff04; + public static final short SW_NullPointerException = (short) 0xff05; + public static final short SW_NegativeArraySizeException = (short) 0xff06; + public static final short SW_CryptoException_prefix = (short) 0xf100; + public static final short SW_SystemException_prefix = (short) 0xf200; + public static final short SW_PINException_prefix = (short) 0xf300; + public static final short SW_TransactionException_prefix = (short) 0xf400; + public static final short SW_CardRuntimeException_prefix = (short) 0xf500; + + // + public static final short BASE_221 = (short) 0x0221; + public static final short BASE_222 = (short) 0x0222; + + // + public static final short CDATA_BASIC = (short) 5; + public static final short CDATA_EXTENDED = (short) 7; +} diff --git a/src/cz/crcs/ectester/applet/ECKeyGenerator.java b/applet/src/main/java/cz/crcs/ectester/applet/ECKeyGenerator.java index 601654a..601654a 100644 --- a/src/cz/crcs/ectester/applet/ECKeyGenerator.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECKeyGenerator.java diff --git a/src/cz/crcs/ectester/applet/ECKeyTester.java b/applet/src/main/java/cz/crcs/ectester/applet/ECKeyTester.java index 89590d0..3af1cca 100644 --- a/src/cz/crcs/ectester/applet/ECKeyTester.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECKeyTester.java @@ -131,7 +131,7 @@ public class ECKeyTester { ecdsaSignature.init(verifyKey, Signature.MODE_VERIFY); if (!ecdsaSignature.verify(inputBuffer, inputOffset, inputLength, sigBuffer, sigOffset, length)) { - sw = AppletBase.SW_SIG_VERIFY_FAIL; + sw = CardConsts.SW_SIG_VERIFY_FAIL; } } } catch (CardRuntimeException ce) { @@ -182,7 +182,7 @@ public class ECKeyTester { if (!dryRun) { ecdsaSignature.init(verifyKey, Signature.MODE_VERIFY); if (!ecdsaSignature.verify(inputBuffer, inputOffset, inputLength, sigBuffer, sigOffset, sigLength)) { - sw = AppletBase.SW_SIG_VERIFY_FAIL; + sw = CardConsts.SW_SIG_VERIFY_FAIL; } } } catch (CardRuntimeException ce) { diff --git a/src/cz/crcs/ectester/applet/ECTesterApplet.java b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java index 12978e6..8eabd54 100644 --- a/src/cz/crcs/ectester/applet/ECTesterApplet.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterApplet.java @@ -58,6 +58,6 @@ public class ECTesterApplet extends AppletBase { } short getBase() { - return AppletBase.BASE_221; + return CardConsts.BASE_221; } } diff --git a/src/cz/crcs/ectester/applet/ECTesterAppletExtended.java b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java index 97a3769..8ab5520 100644 --- a/src/cz/crcs/ectester/applet/ECTesterAppletExtended.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/ECTesterAppletExtended.java @@ -59,6 +59,6 @@ public class ECTesterAppletExtended extends AppletBase implements ExtendedLength } short getBase() { - return AppletBase.BASE_222; + return CardConsts.BASE_222; } } diff --git a/src/cz/crcs/ectester/applet/EC_Consts.java b/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java index 81016ac..81016ac 100644 --- a/src/cz/crcs/ectester/applet/EC_Consts.java +++ b/applet/src/main/java/cz/crcs/ectester/applet/EC_Consts.java 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/src/cz/crcs/ectester/common/cli/Argument.java b/common/src/main/java/cz/crcs/ectester/common/cli/Argument.java index e9b6688..e9b6688 100644 --- a/src/cz/crcs/ectester/common/cli/Argument.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/Argument.java diff --git a/src/cz/crcs/ectester/common/cli/CLITools.java b/common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java index 82ab530..82ab530 100644 --- a/src/cz/crcs/ectester/common/cli/CLITools.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/CLITools.java diff --git a/src/cz/crcs/ectester/common/cli/Colors.java b/common/src/main/java/cz/crcs/ectester/common/cli/Colors.java index 7601088..7601088 100644 --- a/src/cz/crcs/ectester/common/cli/Colors.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/Colors.java diff --git a/src/cz/crcs/ectester/common/cli/ParserOptions.java b/common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java index 7300cbb..7300cbb 100644 --- a/src/cz/crcs/ectester/common/cli/ParserOptions.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/ParserOptions.java diff --git a/src/cz/crcs/ectester/common/cli/TreeCommandLine.java b/common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java index d758b78..d758b78 100644 --- a/src/cz/crcs/ectester/common/cli/TreeCommandLine.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/TreeCommandLine.java diff --git a/src/cz/crcs/ectester/common/cli/TreeParser.java b/common/src/main/java/cz/crcs/ectester/common/cli/TreeParser.java index 657318d..657318d 100644 --- a/src/cz/crcs/ectester/common/cli/TreeParser.java +++ b/common/src/main/java/cz/crcs/ectester/common/cli/TreeParser.java diff --git a/src/cz/crcs/ectester/common/ec/CustomECFieldF2m.java b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldF2m.java index 24ea5aa..24ea5aa 100644 --- a/src/cz/crcs/ectester/common/ec/CustomECFieldF2m.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldF2m.java diff --git a/src/cz/crcs/ectester/common/ec/CustomECFieldFp.java b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java index eafcb72..eafcb72 100644 --- a/src/cz/crcs/ectester/common/ec/CustomECFieldFp.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECFieldFp.java diff --git a/src/cz/crcs/ectester/common/ec/CustomECParameterSpec.java b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECParameterSpec.java index cbc15e7..cbc15e7 100644 --- a/src/cz/crcs/ectester/common/ec/CustomECParameterSpec.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/CustomECParameterSpec.java diff --git a/src/cz/crcs/ectester/common/ec/CustomEllipticCurve.java b/common/src/main/java/cz/crcs/ectester/common/ec/CustomEllipticCurve.java index 489861c..489861c 100644 --- a/src/cz/crcs/ectester/common/ec/CustomEllipticCurve.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/CustomEllipticCurve.java diff --git a/src/cz/crcs/ectester/common/ec/EC_Category.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Category.java index 154403e..154403e 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Category.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Category.java diff --git a/common/src/main/java/cz/crcs/ectester/common/ec/EC_Consts.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Consts.java new file mode 100644 index 0000000..264c1bd --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Consts.java @@ -0,0 +1,1512 @@ +package cz.crcs.ectester.common.ec; + +import javacard.framework.ISO7816; +import javacard.framework.ISOException; +import javacard.framework.Util; +import javacard.security.KeyPair; +import javacard.security.RandomData; + +/** + * @author Petr Svenda petr@svenda.com + * @author Jan Jancar johny@neuromancer.sk + */ +public class EC_Consts { + + public static final byte KeyAgreement_ALG_EC_SVDP_DH_KDF = 1; + public static final byte KeyAgreement_ALG_EC_SVDP_DHC_KDF = 2; + private static byte[] EC_FP_P = null; //p + private static byte[] EC_A = null; //a + private static byte[] EC_B = null; //b + private static byte[] EC_G_X = null; //G[x,y] + private static byte[] EC_G_Y = null; // + private static byte[] EC_R = null; //n + private static short EC_K = 1; //h + + private static byte[] EC_W_X = null; //Pubkey[x,y] + private static byte[] EC_W_Y = null; + private static byte[] EC_S = null; //Private + + private static byte[] EC_F2M_F2M = null; //[short i1, short i2, short i3], f = x^m + x^i1 + x^i2 + x^i3 + 1 + + // EC domain parameter identifiers (bit flags) + public static final short PARAMETER_FP = 0x0001; + public static final short PARAMETER_F2M = 0x0002; + + public static final short PARAMETER_A = 0x0004; + public static final short PARAMETER_B = 0x0008; + public static final short PARAMETER_G = 0x0010; + public static final short PARAMETER_R = 0x0020; + public static final short PARAMETER_K = 0x0040; + public static final short PARAMETER_W = 0x0080; + public static final short PARAMETER_S = 0x0100; + + public static final short PARAMETERS_NONE = 0x0000; + /** + * FP,A,B,G,R,K + */ + public static final short PARAMETERS_DOMAIN_FP = 0x007d; + /** + * F2M,A,B,G,R,K + */ + public static final short PARAMETERS_DOMAIN_F2M = 0x007e; + /** + * W,S + */ + public static final short PARAMETERS_KEYPAIR = 0x0180; + public static final short PARAMETERS_ALL = 0x01ff; + + + // EC key identifiers + public static final byte KEY_PUBLIC = 0x01; + public static final byte KEY_PRIVATE = 0x02; + public static final byte KEY_BOTH = KEY_PUBLIC | KEY_PRIVATE; + + public static RandomData randomData = null; + + // secp112r1 + public static final byte[] EC112_FP_P = new byte[]{ + (byte) 0xdb, (byte) 0x7c, (byte) 0x2a, (byte) 0xbf, + (byte) 0x62, (byte) 0xe3, (byte) 0x5e, (byte) 0x66, + (byte) 0x80, (byte) 0x76, (byte) 0xbe, (byte) 0xad, + (byte) 0x20, (byte) 0x8b + }; + + public static final byte[] EC112_FP_A = new byte[]{ + (byte) 0xdb, (byte) 0x7c, (byte) 0x2a, (byte) 0xbf, + (byte) 0x62, (byte) 0xe3, (byte) 0x5e, (byte) 0x66, + (byte) 0x80, (byte) 0x76, (byte) 0xbe, (byte) 0xad, + (byte) 0x20, (byte) 0x88 + }; + + public static final byte[] EC112_FP_B = new byte[]{ + (byte) 0x65, (byte) 0x9e, (byte) 0xf8, (byte) 0xba, + (byte) 0x04, (byte) 0x39, (byte) 0x16, (byte) 0xee, + (byte) 0xde, (byte) 0x89, (byte) 0x11, (byte) 0x70, + (byte) 0x2b, (byte) 0x22 + }; + + public static final byte[] EC112_FP_G_X = new byte[]{ + (byte) 0x09, (byte) 0x48, (byte) 0x72, (byte) 0x39, + (byte) 0x99, (byte) 0x5a, (byte) 0x5e, (byte) 0xe7, + (byte) 0x6b, (byte) 0x55, (byte) 0xf9, (byte) 0xc2, + (byte) 0xf0, (byte) 0x98 + }; + + public static final byte[] EC112_FP_G_Y = new byte[]{ + (byte) 0xa8, (byte) 0x9c, (byte) 0xe5, (byte) 0xaf, + (byte) 0x87, (byte) 0x24, (byte) 0xc0, (byte) 0xa2, + (byte) 0x3e, (byte) 0x0e, (byte) 0x0f, (byte) 0xf7, + (byte) 0x75, (byte) 0x00 + }; + + public static final byte[] EC112_FP_R = new byte[]{ + (byte) 0xdb, (byte) 0x7c, (byte) 0x2a, (byte) 0xbf, + (byte) 0x62, (byte) 0xe3, (byte) 0x5e, (byte) 0x76, + (byte) 0x28, (byte) 0xdf, (byte) 0xac, (byte) 0x65, + (byte) 0x61, (byte) 0xc5 + }; + + public static final short EC112_FP_K = 1; + + + // secp128r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC128_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFD, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + + public static final byte[] EC128_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFD, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + + public static final byte[] EC128_FP_B = new byte[]{ + (byte) 0xE8, (byte) 0x75, (byte) 0x79, (byte) 0xC1, + (byte) 0x10, (byte) 0x79, (byte) 0xF4, (byte) 0x3D, + (byte) 0xD8, (byte) 0x24, (byte) 0x99, (byte) 0x3C, + (byte) 0x2C, (byte) 0xEE, (byte) 0x5E, (byte) 0xD3 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC128_FP_G_X = new byte[]{ + (byte) 0x16, (byte) 0x1F, (byte) 0xF7, (byte) 0x52, + (byte) 0x8B, (byte) 0x89, (byte) 0x9B, (byte) 0x2D, + (byte) 0x0C, (byte) 0x28, (byte) 0x60, (byte) 0x7C, + (byte) 0xA5, (byte) 0x2C, (byte) 0x5B, (byte) 0x86 + }; + + // second part of G uncompressed + public static final byte[] EC128_FP_G_Y = new byte[]{ + (byte) 0xCF, (byte) 0x5A, (byte) 0xC8, (byte) 0x39, + (byte) 0x5B, (byte) 0xAF, (byte) 0xEB, (byte) 0x13, + (byte) 0xC0, (byte) 0x2D, (byte) 0xA2, (byte) 0x92, + (byte) 0xDD, (byte) 0xED, (byte) 0x7A, (byte) 0x83 + }; + // Order of G + public static final byte[] EC128_FP_R = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x75, (byte) 0xA3, (byte) 0x0D, (byte) 0x1B, + (byte) 0x90, (byte) 0x38, (byte) 0xA1, (byte) 0x15 + }; + // cofactor of G + public static final short EC128_FP_K = 1; + + // secp160r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC160_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x7F, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + + public static final byte[] EC160_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x7F, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + + public static final byte[] EC160_FP_B = new byte[]{ + (byte) 0x1C, (byte) 0x97, (byte) 0xBE, (byte) 0xFC, + (byte) 0x54, (byte) 0xBD, (byte) 0x7A, (byte) 0x8B, + (byte) 0x65, (byte) 0xAC, (byte) 0xF8, (byte) 0x9F, + (byte) 0x81, (byte) 0xD4, (byte) 0xD4, (byte) 0xAD, + (byte) 0xC5, (byte) 0x65, (byte) 0xFA, (byte) 0x45 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC160_FP_G_X = new byte[]{ + (byte) 0x4A, (byte) 0x96, (byte) 0xB5, (byte) 0x68, + (byte) 0x8E, (byte) 0xF5, (byte) 0x73, (byte) 0x28, + (byte) 0x46, (byte) 0x64, (byte) 0x69, (byte) 0x89, + (byte) 0x68, (byte) 0xC3, (byte) 0x8B, (byte) 0xB9, + (byte) 0x13, (byte) 0xCB, (byte) 0xFC, (byte) 0x82 + }; + + // second part of G uncompressed + public static final byte[] EC160_FP_G_Y = new byte[]{ + (byte) 0x23, (byte) 0xA6, (byte) 0x28, (byte) 0x55, + (byte) 0x31, (byte) 0x68, (byte) 0x94, (byte) 0x7D, + (byte) 0x59, (byte) 0xDC, (byte) 0xC9, (byte) 0x12, + (byte) 0x04, (byte) 0x23, (byte) 0x51, (byte) 0x37, + (byte) 0x7A, (byte) 0xC5, (byte) 0xFB, (byte) 0x32 + }; + // Order of G + public static final byte[] EC160_FP_R = new byte[]{ + (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x01, (byte) 0xF4, (byte) 0xC8, + (byte) 0xF9, (byte) 0x27, (byte) 0xAE, (byte) 0xD3, + (byte) 0xCA, (byte) 0x75, (byte) 0x22, (byte) 0x57 + }; + // cofactor of G + public static final short EC160_FP_K = 1; + + + // secp192r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC192_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + public static final byte[] EC192_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + public static final byte[] EC192_FP_B = new byte[]{ + (byte) 0x64, (byte) 0x21, (byte) 0x05, (byte) 0x19, + (byte) 0xE5, (byte) 0x9C, (byte) 0x80, (byte) 0xE7, + (byte) 0x0F, (byte) 0xA7, (byte) 0xE9, (byte) 0xAB, + (byte) 0x72, (byte) 0x24, (byte) 0x30, (byte) 0x49, + (byte) 0xFE, (byte) 0xB8, (byte) 0xDE, (byte) 0xEC, + (byte) 0xC1, (byte) 0x46, (byte) 0xB9, (byte) 0xB1 + }; + // G in compressed form / first part of ucompressed + public static final byte[] EC192_FP_G_X = new byte[]{ + (byte) 0x18, (byte) 0x8D, (byte) 0xA8, (byte) 0x0E, + (byte) 0xB0, (byte) 0x30, (byte) 0x90, (byte) 0xF6, + (byte) 0x7C, (byte) 0xBF, (byte) 0x20, (byte) 0xEB, + (byte) 0x43, (byte) 0xA1, (byte) 0x88, (byte) 0x00, + (byte) 0xF4, (byte) 0xFF, (byte) 0x0A, (byte) 0xFD, + (byte) 0x82, (byte) 0xFF, (byte) 0x10, (byte) 0x12 + }; + // second part of G uncompressed + public static final byte[] EC192_FP_G_Y = new byte[]{ + (byte) 0x07, (byte) 0x19, (byte) 0x2B, (byte) 0x95, + (byte) 0xFF, (byte) 0xC8, (byte) 0xDA, (byte) 0x78, + (byte) 0x63, (byte) 0x10, (byte) 0x11, (byte) 0xED, + (byte) 0x6B, (byte) 0x24, (byte) 0xCD, (byte) 0xD5, + (byte) 0x73, (byte) 0xF9, (byte) 0x77, (byte) 0xA1, + (byte) 0x1E, (byte) 0x79, (byte) 0x48, (byte) 0x11 + }; + // Order of G + public static final byte[] EC192_FP_R = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x99, (byte) 0xDE, (byte) 0xF8, (byte) 0x36, + (byte) 0x14, (byte) 0x6B, (byte) 0xC9, (byte) 0xB1, + (byte) 0xB4, (byte) 0xD2, (byte) 0x28, (byte) 0x31 + }; + // cofactor of G + public static final short EC192_FP_K = 1; + + // secp224r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC224_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 + }; + + public static final byte[] EC224_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE + }; + + public static final byte[] EC224_FP_B = new byte[]{ + (byte) 0xB4, (byte) 0x05, (byte) 0x0A, (byte) 0x85, + (byte) 0x0C, (byte) 0x04, (byte) 0xB3, (byte) 0xAB, + (byte) 0xF5, (byte) 0x41, (byte) 0x32, (byte) 0x56, + (byte) 0x50, (byte) 0x44, (byte) 0xB0, (byte) 0xB7, + (byte) 0xD7, (byte) 0xBF, (byte) 0xD8, (byte) 0xBA, + (byte) 0x27, (byte) 0x0B, (byte) 0x39, (byte) 0x43, + (byte) 0x23, (byte) 0x55, (byte) 0xFF, (byte) 0xB4 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC224_FP_G_X = new byte[]{ + (byte) 0xB7, (byte) 0x0E, (byte) 0x0C, (byte) 0xBD, + (byte) 0x6B, (byte) 0xB4, (byte) 0xBF, (byte) 0x7F, + (byte) 0x32, (byte) 0x13, (byte) 0x90, (byte) 0xB9, + (byte) 0x4A, (byte) 0x03, (byte) 0xC1, (byte) 0xD3, + (byte) 0x56, (byte) 0xC2, (byte) 0x11, (byte) 0x22, + (byte) 0x34, (byte) 0x32, (byte) 0x80, (byte) 0xD6, + (byte) 0x11, (byte) 0x5C, (byte) 0x1D, (byte) 0x21 + }; + // second part of G uncompressed + public static final byte[] EC224_FP_G_Y = new byte[]{ + (byte) 0xBD, (byte) 0x37, (byte) 0x63, (byte) 0x88, + (byte) 0xB5, (byte) 0xF7, (byte) 0x23, (byte) 0xFB, + (byte) 0x4C, (byte) 0x22, (byte) 0xDF, (byte) 0xE6, + (byte) 0xCD, (byte) 0x43, (byte) 0x75, (byte) 0xA0, + (byte) 0x5A, (byte) 0x07, (byte) 0x47, (byte) 0x64, + (byte) 0x44, (byte) 0xD5, (byte) 0x81, (byte) 0x99, + (byte) 0x85, (byte) 0x00, (byte) 0x7E, (byte) 0x34 + }; + // Order of G + public static final byte[] EC224_FP_R = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0x16, (byte) 0xA2, + (byte) 0xE0, (byte) 0xB8, (byte) 0xF0, (byte) 0x3E, + (byte) 0x13, (byte) 0xDD, (byte) 0x29, (byte) 0x45, + (byte) 0x5C, (byte) 0x5C, (byte) 0x2A, (byte) 0x3D + }; + // cofactor of G + public static final short EC224_FP_K = 1; + + // secp256r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC256_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + public static final byte[] EC256_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + public static final byte[] EC256_FP_B = new byte[]{ + (byte) 0x5A, (byte) 0xC6, (byte) 0x35, (byte) 0xD8, + (byte) 0xAA, (byte) 0x3A, (byte) 0x93, (byte) 0xE7, + (byte) 0xB3, (byte) 0xEB, (byte) 0xBD, (byte) 0x55, + (byte) 0x76, (byte) 0x98, (byte) 0x86, (byte) 0xBC, + (byte) 0x65, (byte) 0x1D, (byte) 0x06, (byte) 0xB0, + (byte) 0xCC, (byte) 0x53, (byte) 0xB0, (byte) 0xF6, + (byte) 0x3B, (byte) 0xCE, (byte) 0x3C, (byte) 0x3E, + (byte) 0x27, (byte) 0xD2, (byte) 0x60, (byte) 0x4B + }; + // G in compressed form / first part of ucompressed + public static final byte[] EC256_FP_G_X = new byte[]{ + (byte) 0x6B, (byte) 0x17, (byte) 0xD1, (byte) 0xF2, + (byte) 0xE1, (byte) 0x2C, (byte) 0x42, (byte) 0x47, + (byte) 0xF8, (byte) 0xBC, (byte) 0xE6, (byte) 0xE5, + (byte) 0x63, (byte) 0xA4, (byte) 0x40, (byte) 0xF2, + (byte) 0x77, (byte) 0x03, (byte) 0x7D, (byte) 0x81, + (byte) 0x2D, (byte) 0xEB, (byte) 0x33, (byte) 0xA0, + (byte) 0xF4, (byte) 0xA1, (byte) 0x39, (byte) 0x45, + (byte) 0xD8, (byte) 0x98, (byte) 0xC2, (byte) 0x96 + }; + // second part of G uncompressed + public static final byte[] EC256_FP_G_Y = new byte[]{ + (byte) 0x4F, (byte) 0xE3, (byte) 0x42, (byte) 0xE2, + (byte) 0xFE, (byte) 0x1A, (byte) 0x7F, (byte) 0x9B, + (byte) 0x8E, (byte) 0xE7, (byte) 0xEB, (byte) 0x4A, + (byte) 0x7C, (byte) 0x0F, (byte) 0x9E, (byte) 0x16, + (byte) 0x2B, (byte) 0xCE, (byte) 0x33, (byte) 0x57, + (byte) 0x6B, (byte) 0x31, (byte) 0x5E, (byte) 0xCE, + (byte) 0xCB, (byte) 0xB6, (byte) 0x40, (byte) 0x68, + (byte) 0x37, (byte) 0xBF, (byte) 0x51, (byte) 0xF5 + }; + // Order of G + public static final byte[] EC256_FP_R = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xBC, (byte) 0xE6, (byte) 0xFA, (byte) 0xAD, + (byte) 0xA7, (byte) 0x17, (byte) 0x9E, (byte) 0x84, + (byte) 0xF3, (byte) 0xB9, (byte) 0xCA, (byte) 0xC2, + (byte) 0xFC, (byte) 0x63, (byte) 0x25, (byte) 0x51 + }; + // cofactor of G + public static final short EC256_FP_K = 1; + + // secp384r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC384_FP_P = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + + public static final byte[] EC384_FP_A = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFE, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + + public static final byte[] EC384_FP_B = new byte[]{ + (byte) 0xB3, (byte) 0x31, (byte) 0x2F, (byte) 0xA7, + (byte) 0xE2, (byte) 0x3E, (byte) 0xE7, (byte) 0xE4, + (byte) 0x98, (byte) 0x8E, (byte) 0x05, (byte) 0x6B, + (byte) 0xE3, (byte) 0xF8, (byte) 0x2D, (byte) 0x19, + (byte) 0x18, (byte) 0x1D, (byte) 0x9C, (byte) 0x6E, + (byte) 0xFE, (byte) 0x81, (byte) 0x41, (byte) 0x12, + (byte) 0x03, (byte) 0x14, (byte) 0x08, (byte) 0x8F, + (byte) 0x50, (byte) 0x13, (byte) 0x87, (byte) 0x5A, + (byte) 0xC6, (byte) 0x56, (byte) 0x39, (byte) 0x8D, + (byte) 0x8A, (byte) 0x2E, (byte) 0xD1, (byte) 0x9D, + (byte) 0x2A, (byte) 0x85, (byte) 0xC8, (byte) 0xED, + (byte) 0xD3, (byte) 0xEC, (byte) 0x2A, (byte) 0xEF + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC384_FP_G_X = new byte[]{ + (byte) 0xAA, (byte) 0x87, (byte) 0xCA, (byte) 0x22, + (byte) 0xBE, (byte) 0x8B, (byte) 0x05, (byte) 0x37, + (byte) 0x8E, (byte) 0xB1, (byte) 0xC7, (byte) 0x1E, + (byte) 0xF3, (byte) 0x20, (byte) 0xAD, (byte) 0x74, + (byte) 0x6E, (byte) 0x1D, (byte) 0x3B, (byte) 0x62, + (byte) 0x8B, (byte) 0xA7, (byte) 0x9B, (byte) 0x98, + (byte) 0x59, (byte) 0xF7, (byte) 0x41, (byte) 0xE0, + (byte) 0x82, (byte) 0x54, (byte) 0x2A, (byte) 0x38, + (byte) 0x55, (byte) 0x02, (byte) 0xF2, (byte) 0x5D, + (byte) 0xBF, (byte) 0x55, (byte) 0x29, (byte) 0x6C, + (byte) 0x3A, (byte) 0x54, (byte) 0x5E, (byte) 0x38, + (byte) 0x72, (byte) 0x76, (byte) 0x0A, (byte) 0xB7 + }; + // second part of G uncompressed + public static final byte[] EC384_FP_G_Y = new byte[]{ + (byte) 0x36, (byte) 0x17, (byte) 0xDE, (byte) 0x4A, + (byte) 0x96, (byte) 0x26, (byte) 0x2C, (byte) 0x6F, + (byte) 0x5D, (byte) 0x9E, (byte) 0x98, (byte) 0xBF, + (byte) 0x92, (byte) 0x92, (byte) 0xDC, (byte) 0x29, + (byte) 0xF8, (byte) 0xF4, (byte) 0x1D, (byte) 0xBD, + (byte) 0x28, (byte) 0x9A, (byte) 0x14, (byte) 0x7C, + (byte) 0xE9, (byte) 0xDA, (byte) 0x31, (byte) 0x13, + (byte) 0xB5, (byte) 0xF0, (byte) 0xB8, (byte) 0xC0, + (byte) 0x0A, (byte) 0x60, (byte) 0xB1, (byte) 0xCE, + (byte) 0x1D, (byte) 0x7E, (byte) 0x81, (byte) 0x9D, + (byte) 0x7A, (byte) 0x43, (byte) 0x1D, (byte) 0x7C, + (byte) 0x90, (byte) 0xEA, (byte) 0x0E, (byte) 0x5F + }; + + // Order of G + public static final byte[] EC384_FP_R = new byte[]{ + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xC7, (byte) 0x63, (byte) 0x4D, (byte) 0x81, + (byte) 0xF4, (byte) 0x37, (byte) 0x2D, (byte) 0xDF, + (byte) 0x58, (byte) 0x1A, (byte) 0x0D, (byte) 0xB2, + (byte) 0x48, (byte) 0xB0, (byte) 0xA7, (byte) 0x7A, + (byte) 0xEC, (byte) 0xEC, (byte) 0x19, (byte) 0x6A, + (byte) 0xCC, (byte) 0xC5, (byte) 0x29, (byte) 0x73 + }; + // cofactor of G + public static final short EC384_FP_K = 1; + + + // secp521r1 from http://www.secg.org/sec2-v2.pdf + public static final byte[] EC521_FP_P = new byte[]{ + (byte) 0x01, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF + }; + + public static final byte[] EC521_FP_A = new byte[]{ + (byte) 0x01, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFC + }; + + public static final byte[] EC521_FP_B = new byte[]{ + (byte) 0x00, (byte) 0x51, (byte) 0x95, (byte) 0x3E, + (byte) 0xB9, (byte) 0x61, (byte) 0x8E, (byte) 0x1C, + (byte) 0x9A, (byte) 0x1F, (byte) 0x92, (byte) 0x9A, + (byte) 0x21, (byte) 0xA0, (byte) 0xB6, (byte) 0x85, + (byte) 0x40, (byte) 0xEE, (byte) 0xA2, (byte) 0xDA, + (byte) 0x72, (byte) 0x5B, (byte) 0x99, (byte) 0xB3, + (byte) 0x15, (byte) 0xF3, (byte) 0xB8, (byte) 0xB4, + (byte) 0x89, (byte) 0x91, (byte) 0x8E, (byte) 0xF1, + (byte) 0x09, (byte) 0xE1, (byte) 0x56, (byte) 0x19, + (byte) 0x39, (byte) 0x51, (byte) 0xEC, (byte) 0x7E, + (byte) 0x93, (byte) 0x7B, (byte) 0x16, (byte) 0x52, + (byte) 0xC0, (byte) 0xBD, (byte) 0x3B, (byte) 0xB1, + (byte) 0xBF, (byte) 0x07, (byte) 0x35, (byte) 0x73, + (byte) 0xDF, (byte) 0x88, (byte) 0x3D, (byte) 0x2C, + (byte) 0x34, (byte) 0xF1, (byte) 0xEF, (byte) 0x45, + (byte) 0x1F, (byte) 0xD4, (byte) 0x6B, (byte) 0x50, + (byte) 0x3F, (byte) 0x00 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC521_FP_G_X = new byte[]{ + (byte) 0x00, (byte) 0xC6, (byte) 0x85, (byte) 0x8E, + (byte) 0x06, (byte) 0xB7, (byte) 0x04, (byte) 0x04, + (byte) 0xE9, (byte) 0xCD, (byte) 0x9E, (byte) 0x3E, + (byte) 0xCB, (byte) 0x66, (byte) 0x23, (byte) 0x95, + (byte) 0xB4, (byte) 0x42, (byte) 0x9C, (byte) 0x64, + (byte) 0x81, (byte) 0x39, (byte) 0x05, (byte) 0x3F, + (byte) 0xB5, (byte) 0x21, (byte) 0xF8, (byte) 0x28, + (byte) 0xAF, (byte) 0x60, (byte) 0x6B, (byte) 0x4D, + (byte) 0x3D, (byte) 0xBA, (byte) 0xA1, (byte) 0x4B, + (byte) 0x5E, (byte) 0x77, (byte) 0xEF, (byte) 0xE7, + (byte) 0x59, (byte) 0x28, (byte) 0xFE, (byte) 0x1D, + (byte) 0xC1, (byte) 0x27, (byte) 0xA2, (byte) 0xFF, + (byte) 0xA8, (byte) 0xDE, (byte) 0x33, (byte) 0x48, + (byte) 0xB3, (byte) 0xC1, (byte) 0x85, (byte) 0x6A, + (byte) 0x42, (byte) 0x9B, (byte) 0xF9, (byte) 0x7E, + (byte) 0x7E, (byte) 0x31, (byte) 0xC2, (byte) 0xE5, + (byte) 0xBD, (byte) 0x66 + }; + + // second part of G uncompressed + public static final byte[] EC521_FP_G_Y = new byte[]{ + (byte) 0x01, (byte) 0x18, (byte) 0x39, (byte) 0x29, + (byte) 0x6A, (byte) 0x78, (byte) 0x9A, (byte) 0x3B, + (byte) 0xC0, (byte) 0x04, (byte) 0x5C, (byte) 0x8A, + (byte) 0x5F, (byte) 0xB4, (byte) 0x2C, (byte) 0x7D, + (byte) 0x1B, (byte) 0xD9, (byte) 0x98, (byte) 0xF5, + (byte) 0x44, (byte) 0x49, (byte) 0x57, (byte) 0x9B, + (byte) 0x44, (byte) 0x68, (byte) 0x17, (byte) 0xAF, + (byte) 0xBD, (byte) 0x17, (byte) 0x27, (byte) 0x3E, + (byte) 0x66, (byte) 0x2C, (byte) 0x97, (byte) 0xEE, + (byte) 0x72, (byte) 0x99, (byte) 0x5E, (byte) 0xF4, + (byte) 0x26, (byte) 0x40, (byte) 0xC5, (byte) 0x50, + (byte) 0xB9, (byte) 0x01, (byte) 0x3F, (byte) 0xAD, + (byte) 0x07, (byte) 0x61, (byte) 0x35, (byte) 0x3C, + (byte) 0x70, (byte) 0x86, (byte) 0xA2, (byte) 0x72, + (byte) 0xC2, (byte) 0x40, (byte) 0x88, (byte) 0xBE, + (byte) 0x94, (byte) 0x76, (byte) 0x9F, (byte) 0xD1, + (byte) 0x66, (byte) 0x50 + }; + + // Order of G + public static final byte[] EC521_FP_R = new byte[]{ + (byte) 0x01, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFA, + (byte) 0x51, (byte) 0x86, (byte) 0x87, (byte) 0x83, + (byte) 0xBF, (byte) 0x2F, (byte) 0x96, (byte) 0x6B, + (byte) 0x7F, (byte) 0xCC, (byte) 0x01, (byte) 0x48, + (byte) 0xF7, (byte) 0x09, (byte) 0xA5, (byte) 0xD0, + (byte) 0x3B, (byte) 0xB5, (byte) 0xC9, (byte) 0xB8, + (byte) 0x89, (byte) 0x9C, (byte) 0x47, (byte) 0xAE, + (byte) 0xBB, (byte) 0x6F, (byte) 0xB7, (byte) 0x1E, + (byte) 0x91, (byte) 0x38, (byte) 0x64, (byte) 0x09 + }; + + // cofactor of G + public static final short EC521_FP_K = 1; + + //sect163r1 from http://www.secg.org/sec2-v2.pdf + // [short i1, short i2, short i3] f = x^163 + x^i1 + x^i2 + x^i3 + 1 + public static final byte[] EC163_F2M_F = new byte[]{ + (byte) 0x00, (byte) 0x07, + (byte) 0x00, (byte) 0x06, + (byte) 0x00, (byte) 0x03 + }; + + public static final byte[] EC163_F2M_A = new byte[]{ + (byte) 0x07, (byte) 0xB6, (byte) 0x88, (byte) 0x2C, + (byte) 0xAA, (byte) 0xEF, (byte) 0xA8, (byte) 0x4F, + (byte) 0x95, (byte) 0x54, (byte) 0xFF, (byte) 0x84, + (byte) 0x28, (byte) 0xBD, (byte) 0x88, (byte) 0xE2, + (byte) 0x46, (byte) 0xD2, (byte) 0x78, (byte) 0x2A, + (byte) 0xE2 + }; + + public static final byte[] EC163_F2M_B = new byte[]{ + (byte) 0x07, (byte) 0x13, (byte) 0x61, (byte) 0x2D, + (byte) 0xCD, (byte) 0xDC, (byte) 0xB4, (byte) 0x0A, + (byte) 0xAB, (byte) 0x94, (byte) 0x6B, (byte) 0xDA, + (byte) 0x29, (byte) 0xCA, (byte) 0x91, (byte) 0xF7, + (byte) 0x3A, (byte) 0xF9, (byte) 0x58, (byte) 0xAF, + (byte) 0xD9 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC163_F2M_G_X = new byte[]{ + (byte) 0x03, (byte) 0x69, (byte) 0x97, (byte) 0x96, + (byte) 0x97, (byte) 0xAB, (byte) 0x43, (byte) 0x89, + (byte) 0x77, (byte) 0x89, (byte) 0x56, (byte) 0x67, + (byte) 0x89, (byte) 0x56, (byte) 0x7F, (byte) 0x78, + (byte) 0x7A, (byte) 0x78, (byte) 0x76, (byte) 0xA6, + (byte) 0x54 + }; + + // second part of G uncompressed + public static final byte[] EC163_F2M_G_Y = new byte[]{ + (byte) 0x00, (byte) 0x43, (byte) 0x5E, (byte) 0xDB, + (byte) 0x42, (byte) 0xEF, (byte) 0xAF, (byte) 0xB2, + (byte) 0x98, (byte) 0x9D, (byte) 0x51, (byte) 0xFE, + (byte) 0xFC, (byte) 0xE3, (byte) 0xC8, (byte) 0x09, + (byte) 0x88, (byte) 0xF4, (byte) 0x1F, (byte) 0xF8, + (byte) 0x83 + }; + + // order of G + public static final byte[] EC163_F2M_R = new byte[]{ + (byte) 0x03, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0x48, + (byte) 0xAA, (byte) 0xB6, (byte) 0x89, (byte) 0xC2, + (byte) 0x9C, (byte) 0xA7, (byte) 0x10, (byte) 0x27, + (byte) 0x9B + }; + + // cofactor of G + public static final short EC163_F2M_K = 2; + + //sect233r1 from http://www.secg.org/sec2-v2.pdf + // [short i1, short i2, short i3] f = x^233 + x^i1 + 1 + public static final byte[] EC233_F2M_F = new byte[]{ + (byte) 0x00, (byte) 0x4a + }; + + public static final byte[] EC233_F2M_A = new byte[]{ + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x01 + }; + + public static final byte[] EC233_F2M_B = new byte[]{ + (byte) 0x00, (byte) 0x66, (byte) 0x64, (byte) 0x7E, + (byte) 0xDE, (byte) 0x6C, (byte) 0x33, (byte) 0x2C, + (byte) 0x7F, (byte) 0x8C, (byte) 0x09, (byte) 0x23, + (byte) 0xBB, (byte) 0x58, (byte) 0x21, (byte) 0x3B, + (byte) 0x33, (byte) 0x3B, (byte) 0x20, (byte) 0xE9, + (byte) 0xCE, (byte) 0x42, (byte) 0x81, (byte) 0xFE, + (byte) 0x11, (byte) 0x5F, (byte) 0x7D, (byte) 0x8F, + (byte) 0x90, (byte) 0xAD + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC233_F2M_G_X = new byte[]{ + (byte) 0x00, (byte) 0xFA, (byte) 0xC9, (byte) 0xDF, + (byte) 0xCB, (byte) 0xAC, (byte) 0x83, (byte) 0x13, + (byte) 0xBB, (byte) 0x21, (byte) 0x39, (byte) 0xF1, + (byte) 0xBB, (byte) 0x75, (byte) 0x5F, (byte) 0xEF, + (byte) 0x65, (byte) 0xBC, (byte) 0x39, (byte) 0x1F, + (byte) 0x8B, (byte) 0x36, (byte) 0xF8, (byte) 0xF8, + (byte) 0xEB, (byte) 0x73, (byte) 0x71, (byte) 0xFD, + (byte) 0x55, (byte) 0x8B + }; + + // second part of G uncompressed + public static final byte[] EC233_F2M_G_Y = new byte[]{ + (byte) 0x01, (byte) 0x00, (byte) 0x6A, (byte) 0x08, + (byte) 0xA4, (byte) 0x19, (byte) 0x03, (byte) 0x35, + (byte) 0x06, (byte) 0x78, (byte) 0xE5, (byte) 0x85, + (byte) 0x28, (byte) 0xBE, (byte) 0xBF, (byte) 0x8A, + (byte) 0x0B, (byte) 0xEF, (byte) 0xF8, (byte) 0x67, + (byte) 0xA7, (byte) 0xCA, (byte) 0x36, (byte) 0x71, + (byte) 0x6F, (byte) 0x7E, (byte) 0x01, (byte) 0xF8, + (byte) 0x10, (byte) 0x52 + }; + + // order of G + public static final byte[] EC233_F2M_R = new byte[]{ + (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x13, + (byte) 0xE9, (byte) 0x74, (byte) 0xE7, (byte) 0x2F, + (byte) 0x8A, (byte) 0x69, (byte) 0x22, (byte) 0x03, + (byte) 0x1D, (byte) 0x26, (byte) 0x03, (byte) 0xCF, + (byte) 0xE0, (byte) 0xD7 + }; + + // cofactor of G + public static final short EC233_F2M_K = 2; + + //sect283r1 from http://www.secg.org/sec2-v2.pdf + // [short i1, short i2, short i3] f = x^283 + x^i1 + x^i2 + x^i3 + 1 + public static final byte[] EC283_F2M_F = new byte[]{ + (byte) 0x00, (byte) 0x0c, + (byte) 0x00, (byte) 0x07, + (byte) 0x00, (byte) 0x05 + }; + + public static final byte[] EC283_F2M_A = new byte[]{ + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 + }; + + public static final byte[] EC283_F2M_B = new byte[]{ + (byte) 0x02, (byte) 0x7B, (byte) 0x68, (byte) 0x0A, + (byte) 0xC8, (byte) 0xB8, (byte) 0x59, (byte) 0x6D, + (byte) 0xA5, (byte) 0xA4, (byte) 0xAF, (byte) 0x8A, + (byte) 0x19, (byte) 0xA0, (byte) 0x30, (byte) 0x3F, + (byte) 0xCA, (byte) 0x97, (byte) 0xFD, (byte) 0x76, + (byte) 0x45, (byte) 0x30, (byte) 0x9F, (byte) 0xA2, + (byte) 0xA5, (byte) 0x81, (byte) 0x48, (byte) 0x5A, + (byte) 0xF6, (byte) 0x26, (byte) 0x3E, (byte) 0x31, + (byte) 0x3B, (byte) 0x79, (byte) 0xA2, (byte) 0xF5 + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC283_F2M_G_X = new byte[]{ + (byte) 0x05, (byte) 0xF9, (byte) 0x39, (byte) 0x25, + (byte) 0x8D, (byte) 0xB7, (byte) 0xDD, (byte) 0x90, + (byte) 0xE1, (byte) 0x93, (byte) 0x4F, (byte) 0x8C, + (byte) 0x70, (byte) 0xB0, (byte) 0xDF, (byte) 0xEC, + (byte) 0x2E, (byte) 0xED, (byte) 0x25, (byte) 0xB8, + (byte) 0x55, (byte) 0x7E, (byte) 0xAC, (byte) 0x9C, + (byte) 0x80, (byte) 0xE2, (byte) 0xE1, (byte) 0x98, + (byte) 0xF8, (byte) 0xCD, (byte) 0xBE, (byte) 0xCD, + (byte) 0x86, (byte) 0xB1, (byte) 0x20, (byte) 0x53 + }; + + // second part of G uncompressed + public static final byte[] EC283_F2M_G_Y = new byte[]{ + (byte) 0x03, (byte) 0x67, (byte) 0x68, (byte) 0x54, + (byte) 0xFE, (byte) 0x24, (byte) 0x14, (byte) 0x1C, + (byte) 0xB9, (byte) 0x8F, (byte) 0xE6, (byte) 0xD4, + (byte) 0xB2, (byte) 0x0D, (byte) 0x02, (byte) 0xB4, + (byte) 0x51, (byte) 0x6F, (byte) 0xF7, (byte) 0x02, + (byte) 0x35, (byte) 0x0E, (byte) 0xDD, (byte) 0xB0, + (byte) 0x82, (byte) 0x67, (byte) 0x79, (byte) 0xC8, + (byte) 0x13, (byte) 0xF0, (byte) 0xDF, (byte) 0x45, + (byte) 0xBE, (byte) 0x81, (byte) 0x12, (byte) 0xF4 + }; + + // order of G + public static final byte[] EC283_F2M_R = new byte[]{ + (byte) 0x03, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xEF, (byte) 0x90, + (byte) 0x39, (byte) 0x96, (byte) 0x60, (byte) 0xFC, + (byte) 0x93, (byte) 0x8A, (byte) 0x90, (byte) 0x16, + (byte) 0x5B, (byte) 0x04, (byte) 0x2A, (byte) 0x7C, + (byte) 0xEF, (byte) 0xAD, (byte) 0xB3, (byte) 0x07 + }; + + // cofactor of G + public static final short EC283_F2M_K = 2; + + //sect409r1 from http://www.secg.org/sec2-v2.pdf + // [short i1, short i2, short i3] f = x^409 + x^i1 + 1 + public static final byte[] EC409_F2M_F = new byte[]{ + (byte) 0x00, (byte) 0x57 + }; + + public static final byte[] EC409_F2M_A = new byte[]{ + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 + }; + + public static final byte[] EC409_F2M_B = new byte[]{ + (byte) 0x00, (byte) 0x21, (byte) 0xA5, (byte) 0xC2, + (byte) 0xC8, (byte) 0xEE, (byte) 0x9F, (byte) 0xEB, + (byte) 0x5C, (byte) 0x4B, (byte) 0x9A, (byte) 0x75, + (byte) 0x3B, (byte) 0x7B, (byte) 0x47, (byte) 0x6B, + (byte) 0x7F, (byte) 0xD6, (byte) 0x42, (byte) 0x2E, + (byte) 0xF1, (byte) 0xF3, (byte) 0xDD, (byte) 0x67, + (byte) 0x47, (byte) 0x61, (byte) 0xFA, (byte) 0x99, + (byte) 0xD6, (byte) 0xAC, (byte) 0x27, (byte) 0xC8, + (byte) 0xA9, (byte) 0xA1, (byte) 0x97, (byte) 0xB2, + (byte) 0x72, (byte) 0x82, (byte) 0x2F, (byte) 0x6C, + (byte) 0xD5, (byte) 0x7A, (byte) 0x55, (byte) 0xAA, + (byte) 0x4F, (byte) 0x50, (byte) 0xAE, (byte) 0x31, + (byte) 0x7B, (byte) 0x13, (byte) 0x54, (byte) 0x5F + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC409_F2M_G_X = new byte[]{ + (byte) 0x01, (byte) 0x5D, (byte) 0x48, (byte) 0x60, + (byte) 0xD0, (byte) 0x88, (byte) 0xDD, (byte) 0xB3, + (byte) 0x49, (byte) 0x6B, (byte) 0x0C, (byte) 0x60, + (byte) 0x64, (byte) 0x75, (byte) 0x62, (byte) 0x60, + (byte) 0x44, (byte) 0x1C, (byte) 0xDE, (byte) 0x4A, + (byte) 0xF1, (byte) 0x77, (byte) 0x1D, (byte) 0x4D, + (byte) 0xB0, (byte) 0x1F, (byte) 0xFE, (byte) 0x5B, + (byte) 0x34, (byte) 0xE5, (byte) 0x97, (byte) 0x03, + (byte) 0xDC, (byte) 0x25, (byte) 0x5A, (byte) 0x86, + (byte) 0x8A, (byte) 0x11, (byte) 0x80, (byte) 0x51, + (byte) 0x56, (byte) 0x03, (byte) 0xAE, (byte) 0xAB, + (byte) 0x60, (byte) 0x79, (byte) 0x4E, (byte) 0x54, + (byte) 0xBB, (byte) 0x79, (byte) 0x96, (byte) 0xA7 + }; + + // second part of G uncompressed + public static final byte[] EC409_F2M_G_Y = new byte[]{ + (byte) 0x00, (byte) 0x61, (byte) 0xB1, (byte) 0xCF, + (byte) 0xAB, (byte) 0x6B, (byte) 0xE5, (byte) 0xF3, + (byte) 0x2B, (byte) 0xBF, (byte) 0xA7, (byte) 0x83, + (byte) 0x24, (byte) 0xED, (byte) 0x10, (byte) 0x6A, + (byte) 0x76, (byte) 0x36, (byte) 0xB9, (byte) 0xC5, + (byte) 0xA7, (byte) 0xBD, (byte) 0x19, (byte) 0x8D, + (byte) 0x01, (byte) 0x58, (byte) 0xAA, (byte) 0x4F, + (byte) 0x54, (byte) 0x88, (byte) 0xD0, (byte) 0x8F, + (byte) 0x38, (byte) 0x51, (byte) 0x4F, (byte) 0x1F, + (byte) 0xDF, (byte) 0x4B, (byte) 0x4F, (byte) 0x40, + (byte) 0xD2, (byte) 0x18, (byte) 0x1B, (byte) 0x36, + (byte) 0x81, (byte) 0xC3, (byte) 0x64, (byte) 0xBA, + (byte) 0x02, (byte) 0x73, (byte) 0xC7, (byte) 0x06 + }; + + // order of G + public static final byte[] EC409_F2M_R = new byte[]{ + (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0xE2, + (byte) 0xAA, (byte) 0xD6, (byte) 0xA6, (byte) 0x12, + (byte) 0xF3, (byte) 0x33, (byte) 0x07, (byte) 0xBE, + (byte) 0x5F, (byte) 0xA4, (byte) 0x7C, (byte) 0x3C, + (byte) 0x9E, (byte) 0x05, (byte) 0x2F, (byte) 0x83, + (byte) 0x81, (byte) 0x64, (byte) 0xCD, (byte) 0x37, + (byte) 0xD9, (byte) 0xA2, (byte) 0x11, (byte) 0x73 + }; + + // cofactor of G + public static final short EC409_F2M_K = 2; + + //sect571r1 from http://www.secg.org/sec2-v2.pdf + // [short i1, short i2, short i3] f = x^571 + x^i1 + x^i2 + x^i3 + 1 + public static final byte[] EC571_F2M_F = new byte[]{ + (byte) 0x00, (byte) 0x0a, + (byte) 0x00, (byte) 0x05, + (byte) 0x00, (byte) 0x02, + }; + + public static final byte[] EC571_F2M_A = new byte[]{ + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 + }; + + public static final byte[] EC571_F2M_B = new byte[]{ + (byte) 0x02, (byte) 0xF4, (byte) 0x0E, (byte) 0x7E, + (byte) 0x22, (byte) 0x21, (byte) 0xF2, (byte) 0x95, + (byte) 0xDE, (byte) 0x29, (byte) 0x71, (byte) 0x17, + (byte) 0xB7, (byte) 0xF3, (byte) 0xD6, (byte) 0x2F, + (byte) 0x5C, (byte) 0x6A, (byte) 0x97, (byte) 0xFF, + (byte) 0xCB, (byte) 0x8C, (byte) 0xEF, (byte) 0xF1, + (byte) 0xCD, (byte) 0x6B, (byte) 0xA8, (byte) 0xCE, + (byte) 0x4A, (byte) 0x9A, (byte) 0x18, (byte) 0xAD, + (byte) 0x84, (byte) 0xFF, (byte) 0xAB, (byte) 0xBD, + (byte) 0x8E, (byte) 0xFA, (byte) 0x59, (byte) 0x33, + (byte) 0x2B, (byte) 0xE7, (byte) 0xAD, (byte) 0x67, + (byte) 0x56, (byte) 0xA6, (byte) 0x6E, (byte) 0x29, + (byte) 0x4A, (byte) 0xFD, (byte) 0x18, (byte) 0x5A, + (byte) 0x78, (byte) 0xFF, (byte) 0x12, (byte) 0xAA, + (byte) 0x52, (byte) 0x0E, (byte) 0x4D, (byte) 0xE7, + (byte) 0x39, (byte) 0xBA, (byte) 0xCA, (byte) 0x0C, + (byte) 0x7F, (byte) 0xFE, (byte) 0xFF, (byte) 0x7F, + (byte) 0x29, (byte) 0x55, (byte) 0x72, (byte) 0x7A + }; + + // G in compressed form / first part of ucompressed + public static final byte[] EC571_F2M_G_X = new byte[]{ + (byte) 0x03, (byte) 0x03, (byte) 0x00, (byte) 0x1D, + (byte) 0x34, (byte) 0xB8, (byte) 0x56, (byte) 0x29, + (byte) 0x6C, (byte) 0x16, (byte) 0xC0, (byte) 0xD4, + (byte) 0x0D, (byte) 0x3C, (byte) 0xD7, (byte) 0x75, + (byte) 0x0A, (byte) 0x93, (byte) 0xD1, (byte) 0xD2, + (byte) 0x95, (byte) 0x5F, (byte) 0xA8, (byte) 0x0A, + (byte) 0xA5, (byte) 0xF4, (byte) 0x0F, (byte) 0xC8, + (byte) 0xDB, (byte) 0x7B, (byte) 0x2A, (byte) 0xBD, + (byte) 0xBD, (byte) 0xE5, (byte) 0x39, (byte) 0x50, + (byte) 0xF4, (byte) 0xC0, (byte) 0xD2, (byte) 0x93, + (byte) 0xCD, (byte) 0xD7, (byte) 0x11, (byte) 0xA3, + (byte) 0x5B, (byte) 0x67, (byte) 0xFB, (byte) 0x14, + (byte) 0x99, (byte) 0xAE, (byte) 0x60, (byte) 0x03, + (byte) 0x86, (byte) 0x14, (byte) 0xF1, (byte) 0x39, + (byte) 0x4A, (byte) 0xBF, (byte) 0xA3, (byte) 0xB4, + (byte) 0xC8, (byte) 0x50, (byte) 0xD9, (byte) 0x27, + (byte) 0xE1, (byte) 0xE7, (byte) 0x76, (byte) 0x9C, + (byte) 0x8E, (byte) 0xEC, (byte) 0x2D, (byte) 0x19 + }; + + // second part of G uncompressed + public static final byte[] EC571_F2M_G_Y = new byte[]{ + (byte) 0x03, (byte) 0x7B, (byte) 0xF2, (byte) 0x73, + (byte) 0x42, (byte) 0xDA, (byte) 0x63, (byte) 0x9B, + (byte) 0x6D, (byte) 0xCC, (byte) 0xFF, (byte) 0xFE, + (byte) 0xB7, (byte) 0x3D, (byte) 0x69, (byte) 0xD7, + (byte) 0x8C, (byte) 0x6C, (byte) 0x27, (byte) 0xA6, + (byte) 0x00, (byte) 0x9C, (byte) 0xBB, (byte) 0xCA, + (byte) 0x19, (byte) 0x80, (byte) 0xF8, (byte) 0x53, + (byte) 0x39, (byte) 0x21, (byte) 0xE8, (byte) 0xA6, + (byte) 0x84, (byte) 0x42, (byte) 0x3E, (byte) 0x43, + (byte) 0xBA, (byte) 0xB0, (byte) 0x8A, (byte) 0x57, + (byte) 0x62, (byte) 0x91, (byte) 0xAF, (byte) 0x8F, + (byte) 0x46, (byte) 0x1B, (byte) 0xB2, (byte) 0xA8, + (byte) 0xB3, (byte) 0x53, (byte) 0x1D, (byte) 0x2F, + (byte) 0x04, (byte) 0x85, (byte) 0xC1, (byte) 0x9B, + (byte) 0x16, (byte) 0xE2, (byte) 0xF1, (byte) 0x51, + (byte) 0x6E, (byte) 0x23, (byte) 0xDD, (byte) 0x3C, + (byte) 0x1A, (byte) 0x48, (byte) 0x27, (byte) 0xAF, + (byte) 0x1B, (byte) 0x8A, (byte) 0xC1, (byte) 0x5B + }; + + // order of G + public static final byte[] EC571_F2M_R = new byte[]{ + (byte) 0x03, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, + (byte) 0xE6, (byte) 0x61, (byte) 0xCE, (byte) 0x18, + (byte) 0xFF, (byte) 0x55, (byte) 0x98, (byte) 0x73, + (byte) 0x08, (byte) 0x05, (byte) 0x9B, (byte) 0x18, + (byte) 0x68, (byte) 0x23, (byte) 0x85, (byte) 0x1E, + (byte) 0xC7, (byte) 0xDD, (byte) 0x9C, (byte) 0xA1, + (byte) 0x16, (byte) 0x1D, (byte) 0xE9, (byte) 0x3D, + (byte) 0x51, (byte) 0x74, (byte) 0xD6, (byte) 0x6E, + (byte) 0x83, (byte) 0x82, (byte) 0xE9, (byte) 0xBB, + (byte) 0x2F, (byte) 0xE8, (byte) 0x4E, (byte) 0x47 + }; + + // cofactor of G + public static final short EC571_F2M_K = 2; + + + // transformParameter TRANSFORMATION types + public static final short TRANSFORMATION_NONE = (short) 0x00; + public static final short TRANSFORMATION_FIXED = (short) 0x01; + public static final short TRANSFORMATION_FULLRANDOM = (short) 0x02; + public static final short TRANSFORMATION_ONEBYTERANDOM = (short) 0x04; + public static final short TRANSFORMATION_ZERO = (short) 0x08; + public static final short TRANSFORMATION_ONE = (short) 0x10; + public static final short TRANSFORMATION_MAX = (short) 0x20; + public static final short TRANSFORMATION_INCREMENT = (short) 0x40; + public static final short TRANSFORMATION_INFINITY = (short) 0x80; + public static final short TRANSFORMATION_COMPRESS = (short) 0x0100; + public static final short TRANSFORMATION_COMPRESS_HYBRID = (short) 0x0200; + public static final short TRANSFORMATION_04_MASK = (short) 0x0400; + + // toX962 FORM types + public static final byte X962_UNCOMPRESSED = (byte) 0x00; + public static final byte X962_COMPRESSED = (byte) 0x01; + public static final byte X962_HYBRID = (byte) 0x02; + + // Supported embedded curves, getCurveParameter + public static final byte CURVE_default = (byte) 0; + public static final byte CURVE_external = (byte) 0xff; + + // SECG recommended curves over FP + public static final byte CURVE_secp112r1 = (byte) 1; + public static final byte CURVE_secp128r1 = (byte) 2; + public static final byte CURVE_secp160r1 = (byte) 3; + public static final byte CURVE_secp192r1 = (byte) 4; + public static final byte CURVE_secp224r1 = (byte) 5; + public static final byte CURVE_secp256r1 = (byte) 6; + public static final byte CURVE_secp384r1 = (byte) 7; + public static final byte CURVE_secp521r1 = (byte) 8; + + public static final byte FP_CURVES = (byte) 8; + + // SECG recommended curves over F2M + public static final byte CURVE_sect163r1 = (byte) 9; + public static final byte CURVE_sect233r1 = (byte) 10; + public static final byte CURVE_sect283r1 = (byte) 11; + public static final byte CURVE_sect409r1 = (byte) 12; + public static final byte CURVE_sect571r1 = (byte) 13; + + public static final byte F2M_CURVES = (byte) 13; + + public static final short[] FP_SIZES = new short[]{112, 128, 160, 192, 224, 256, 384, 521}; + public static final short[] F2M_SIZES = new short[]{163, 233, 283, 409, 571}; + + // Class javacard.security.KeyAgreement + // javacard.security.KeyAgreement Fields: + public static final byte KeyAgreement_ALG_EC_SVDP_DH = 1; + public static final byte KeyAgreement_ALG_EC_SVDP_DHC = 2; + public static final byte KeyAgreement_ALG_EC_SVDP_DH_PLAIN = 3; + public static final byte KeyAgreement_ALG_EC_SVDP_DHC_PLAIN = 4; + public static final byte KeyAgreement_ALG_EC_PACE_GM = 5; + public static final byte KeyAgreement_ALG_EC_SVDP_DH_PLAIN_XY = 6; + + public static final byte[] KA_TYPES = new byte[]{ + KeyAgreement_ALG_EC_SVDP_DH, + //KeyAgreement_ALG_EC_SVDP_DH_KDF, //duplicate + KeyAgreement_ALG_EC_SVDP_DHC, + //KeyAgreement_ALG_EC_SVDP_DHC_KDF, //duplicate + KeyAgreement_ALG_EC_SVDP_DH_PLAIN, + KeyAgreement_ALG_EC_SVDP_DHC_PLAIN, + KeyAgreement_ALG_EC_PACE_GM, + KeyAgreement_ALG_EC_SVDP_DH_PLAIN_XY + }; + + // Class javacard.security.Signature + // javacard.security.Signature Fields: + public static final byte Signature_ALG_ECDSA_SHA = 17; + public static final byte Signature_ALG_ECDSA_SHA_224 = 37; + public static final byte Signature_ALG_ECDSA_SHA_256 = 33; + public static final byte Signature_ALG_ECDSA_SHA_384 = 34; + public static final byte Signature_ALG_ECDSA_SHA_512 = 38; + + public static final byte[] SIG_TYPES = new byte[]{ + Signature_ALG_ECDSA_SHA, + Signature_ALG_ECDSA_SHA_224, + Signature_ALG_ECDSA_SHA_256, + Signature_ALG_ECDSA_SHA_384, + Signature_ALG_ECDSA_SHA_512 + }; + + public static byte getCurve(short keyLength, byte keyClass) { + if (keyClass == KeyPair.ALG_EC_FP) { + switch (keyLength) { + case (short) 112: + return CURVE_secp112r1; + case (short) 128: + return CURVE_secp128r1; + case (short) 160: + return CURVE_secp160r1; + case (short) 192: + return CURVE_secp192r1; + case (short) 224: + return CURVE_secp224r1; + case (short) 256: + return CURVE_secp256r1; + case (short) 384: + return CURVE_secp384r1; + case (short) 521: + return CURVE_secp521r1; + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + } else if (keyClass == KeyPair.ALG_EC_F2M) { + switch (keyLength) { + case (short) 163: + return CURVE_sect163r1; + case (short) 233: + return CURVE_sect233r1; + case (short) 283: + return CURVE_sect283r1; + case (short) 409: + return CURVE_sect409r1; + case (short) 571: + return CURVE_sect571r1; + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + } else { + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + return 0; + } + + public static short getCurveParameter(byte curve, short param, byte[] outputBuffer, short outputOffset) { + byte alg = getCurveType(curve); + switch (curve) { + case CURVE_secp112r1: { + EC_FP_P = EC112_FP_P; + EC_A = EC112_FP_A; + EC_B = EC112_FP_B; + EC_G_X = EC112_FP_G_X; + EC_G_Y = EC112_FP_G_Y; + EC_R = EC112_FP_R; + EC_K = EC112_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp128r1: { + EC_FP_P = EC128_FP_P; + EC_A = EC128_FP_A; + EC_B = EC128_FP_B; + EC_G_X = EC128_FP_G_X; + EC_G_Y = EC128_FP_G_Y; + EC_R = EC128_FP_R; + EC_K = EC128_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp160r1: { + EC_FP_P = EC160_FP_P; + EC_A = EC160_FP_A; + EC_B = EC160_FP_B; + EC_G_X = EC160_FP_G_X; + EC_G_Y = EC160_FP_G_Y; + EC_R = EC160_FP_R; + EC_K = EC160_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp192r1: { + EC_FP_P = EC192_FP_P; + EC_A = EC192_FP_A; + EC_B = EC192_FP_B; + EC_G_X = EC192_FP_G_X; + EC_G_Y = EC192_FP_G_Y; + EC_R = EC192_FP_R; + EC_K = EC192_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp224r1: { + EC_FP_P = EC224_FP_P; + EC_A = EC224_FP_A; + EC_B = EC224_FP_B; + EC_G_X = EC224_FP_G_X; + EC_G_Y = EC224_FP_G_Y; + EC_R = EC224_FP_R; + EC_K = EC224_FP_K; + EC_S = null; + break; + } + case CURVE_secp256r1: { + EC_FP_P = EC256_FP_P; + EC_A = EC256_FP_A; + EC_B = EC256_FP_B; + EC_G_X = EC256_FP_G_X; + EC_G_Y = EC256_FP_G_Y; + EC_R = EC256_FP_R; + EC_K = EC256_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp384r1: { + EC_FP_P = EC384_FP_P; + EC_A = EC384_FP_A; + EC_B = EC384_FP_B; + EC_G_X = EC384_FP_G_X; + EC_G_Y = EC384_FP_G_Y; + EC_R = EC384_FP_R; + EC_K = EC384_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_secp521r1: { + EC_FP_P = EC521_FP_P; + EC_A = EC521_FP_A; + EC_B = EC521_FP_B; + EC_G_X = EC521_FP_G_X; + EC_G_Y = EC521_FP_G_Y; + EC_R = EC521_FP_R; + EC_K = EC521_FP_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_sect163r1: { + EC_F2M_F2M = EC163_F2M_F; + EC_A = EC163_F2M_A; + EC_B = EC163_F2M_B; + EC_G_X = EC163_F2M_G_X; + EC_G_Y = EC163_F2M_G_Y; + EC_R = EC163_F2M_R; + EC_K = EC163_F2M_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_sect233r1: { + EC_F2M_F2M = EC233_F2M_F; + EC_A = EC233_F2M_A; + EC_B = EC233_F2M_B; + EC_G_X = EC233_F2M_G_X; + EC_G_Y = EC233_F2M_G_Y; + EC_R = EC233_F2M_R; + EC_K = EC233_F2M_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_sect283r1: { + EC_F2M_F2M = EC283_F2M_F; + EC_A = EC283_F2M_A; + EC_B = EC283_F2M_B; + EC_G_X = EC283_F2M_G_X; + EC_G_Y = EC283_F2M_G_Y; + EC_R = EC283_F2M_R; + EC_K = EC283_F2M_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_sect409r1: { + EC_F2M_F2M = EC409_F2M_F; + EC_A = EC409_F2M_A; + EC_B = EC409_F2M_B; + EC_G_X = EC409_F2M_G_X; + EC_G_Y = EC409_F2M_G_Y; + EC_R = EC409_F2M_R; + EC_K = EC409_F2M_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + case CURVE_sect571r1: { + EC_F2M_F2M = EC571_F2M_F; + EC_A = EC571_F2M_A; + EC_B = EC571_F2M_B; + EC_G_X = EC571_F2M_G_X; + EC_G_Y = EC571_F2M_G_Y; + EC_R = EC571_F2M_R; + EC_K = EC571_F2M_K; + EC_W_X = null; + EC_W_Y = null; + EC_S = null; + break; + } + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + short length = 0; + switch (param) { + case PARAMETER_FP: + if (alg == KeyPair.ALG_EC_FP) { + length = Util.arrayCopyNonAtomic(EC_FP_P, (short) 0, outputBuffer, outputOffset, (short) EC_FP_P.length); + } + break; + case PARAMETER_F2M: + if (alg == KeyPair.ALG_EC_F2M) { + length = Util.arrayCopyNonAtomic(EC_F2M_F2M, (short) 0, outputBuffer, outputOffset, (short) EC_F2M_F2M.length); + } + break; + case PARAMETER_A: + length = Util.arrayCopyNonAtomic(EC_A, (short) 0, outputBuffer, outputOffset, (short) EC_A.length); + break; + case PARAMETER_B: + length = Util.arrayCopyNonAtomic(EC_B, (short) 0, outputBuffer, outputOffset, (short) EC_B.length); + break; + case PARAMETER_G: + length = toX962(X962_UNCOMPRESSED, outputBuffer, outputOffset, EC_G_X, (short) 0, (short) EC_G_X.length, EC_G_Y, (short) 0, (short) EC_G_Y.length); + break; + case PARAMETER_R: + length = Util.arrayCopyNonAtomic(EC_R, (short) 0, outputBuffer, outputOffset, (short) EC_R.length); + break; + case PARAMETER_K: + length = 2; + Util.setShort(outputBuffer, outputOffset, EC_K); + break; + case PARAMETER_W: + if (EC_W_X == null || EC_W_Y == null) { + return 0; + } + length = toX962(X962_UNCOMPRESSED, outputBuffer, outputOffset, EC_W_X, (short) 0, (short) EC_W_X.length, EC_W_Y, (short) 0, (short) EC_W_Y.length); + break; + case PARAMETER_S: + if (EC_S == null) { + return 0; + } + length = Util.arrayCopyNonAtomic(EC_S, (short) 0, outputBuffer, outputOffset, (short) EC_S.length); + break; + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + return length; + } + + public static short transformParameter(short transformation, byte[] buffer, short offset, short length) { + if (transformation == TRANSFORMATION_NONE) { + return length; + } + + short transformationMask = TRANSFORMATION_FIXED; + while (transformationMask <= TRANSFORMATION_04_MASK) { + short transformationPart = (short) (transformationMask & transformation); + switch (transformationPart) { + case (short) 0: + break; + case TRANSFORMATION_FIXED: + if (length >= 1) { + buffer[offset] = (byte) 0xcc; + buffer[(short) (offset + length - 1)] = (byte) 0xcc; + } + break; + case TRANSFORMATION_FULLRANDOM: + randomData.generateData(buffer, offset, length); + break; + case TRANSFORMATION_ONEBYTERANDOM: + short first = Util.getShort(buffer, (short) 0); // save first two bytes + + randomData.generateData(buffer, (short) 0, (short) 2); // generate position + short rngPos = Util.getShort(buffer, (short) 0); // save generated position + + Util.setShort(buffer, (short) 0, first); // restore first two bytes + + if (rngPos < 0) { // make positive + rngPos = (short) -rngPos; + } + rngPos %= length; // make < param length + + byte original = buffer[rngPos]; + do { + randomData.generateData(buffer, rngPos, (short) 1); + } while (original == buffer[rngPos]); + break; + case TRANSFORMATION_ZERO: + Util.arrayFillNonAtomic(buffer, offset, length, (byte) 0); + break; + case TRANSFORMATION_ONE: + Util.arrayFillNonAtomic(buffer, offset, length, (byte) 0); + buffer[(short) (offset + length)] = (byte) 1; + break; + case TRANSFORMATION_MAX: + Util.arrayFillNonAtomic(buffer, offset, length, (byte) 1); + break; + case TRANSFORMATION_INCREMENT: + short index = (short) (offset + length - 1); + byte value; + do { + value = buffer[index]; + buffer[index--] = ++value; + } while (value == (byte) 0 && index >= offset); + break; + case TRANSFORMATION_INFINITY: + Util.arrayFillNonAtomic(buffer, offset, length, (byte) 0); + length = 1; + break; + case TRANSFORMATION_COMPRESS_HYBRID: + case TRANSFORMATION_COMPRESS: + if ((short) (length % 2) != 1) { + // an uncompressed point should have odd length (since 1 byte type, + 2 * coords) + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + short half = (short) ((short) (length - 1) / 2); + byte yLSB = buffer[(short) (offset + length)]; + byte yBit = (byte) (yLSB & 0x01); + if (yBit == 1) { + buffer[offset] = 3; + } else { + buffer[offset] = 2; + } + + if (transformationPart == TRANSFORMATION_COMPRESS) { + length = (short) (half + 1); + } else { + buffer[offset] += 4; + } + break; + case TRANSFORMATION_04_MASK: + buffer[offset] = 4; + break; + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + transformationMask = (short) (transformationMask << 1); + } + return length; + } + + public static byte getCurveType(byte curve) { + return curve <= FP_CURVES ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; + } + + @SuppressWarnings("fallthrough") + public static short toX962(byte form, byte[] outputBuffer, short outputOffset, byte[] xBuffer, short xOffset, short xLength, byte[] yBuffer, short yOffset, short yLength) { + short size = 1; + size += xLength; + + short offset = outputOffset; + outputBuffer[offset] = 0; + switch (form) { + case X962_UNCOMPRESSED: + outputBuffer[offset] = 4; + break; + case X962_HYBRID: + outputBuffer[offset] = 4; + case X962_COMPRESSED: /* fallthrough */ + byte yLSB = yBuffer[(short) (yOffset + yLength)]; + byte yBit = (byte) (yLSB & 0x01); + + if (yBit == 1) { + outputBuffer[offset] += 3; + } else { + outputBuffer[offset] += 2; + } + break; + default: + ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); + } + offset += 1; + + offset = Util.arrayCopyNonAtomic(xBuffer, xOffset, outputBuffer, offset, xLength); + if (form == X962_HYBRID || form == X962_UNCOMPRESSED) { + Util.arrayCopyNonAtomic(yBuffer, yOffset, outputBuffer, offset, yLength); + size += yLength; + } + + return size; + } + +} diff --git a/src/cz/crcs/ectester/common/ec/EC_Curve.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Curve.java index d188551..aaf6538 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Curve.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Curve.java @@ -1,6 +1,5 @@ package cz.crcs.ectester.common.ec; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.util.ByteUtil; import javacard.security.KeyPair; import org.bouncycastle.math.ec.ECCurve; diff --git a/src/cz/crcs/ectester/common/ec/EC_Data.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Data.java index 14ae1c5..14ae1c5 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Data.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Data.java diff --git a/src/cz/crcs/ectester/common/ec/EC_KAResult.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_KAResult.java index 4e97950..4e97950 100644 --- a/src/cz/crcs/ectester/common/ec/EC_KAResult.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_KAResult.java diff --git a/src/cz/crcs/ectester/common/ec/EC_Key.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Key.java index 754775d..a9f0c40 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Key.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Key.java @@ -1,7 +1,5 @@ package cz.crcs.ectester.common.ec; -import cz.crcs.ectester.applet.EC_Consts; - /** * An abstract-like EC key. Concrete implementations create a public and private keys. * diff --git a/src/cz/crcs/ectester/common/ec/EC_Keypair.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Keypair.java index 24ddba7..b1a0cbc 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Keypair.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Keypair.java @@ -1,7 +1,5 @@ package cz.crcs.ectester.common.ec; -import cz.crcs.ectester.applet.EC_Consts; - /** * An EC keypair, contains both the W and S parameters. * diff --git a/src/cz/crcs/ectester/common/ec/EC_Params.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Params.java index e922feb..146c8d6 100644 --- a/src/cz/crcs/ectester/common/ec/EC_Params.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_Params.java @@ -1,6 +1,5 @@ package cz.crcs.ectester.common.ec; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.util.ByteUtil; import java.io.ByteArrayOutputStream; diff --git a/src/cz/crcs/ectester/common/ec/EC_SigResult.java b/common/src/main/java/cz/crcs/ectester/common/ec/EC_SigResult.java index d97ced1..d97ced1 100644 --- a/src/cz/crcs/ectester/common/ec/EC_SigResult.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/EC_SigResult.java diff --git a/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java b/common/src/main/java/cz/crcs/ectester/common/ec/RawECPrivateKey.java index 479118f..479118f 100644 --- a/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/RawECPrivateKey.java diff --git a/src/cz/crcs/ectester/common/ec/RawECPublicKey.java b/common/src/main/java/cz/crcs/ectester/common/ec/RawECPublicKey.java index 7888854..7888854 100644 --- a/src/cz/crcs/ectester/common/ec/RawECPublicKey.java +++ b/common/src/main/java/cz/crcs/ectester/common/ec/RawECPublicKey.java diff --git a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java index 5c449db..5c449db 100644 --- a/src/cz/crcs/ectester/common/output/BaseTextTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseTextTestWriter.java diff --git a/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java index 53970dd..53970dd 100644 --- a/src/cz/crcs/ectester/common/output/BaseXMLTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseXMLTestWriter.java diff --git a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java index e054563..e054563 100644 --- a/src/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/BaseYAMLTestWriter.java diff --git a/src/cz/crcs/ectester/common/output/OutputLogger.java b/common/src/main/java/cz/crcs/ectester/common/output/OutputLogger.java index effd1fd..effd1fd 100644 --- a/src/cz/crcs/ectester/common/output/OutputLogger.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/OutputLogger.java diff --git a/src/cz/crcs/ectester/common/output/TeeOutputStream.java b/common/src/main/java/cz/crcs/ectester/common/output/TeeOutputStream.java index 2401fce..2401fce 100644 --- a/src/cz/crcs/ectester/common/output/TeeOutputStream.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/TeeOutputStream.java diff --git a/src/cz/crcs/ectester/common/output/TeeTestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java index 58a0a15..58a0a15 100644 --- a/src/cz/crcs/ectester/common/output/TeeTestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/TeeTestWriter.java diff --git a/src/cz/crcs/ectester/common/output/TestWriter.java b/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java index 67aeccb..67aeccb 100644 --- a/src/cz/crcs/ectester/common/output/TestWriter.java +++ b/common/src/main/java/cz/crcs/ectester/common/output/TestWriter.java diff --git a/src/cz/crcs/ectester/common/test/BaseTestable.java b/common/src/main/java/cz/crcs/ectester/common/test/BaseTestable.java index 3c304d9..3c304d9 100644 --- a/src/cz/crcs/ectester/common/test/BaseTestable.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/BaseTestable.java diff --git a/src/cz/crcs/ectester/common/test/CompoundTest.java b/common/src/main/java/cz/crcs/ectester/common/test/CompoundTest.java index ba4ad4f..ba4ad4f 100644 --- a/src/cz/crcs/ectester/common/test/CompoundTest.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/CompoundTest.java diff --git a/src/cz/crcs/ectester/common/test/Result.java b/common/src/main/java/cz/crcs/ectester/common/test/Result.java index f065f9c..f065f9c 100644 --- a/src/cz/crcs/ectester/common/test/Result.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/Result.java diff --git a/src/cz/crcs/ectester/common/test/SimpleTest.java b/common/src/main/java/cz/crcs/ectester/common/test/SimpleTest.java index d2b3e94..d2b3e94 100644 --- a/src/cz/crcs/ectester/common/test/SimpleTest.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/SimpleTest.java diff --git a/src/cz/crcs/ectester/common/test/Test.java b/common/src/main/java/cz/crcs/ectester/common/test/Test.java index 8bf9502..8bf9502 100644 --- a/src/cz/crcs/ectester/common/test/Test.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/Test.java diff --git a/src/cz/crcs/ectester/common/test/TestCallback.java b/common/src/main/java/cz/crcs/ectester/common/test/TestCallback.java index c5a49f3..c5a49f3 100644 --- a/src/cz/crcs/ectester/common/test/TestCallback.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/TestCallback.java diff --git a/src/cz/crcs/ectester/common/test/TestException.java b/common/src/main/java/cz/crcs/ectester/common/test/TestException.java index 0b605eb..0b605eb 100644 --- a/src/cz/crcs/ectester/common/test/TestException.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/TestException.java diff --git a/src/cz/crcs/ectester/common/test/TestSuite.java b/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java index b12680a..b12680a 100644 --- a/src/cz/crcs/ectester/common/test/TestSuite.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/TestSuite.java diff --git a/src/cz/crcs/ectester/common/test/TestSuiteException.java b/common/src/main/java/cz/crcs/ectester/common/test/TestSuiteException.java index 2d1ea09..2d1ea09 100644 --- a/src/cz/crcs/ectester/common/test/TestSuiteException.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/TestSuiteException.java diff --git a/src/cz/crcs/ectester/common/test/Testable.java b/common/src/main/java/cz/crcs/ectester/common/test/Testable.java index 7b4545c..7b4545c 100644 --- a/src/cz/crcs/ectester/common/test/Testable.java +++ b/common/src/main/java/cz/crcs/ectester/common/test/Testable.java diff --git a/src/cz/crcs/ectester/common/util/ByteUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/ByteUtil.java index 442824a..442824a 100644 --- a/src/cz/crcs/ectester/common/util/ByteUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/ByteUtil.java diff --git a/common/src/main/java/cz/crcs/ectester/common/util/CardConsts.java b/common/src/main/java/cz/crcs/ectester/common/util/CardConsts.java new file mode 100644 index 0000000..1483346 --- /dev/null +++ b/common/src/main/java/cz/crcs/ectester/common/util/CardConsts.java @@ -0,0 +1,65 @@ +package cz.crcs.ectester.common.util; + +public class CardConsts { + // MAIN INSTRUCTION CLASS + public static final byte CLA_ECTESTERAPPLET = (byte) 0xB0; + + // INSTRUCTIONS + public static final byte INS_ALLOCATE = (byte) 0x5a; + public static final byte INS_CLEAR = (byte) 0x5b; + public static final byte INS_SET = (byte) 0x5c; + public static final byte INS_TRANSFORM = (byte) 0x5d; + public static final byte INS_GENERATE = (byte) 0x5e; + public static final byte INS_EXPORT = (byte) 0x5f; + public static final byte INS_ECDH = (byte) 0x70; + public static final byte INS_ECDH_DIRECT = (byte) 0x71; + public static final byte INS_ECDSA = (byte) 0x72; + public static final byte INS_ECDSA_SIGN = (byte) 0x73; + public static final byte INS_ECDSA_VERIFY = (byte) 0x74; + public static final byte INS_CLEANUP = (byte) 0x75; + public static final byte INS_ALLOCATE_KA = (byte) 0x76; + public static final byte INS_ALLOCATE_SIG = (byte) 0x77; + public static final byte INS_GET_INFO = (byte) 0x78; + public static final byte INS_SET_DRY_RUN_MODE = (byte) 0x79; + public static final byte INS_BUFFER = (byte) 0x7a; + public static final byte INS_PERFORM = (byte) 0x7b; + + // PARAMETERS for P1 and P2 + public static final byte KEYPAIR_LOCAL = (byte) 0x01; + public static final byte KEYPAIR_REMOTE = (byte) 0x02; + public static final byte KEYPAIR_BOTH = KEYPAIR_LOCAL | KEYPAIR_REMOTE; + public static final byte BUILD_KEYPAIR = (byte) 0x01; + public static final byte BUILD_KEYBUILDER = (byte) 0x02; + public static final byte EXPORT_TRUE = (byte) 0xff; + public static final byte EXPORT_FALSE = (byte) 0x00; + public static final byte MODE_NORMAL = (byte) 0xaa; + public static final byte MODE_DRY_RUN = (byte) 0xbb; + + // STATUS WORDS + public static final short SW_SIG_VERIFY_FAIL = (short) 0x0ee1; + public static final short SW_DH_DHC_MISMATCH = (short) 0x0ee2; + public static final short SW_KEYPAIR_NULL = (short) 0x0ee3; + public static final short SW_KA_NULL = (short) 0x0ee4; + public static final short SW_SIGNATURE_NULL = (short) 0x0ee5; + public static final short SW_OBJECT_NULL = (short) 0x0ee6; + public static final short SW_CANNOT_FIT = (short) 0x0ee7; + public static final short SW_Exception = (short) 0xff01; + public static final short SW_ArrayIndexOutOfBoundsException = (short) 0xff02; + public static final short SW_ArithmeticException = (short) 0xff03; + public static final short SW_ArrayStoreException = (short) 0xff04; + public static final short SW_NullPointerException = (short) 0xff05; + public static final short SW_NegativeArraySizeException = (short) 0xff06; + public static final short SW_CryptoException_prefix = (short) 0xf100; + public static final short SW_SystemException_prefix = (short) 0xf200; + public static final short SW_PINException_prefix = (short) 0xf300; + public static final short SW_TransactionException_prefix = (short) 0xf400; + public static final short SW_CardRuntimeException_prefix = (short) 0xf500; + + // + public static final short BASE_221 = (short) 0x0221; + public static final short BASE_222 = (short) 0x0222; + + // + public static final short CDATA_BASIC = (short) 5; + public static final short CDATA_EXTENDED = (short) 7; +} diff --git a/src/cz/crcs/ectester/common/util/CardUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/CardUtil.java index 72963cf..aac2d3c 100644 --- a/src/cz/crcs/ectester/common/util/CardUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/CardUtil.java @@ -1,7 +1,6 @@ package cz.crcs.ectester.common.util; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import javacard.framework.ISO7816; import javacard.security.CryptoException; import javacard.security.KeyPair; @@ -126,13 +125,13 @@ public class CardUtil { case CryptoException.INVALID_INIT: case CryptoException.ILLEGAL_USE: return "CryptoException"; - case ECTesterApplet.SW_SIG_VERIFY_FAIL: - case ECTesterApplet.SW_DH_DHC_MISMATCH: - case ECTesterApplet.SW_KEYPAIR_NULL: - case ECTesterApplet.SW_KA_NULL: - case ECTesterApplet.SW_SIGNATURE_NULL: - case ECTesterApplet.SW_OBJECT_NULL: - return "ECTesterApplet"; + case CardConsts.SW_SIG_VERIFY_FAIL: + case CardConsts.SW_DH_DHC_MISMATCH: + case CardConsts.SW_KEYPAIR_NULL: + case CardConsts.SW_KA_NULL: + case CardConsts.SW_SIGNATURE_NULL: + case CardConsts.SW_OBJECT_NULL: + return "CardConsts"; default: return "?"; } @@ -208,29 +207,29 @@ public class CardUtil { return "INVALID_INIT"; case CryptoException.ILLEGAL_USE: return "ILLEGAL_USE"; - case ECTesterApplet.SW_SIG_VERIFY_FAIL: + case CardConsts.SW_SIG_VERIFY_FAIL: return "SIG_VERIFY_FAIL"; - case ECTesterApplet.SW_DH_DHC_MISMATCH: + case CardConsts.SW_DH_DHC_MISMATCH: return "DH_DHC_MISMATCH"; - case ECTesterApplet.SW_KEYPAIR_NULL: + case CardConsts.SW_KEYPAIR_NULL: return "KEYPAIR_NULL"; - case ECTesterApplet.SW_KA_NULL: + case CardConsts.SW_KA_NULL: return "KA_NULL"; - case ECTesterApplet.SW_SIGNATURE_NULL: + case CardConsts.SW_SIGNATURE_NULL: return "SIGNATURE_NULL"; - case ECTesterApplet.SW_OBJECT_NULL: + case CardConsts.SW_OBJECT_NULL: return "OBJECT_NULL"; - case ECTesterApplet.SW_Exception: + case CardConsts.SW_Exception: return "Exception"; - case ECTesterApplet.SW_ArrayIndexOutOfBoundsException: + case CardConsts.SW_ArrayIndexOutOfBoundsException: return "ArrayIndexOutOfBoundsException"; - case ECTesterApplet.SW_ArithmeticException: + case CardConsts.SW_ArithmeticException: return "ArithmeticException"; - case ECTesterApplet.SW_ArrayStoreException: + case CardConsts.SW_ArrayStoreException: return "ArrayStoreException"; - case ECTesterApplet.SW_NullPointerException: + case CardConsts.SW_NullPointerException: return "NullPointerException"; - case ECTesterApplet.SW_NegativeArraySizeException: + case CardConsts.SW_NegativeArraySizeException: return "NegativeArraySizeException"; default: return "unknown"; diff --git a/src/cz/crcs/ectester/common/util/ECUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java index e8c0a11..773644b 100644 --- a/src/cz/crcs/ectester/common/util/ECUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java @@ -1,15 +1,11 @@ package cz.crcs.ectester.common.util; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.data.EC_Store; -import cz.crcs.ectester.standalone.consts.SignatureIdent; -import org.bouncycastle.asn1.*; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.signers.PlainDSAEncoding; import org.bouncycastle.crypto.signers.StandardDSAEncoding; -import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.IOException; import java.math.BigInteger; @@ -349,20 +345,6 @@ public class ECUtil { } public static BigInteger recoverSignatureNonce(byte[] signature, byte[] data, BigInteger privkey, ECParameterSpec params, String hashAlgo, String sigType) { - SignatureIdent sigIdent = SignatureIdent.get(hashAlgo + "with" + sigType); - if (sigIdent == null) { - return null; - } - return recoverSignatureNonce(signature, data, privkey, params, sigIdent); - } - - public static BigInteger recoverSignatureNonce(byte[] signature, byte[] data, BigInteger privkey, ECParameterSpec params, SignatureIdent sigIdent) { - // Parse the types out of SignatureIdent. - String hashAlgo = sigIdent.getHashAlgo(); - String sigType = sigIdent.getSigType(); - if (sigType == null) { - sigType = sigIdent.toString(); - } // We do not know how to reconstruct those nonces so far. // sigType.contains("ECKCDSA") || sigType.contains("ECNR") || sigType.contains("SM2") if (!sigType.contains("ECDSA")) { diff --git a/src/cz/crcs/ectester/common/util/FileUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java index e6e319b..e6e319b 100644 --- a/src/cz/crcs/ectester/common/util/FileUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/FileUtil.java diff --git a/src/cz/crcs/ectester/common/util/Util.java b/common/src/main/java/cz/crcs/ectester/common/util/Util.java index 5b0cd79..5b0cd79 100644 --- a/src/cz/crcs/ectester/common/util/Util.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/Util.java diff --git a/src/cz/crcs/ectester/data/EC_Store.java b/common/src/main/java/cz/crcs/ectester/data/EC_Store.java index bcadf80..bcadf80 100644 --- a/src/cz/crcs/ectester/data/EC_Store.java +++ b/common/src/main/java/cz/crcs/ectester/data/EC_Store.java diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous112.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous112.csv index 6711b71..6711b71 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous112.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous112.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous128.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous128.csv index 2dcf172..2dcf172 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous128.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous160.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous160.csv index bc50f6d..bc50f6d 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous160.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous160.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous192.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous192.csv index 35a5c07..35a5c07 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous192.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous224.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous224.csv index bf24496..bf24496 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous224.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous256.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous256.csv index 24d7454..24d7454 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous256.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous320.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous320.csv index 96e98e5..96e98e5 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous320.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous320.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous384.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous384.csv index 6034b4a..6034b4a 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous384.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous384.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous512.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous512.csv index ed7ee5b..ed7ee5b 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous512.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous512.csv diff --git a/src/cz/crcs/ectester/data/anomalous/anomalous521.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous521.csv index e0d935e..e0d935e 100644 --- a/src/cz/crcs/ectester/data/anomalous/anomalous521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/anomalous521.csv diff --git a/src/cz/crcs/ectester/data/anomalous/curves.xml b/common/src/main/java/cz/crcs/ectester/data/anomalous/curves.xml index 5486f35..5486f35 100644 --- a/src/cz/crcs/ectester/data/anomalous/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/curves.xml diff --git a/src/cz/crcs/ectester/data/anomalous/miyaji128a1.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a1.csv index 20f2863..20f2863 100644 --- a/src/cz/crcs/ectester/data/anomalous/miyaji128a1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a1.csv diff --git a/src/cz/crcs/ectester/data/anomalous/miyaji128a2.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a2.csv index 4c0f6bc..4c0f6bc 100644 --- a/src/cz/crcs/ectester/data/anomalous/miyaji128a2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128a2.csv diff --git a/src/cz/crcs/ectester/data/anomalous/miyaji128b1.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b1.csv index 678ce90..678ce90 100644 --- a/src/cz/crcs/ectester/data/anomalous/miyaji128b1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b1.csv diff --git a/src/cz/crcs/ectester/data/anomalous/miyaji128b2.csv b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b2.csv index 73bf5aa..73bf5aa 100644 --- a/src/cz/crcs/ectester/data/anomalous/miyaji128b2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anomalous/miyaji128b2.csv diff --git a/src/cz/crcs/ectester/data/anssi/curves.xml b/common/src/main/java/cz/crcs/ectester/data/anssi/curves.xml index 0456e67..0456e67 100644 --- a/src/cz/crcs/ectester/data/anssi/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/anssi/curves.xml diff --git a/src/cz/crcs/ectester/data/anssi/frp256v1.csv b/common/src/main/java/cz/crcs/ectester/data/anssi/frp256v1.csv index 3e5428d..3e5428d 100644 --- a/src/cz/crcs/ectester/data/anssi/frp256v1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/anssi/frp256v1.csv diff --git a/src/cz/crcs/ectester/data/bn/bn158.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn158.csv index 2e3b6b7..2e3b6b7 100644 --- a/src/cz/crcs/ectester/data/bn/bn158.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn158.csv diff --git a/src/cz/crcs/ectester/data/bn/bn190.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn190.csv index feb225b..feb225b 100644 --- a/src/cz/crcs/ectester/data/bn/bn190.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn190.csv diff --git a/src/cz/crcs/ectester/data/bn/bn222.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn222.csv index 89038b3..89038b3 100644 --- a/src/cz/crcs/ectester/data/bn/bn222.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn222.csv diff --git a/src/cz/crcs/ectester/data/bn/bn254.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn254.csv index de71c5d..de71c5d 100644 --- a/src/cz/crcs/ectester/data/bn/bn254.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn254.csv diff --git a/src/cz/crcs/ectester/data/bn/bn286.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn286.csv index 46d677e..46d677e 100644 --- a/src/cz/crcs/ectester/data/bn/bn286.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn286.csv diff --git a/src/cz/crcs/ectester/data/bn/bn318.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn318.csv index bc431fe..bc431fe 100644 --- a/src/cz/crcs/ectester/data/bn/bn318.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn318.csv diff --git a/src/cz/crcs/ectester/data/bn/bn350.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn350.csv index 237a255..237a255 100644 --- a/src/cz/crcs/ectester/data/bn/bn350.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn350.csv diff --git a/src/cz/crcs/ectester/data/bn/bn382.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn382.csv index 955882a..955882a 100644 --- a/src/cz/crcs/ectester/data/bn/bn382.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn382.csv diff --git a/src/cz/crcs/ectester/data/bn/bn414.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn414.csv index 0c7eb66..0c7eb66 100644 --- a/src/cz/crcs/ectester/data/bn/bn414.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn414.csv diff --git a/src/cz/crcs/ectester/data/bn/bn446.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn446.csv index a0a525e..a0a525e 100644 --- a/src/cz/crcs/ectester/data/bn/bn446.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn446.csv diff --git a/src/cz/crcs/ectester/data/bn/bn478.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn478.csv index 9c2640a..9c2640a 100644 --- a/src/cz/crcs/ectester/data/bn/bn478.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn478.csv diff --git a/src/cz/crcs/ectester/data/bn/bn510.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn510.csv index 9dc79b3..9dc79b3 100644 --- a/src/cz/crcs/ectester/data/bn/bn510.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn510.csv diff --git a/src/cz/crcs/ectester/data/bn/bn542.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn542.csv index 1a50175..1a50175 100644 --- a/src/cz/crcs/ectester/data/bn/bn542.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn542.csv diff --git a/src/cz/crcs/ectester/data/bn/bn574.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn574.csv index 1d547c7..1d547c7 100644 --- a/src/cz/crcs/ectester/data/bn/bn574.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn574.csv diff --git a/src/cz/crcs/ectester/data/bn/bn606.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn606.csv index f488ab2..f488ab2 100644 --- a/src/cz/crcs/ectester/data/bn/bn606.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn606.csv diff --git a/src/cz/crcs/ectester/data/bn/bn638.csv b/common/src/main/java/cz/crcs/ectester/data/bn/bn638.csv index cb54f9b..cb54f9b 100644 --- a/src/cz/crcs/ectester/data/bn/bn638.csv +++ b/common/src/main/java/cz/crcs/ectester/data/bn/bn638.csv diff --git a/src/cz/crcs/ectester/data/bn/curves.xml b/common/src/main/java/cz/crcs/ectester/data/bn/curves.xml index c5ca22f..c5ca22f 100644 --- a/src/cz/crcs/ectester/data/bn/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/bn/curves.xml diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv index a6734e9..a6734e9 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv index b045237..b045237 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv index d7fcf54..d7fcf54 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv index 45ed451..45ed451 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv index 411ff99..411ff99 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv index d0e2610..d0e2610 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv index f88728d..f88728d 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv index 9c21eac..9c21eac 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv index a5ea90d..a5ea90d 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv index cda7844..cda7844 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv index 4469585..4469585 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv index 8a9a6ac..8a9a6ac 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv index 20299d6..20299d6 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv index 4a7c891..4a7c891 100644 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv diff --git a/src/cz/crcs/ectester/data/brainpool/curves.xml b/common/src/main/java/cz/crcs/ectester/data/brainpool/curves.xml index 2cb7fc5..2cb7fc5 100644 --- a/src/cz/crcs/ectester/data/brainpool/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/brainpool/curves.xml diff --git a/src/cz/crcs/ectester/data/categories.xml b/common/src/main/java/cz/crcs/ectester/data/categories.xml index 0776b99..0776b99 100644 --- a/src/cz/crcs/ectester/data/categories.xml +++ b/common/src/main/java/cz/crcs/ectester/data/categories.xml diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p128.csv index 58459f6..58459f6 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p128.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p16.csv index 181c47c..181c47c 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p16.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p16.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p2.csv index d9857d8..d9857d8 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p2.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p32.csv index 9673835..9673835 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p32.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p32.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p4.csv index 44363ad..44363ad 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p4.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv index 193f6a7..193f6a7 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p64.csv index 35a5ecc..35a5ecc 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p64.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p64.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv index 80a1eb3..80a1eb3 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv index 54da6cc..54da6cc 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p8.csv index 94d4b4e..94d4b4e 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor128p8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor128p8.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p16.csv index 4d82274..4d82274 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p16.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p16.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p2.csv index 54717af..54717af 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p2.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p32.csv index 75238ea..75238ea 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p32.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p32.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p4.csv index 760dbef..760dbef 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p4.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv index f5355bf..f5355bf 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p56467.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p64.csv index 4cdcfdc..4cdcfdc 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p64.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p64.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv index 10e3605..10e3605 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65521.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv index bd47372..bd47372 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p65535.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p8.csv index 60ca98e..60ca98e 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor160p8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor160p8.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t128.csv index c748587..c748587 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t128.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t16.csv index decdad3..decdad3 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t16.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t16.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t2.csv index d837a28..d837a28 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t2.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t32.csv index 2b88982..2b88982 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t32.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t32.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t4.csv index 61f7b03..61f7b03 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t4.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t64.csv index 6d3ee91..6d3ee91 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t64.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t64.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t8.csv index 349e874..349e874 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor163t8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor163t8.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p2.csv index 4de7049..4de7049 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p2.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p4.csv index 645f031..645f031 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p4.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p8.csv index ee39445..ee39445 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor192p8.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t128.csv index 48505d4..48505d4 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t128.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t16.csv index d838407..d838407 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t16.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t16.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t2.csv index 61a945f..61a945f 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t2.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t32.csv index 4f14dfe..4f14dfe 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t32.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t32.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t4.csv index 1972de2..1972de2 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t4.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t64.csv index df9e357..df9e357 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t64.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t64.csv diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t8.csv index 43f6705..43f6705 100644 --- a/src/cz/crcs/ectester/data/cofactor/cofactor233t8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/cofactor233t8.csv diff --git a/src/cz/crcs/ectester/data/cofactor/curves.xml b/common/src/main/java/cz/crcs/ectester/data/cofactor/curves.xml index 30204e8..30204e8 100644 --- a/src/cz/crcs/ectester/data/cofactor/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/curves.xml diff --git a/src/cz/crcs/ectester/data/cofactor/keys.xml b/common/src/main/java/cz/crcs/ectester/data/cofactor/keys.xml index d6058f0..d6058f0 100644 --- a/src/cz/crcs/ectester/data/cofactor/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/keys.xml diff --git a/src/cz/crcs/ectester/data/cofactor/secg_keys.xml b/common/src/main/java/cz/crcs/ectester/data/cofactor/secg_keys.xml index 9634e9d..9634e9d 100644 --- a/src/cz/crcs/ectester/data/cofactor/secg_keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/cofactor/secg_keys.xml diff --git a/src/cz/crcs/ectester/data/composite/carmichael_128.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_128.csv index 400abca..400abca 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_128.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_192.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_192.csv index 7c21982..7c21982 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_192.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_224.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_224.csv index d72a30c..d72a30c 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_224.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_256.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_256.csv index fea4281..fea4281 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_256.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_384.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_384.csv index 3002514..3002514 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_384.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_384.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_512.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_512.csv index 59d0b03..59d0b03 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_512.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_512.csv diff --git a/src/cz/crcs/ectester/data/composite/carmichael_521.csv b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_521.csv index 47ec1c3..47ec1c3 100644 --- a/src/cz/crcs/ectester/data/composite/carmichael_521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/carmichael_521.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128.csv index 66b7011..66b7011 100644 --- a/src/cz/crcs/ectester/data/composite/composite128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq.csv index 8aea6b2..8aea6b2 100644 --- a/src/cz/crcs/ectester/data/composite/composite128_pq.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq1.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq1.csv index a551487..a551487 100644 --- a/src/cz/crcs/ectester/data/composite/composite128_pq1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq1.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128_pq2.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq2.csv index 69181df..69181df 100644 --- a/src/cz/crcs/ectester/data/composite/composite128_pq2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_pq2.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128_rg0.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_rg0.csv index 2e039f4..2e039f4 100644 --- a/src/cz/crcs/ectester/data/composite/composite128_rg0.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_rg0.csv diff --git a/src/cz/crcs/ectester/data/composite/composite128_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_small.csv index fbcbdca..fbcbdca 100644 --- a/src/cz/crcs/ectester/data/composite/composite128_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite128_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160.csv index a78d77c..a78d77c 100644 --- a/src/cz/crcs/ectester/data/composite/composite160.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq.csv index 3f43b50..3f43b50 100644 --- a/src/cz/crcs/ectester/data/composite/composite160_pq.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq1.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq1.csv index debd466..debd466 100644 --- a/src/cz/crcs/ectester/data/composite/composite160_pq1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq1.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160_pq2.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq2.csv index efd7475..efd7475 100644 --- a/src/cz/crcs/ectester/data/composite/composite160_pq2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_pq2.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160_rg0.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_rg0.csv index e6a1a95..e6a1a95 100644 --- a/src/cz/crcs/ectester/data/composite/composite160_rg0.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_rg0.csv diff --git a/src/cz/crcs/ectester/data/composite/composite160_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_small.csv index 2adaa8b..2adaa8b 100644 --- a/src/cz/crcs/ectester/data/composite/composite160_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite160_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192.csv index a9fbe1f..a9fbe1f 100644 --- a/src/cz/crcs/ectester/data/composite/composite192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq.csv index 47b8a13..47b8a13 100644 --- a/src/cz/crcs/ectester/data/composite/composite192_pq.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq1.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq1.csv index 664d35e..664d35e 100644 --- a/src/cz/crcs/ectester/data/composite/composite192_pq1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq1.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192_pq2.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq2.csv index 33fe0f3..33fe0f3 100644 --- a/src/cz/crcs/ectester/data/composite/composite192_pq2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_pq2.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192_rg0.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_rg0.csv index a55a994..a55a994 100644 --- a/src/cz/crcs/ectester/data/composite/composite192_rg0.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_rg0.csv diff --git a/src/cz/crcs/ectester/data/composite/composite192_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_small.csv index a90364d..a90364d 100644 --- a/src/cz/crcs/ectester/data/composite/composite192_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite192_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224.csv index 7902f2b..7902f2b 100644 --- a/src/cz/crcs/ectester/data/composite/composite224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq.csv index ffa2cc1..ffa2cc1 100644 --- a/src/cz/crcs/ectester/data/composite/composite224_pq.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq1.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq1.csv index 6a01e2d..6a01e2d 100644 --- a/src/cz/crcs/ectester/data/composite/composite224_pq1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq1.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224_pq2.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq2.csv index f8bc6df..f8bc6df 100644 --- a/src/cz/crcs/ectester/data/composite/composite224_pq2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_pq2.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224_rg0.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_rg0.csv index 835676d..835676d 100644 --- a/src/cz/crcs/ectester/data/composite/composite224_rg0.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_rg0.csv diff --git a/src/cz/crcs/ectester/data/composite/composite224_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_small.csv index ea18b96..ea18b96 100644 --- a/src/cz/crcs/ectester/data/composite/composite224_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite224_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256.csv index 7769ef2..7769ef2 100644 --- a/src/cz/crcs/ectester/data/composite/composite256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq.csv index 380f756..380f756 100644 --- a/src/cz/crcs/ectester/data/composite/composite256_pq.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq1.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq1.csv index 9ac845f..9ac845f 100644 --- a/src/cz/crcs/ectester/data/composite/composite256_pq1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq1.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256_pq2.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq2.csv index b8b5e9b..b8b5e9b 100644 --- a/src/cz/crcs/ectester/data/composite/composite256_pq2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_pq2.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256_rg0.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_rg0.csv index 0c2d123..0c2d123 100644 --- a/src/cz/crcs/ectester/data/composite/composite256_rg0.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_rg0.csv diff --git a/src/cz/crcs/ectester/data/composite/composite256_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_small.csv index 58c0a75..58c0a75 100644 --- a/src/cz/crcs/ectester/data/composite/composite256_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite256_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite384.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite384.csv index 4e9d058..4e9d058 100644 --- a/src/cz/crcs/ectester/data/composite/composite384.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite384.csv diff --git a/src/cz/crcs/ectester/data/composite/composite384_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite384_small.csv index 00b643b..00b643b 100644 --- a/src/cz/crcs/ectester/data/composite/composite384_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite384_small.csv diff --git a/src/cz/crcs/ectester/data/composite/composite521.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite521.csv index 8681273..8681273 100644 --- a/src/cz/crcs/ectester/data/composite/composite521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite521.csv diff --git a/src/cz/crcs/ectester/data/composite/composite521_small.csv b/common/src/main/java/cz/crcs/ectester/data/composite/composite521_small.csv index 15df9c8..15df9c8 100644 --- a/src/cz/crcs/ectester/data/composite/composite521_small.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/composite521_small.csv diff --git a/src/cz/crcs/ectester/data/composite/curves.xml b/common/src/main/java/cz/crcs/ectester/data/composite/curves.xml index 34ad33a..34ad33a 100644 --- a/src/cz/crcs/ectester/data/composite/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/composite/curves.xml diff --git a/src/cz/crcs/ectester/data/composite/keys.xml b/common/src/main/java/cz/crcs/ectester/data/composite/keys.xml index da770d8..da770d8 100644 --- a/src/cz/crcs/ectester/data/composite/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/composite/keys.xml diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/10.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/10.csv index 5fa842a..5fa842a 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/10.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/10.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/112.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/112.csv index 633ccd5..633ccd5 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/112.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/112.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/12.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/12.csv index 62bb1a0..62bb1a0 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/12.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/12.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/128.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/128.csv index 5f8c532..5f8c532 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/128.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/135.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/135.csv index 232abff..232abff 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/135.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/135.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/14.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/14.csv index c8df53e..c8df53e 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/14.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/14.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/140.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/140.csv index 4d59858..4d59858 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/140.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/140.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/144.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/144.csv index e8c6492..e8c6492 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/144.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/144.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/146.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/146.csv index f656c72..f656c72 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/146.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/146.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/148.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/148.csv index b292889..b292889 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/148.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/148.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/150.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/150.csv index c1bf12e..c1bf12e 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/150.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/150.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/152.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152.csv index 24a03ba..24a03ba 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/152.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv index 7861bbd..7861bbd 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/152_cofactor.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/16.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/16.csv index fd76ff7..fd76ff7 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/16.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/16.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/20.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/20.csv index 940d10c..940d10c 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/20.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/20.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/25.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/25.csv index 318099b..318099b 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/25.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/25.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/2a.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2a.csv index 670f4bc..670f4bc 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/2a.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2a.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/2b.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2b.csv index 216827b..216827b 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/2b.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/2b.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/3.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/3.csv index 18ec491..18ec491 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/3.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/3.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/32.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/32.csv index fddfeee..fddfeee 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/32.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/32.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/4.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/4.csv index a5b9e09..a5b9e09 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/4.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/48.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/48.csv index 202a15b..202a15b 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/48.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/48.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/5.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/5.csv index 5f0597c..5f0597c 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/5.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/5.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/6.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/6.csv index 9c1528f..9c1528f 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/6.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/6.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/64.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/64.csv index 94a2709..94a2709 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/64.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/64.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/7.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/7.csv index 170b180..170b180 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/7.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/7.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/70.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/70.csv index 1dbf9c0..1dbf9c0 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/70.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/70.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/8.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/8.csv index 232df05..232df05 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/8.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/8.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/80.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/80.csv index da082ef..da082ef 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/80.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/80.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/90.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/90.csv index d67e673..d67e673 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/90.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/90.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/first/96.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/96.csv index 5dd2d5c..5dd2d5c 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/first/96.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/first/96.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/140.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/140.csv index 08f5ba1..08f5ba1 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/140.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/140.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/141.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/141.csv index 896493f..896493f 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/141.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/141.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/142.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/142.csv index cc5fd67..cc5fd67 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/142.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/142.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/143.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/143.csv index 9c4861e..9c4861e 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/143.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/143.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/144.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/144.csv index db68fad..db68fad 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/144.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/144.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/145.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/145.csv index 08c8c4f..08c8c4f 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/145.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/145.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/146.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/146.csv index 3afd1a0..3afd1a0 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/146.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/146.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/147.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/147.csv index 895acfe..895acfe 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/147.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/147.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/148.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/148.csv index 0e2221f..0e2221f 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/148.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/148.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/149.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/149.csv index 2fb41e3..2fb41e3 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/149.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/149.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/150.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/150.csv index e38fe99..e38fe99 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/150.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/150.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/151.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/151.csv index 9b665bc..9b665bc 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/151.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/151.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/152.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/152.csv index 854a93f..854a93f 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/152.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/152.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/153.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/153.csv index 90ff712..90ff712 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/153.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/153.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/154.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/154.csv index 1c45df7..1c45df7 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/154.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/154.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/155.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/155.csv index a3dcc8c..a3dcc8c 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/155.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/155.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/156.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/156.csv index 7614b13..7614b13 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/156.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/156.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/157.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/157.csv index 06cd933..06cd933 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/157.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/157.csv diff --git a/src/cz/crcs/ectester/data/composite/varying/160/second/158.csv b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/158.csv index c35a628..c35a628 100644 --- a/src/cz/crcs/ectester/data/composite/varying/160/second/158.csv +++ b/common/src/main/java/cz/crcs/ectester/data/composite/varying/160/second/158.csv diff --git a/src/cz/crcs/ectester/data/degenerate/brainpool.xml b/common/src/main/java/cz/crcs/ectester/data/degenerate/brainpool.xml index 3dd2f54..3dd2f54 100644 --- a/src/cz/crcs/ectester/data/degenerate/brainpool.xml +++ b/common/src/main/java/cz/crcs/ectester/data/degenerate/brainpool.xml diff --git a/src/cz/crcs/ectester/data/degenerate/cofactor.xml b/common/src/main/java/cz/crcs/ectester/data/degenerate/cofactor.xml index 647515b..647515b 100644 --- a/src/cz/crcs/ectester/data/degenerate/cofactor.xml +++ b/common/src/main/java/cz/crcs/ectester/data/degenerate/cofactor.xml diff --git a/src/cz/crcs/ectester/data/degenerate/keys.xml b/common/src/main/java/cz/crcs/ectester/data/degenerate/keys.xml index 498cf26..498cf26 100644 --- a/src/cz/crcs/ectester/data/degenerate/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/degenerate/keys.xml diff --git a/src/cz/crcs/ectester/data/degenerate/secg.xml b/common/src/main/java/cz/crcs/ectester/data/degenerate/secg.xml index 2cf81e7..2cf81e7 100644 --- a/src/cz/crcs/ectester/data/degenerate/secg.xml +++ b/common/src/main/java/cz/crcs/ectester/data/degenerate/secg.xml diff --git a/src/cz/crcs/ectester/data/gost/curves.xml b/common/src/main/java/cz/crcs/ectester/data/gost/curves.xml index 2b83c5e..2b83c5e 100644 --- a/src/cz/crcs/ectester/data/gost/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/gost/curves.xml diff --git a/src/cz/crcs/ectester/data/gost/gost256.csv b/common/src/main/java/cz/crcs/ectester/data/gost/gost256.csv index baea45a..baea45a 100644 --- a/src/cz/crcs/ectester/data/gost/gost256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/gost/gost256.csv diff --git a/src/cz/crcs/ectester/data/gost/gost512.csv b/common/src/main/java/cz/crcs/ectester/data/gost/gost512.csv index 5b24d59..5b24d59 100644 --- a/src/cz/crcs/ectester/data/gost/gost512.csv +++ b/common/src/main/java/cz/crcs/ectester/data/gost/gost512.csv diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml index 7656432..7656432 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml index ffac676..ffac676 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP160t1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml index 4ceb20c..4ceb20c 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml index fe06dcf..fe06dcf 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP192t1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml index c708160..c708160 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml index c7ae75b..c7ae75b 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP224t1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml index 30343e6..30343e6 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml index 8b0a544..8b0a544 100644 --- a/src/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/brainpool/brainpoolP256t1.xml diff --git a/src/cz/crcs/ectester/data/invalid/keys.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/keys.xml index d630129..d630129 100644 --- a/src/cz/crcs/ectester/data/invalid/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/keys.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/b163.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b163.xml index e3df992..e3df992 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/b163.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b163.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/b233.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b233.xml index f1ebb74..f1ebb74 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/b233.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b233.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/b283.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b283.xml index b925891..b925891 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/b283.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/b283.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/k163.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k163.xml index baa9ef5..baa9ef5 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/k163.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k163.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/k233.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k233.xml index 250c9df..250c9df 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/k233.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k233.xml diff --git a/src/cz/crcs/ectester/data/invalid/nist/k283.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k283.xml index 38e3659..38e3659 100644 --- a/src/cz/crcs/ectester/data/invalid/nist/k283.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/nist/k283.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r1.xml index c93b236..c93b236 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp112r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r2.xml index 49f869a..49f869a 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp112r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp112r2.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r1.xml index e010003..e010003 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r2.xml index 1bf0e19..1bf0e19 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp128r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp128r2.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r1.xml index c0ac9f5..c0ac9f5 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp160r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r2.xml index 5a0afdc..5a0afdc 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp160r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp160r2.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp192r1.xml index 6ecf018..6ecf018 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp192r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp192r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp224r1.xml index 9ce561d..9ce561d 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp224r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp224r1.xml diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp256r1.xml index 6a30210..6a30210 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp256r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/invalid/secg/secp256r1.xml diff --git a/src/cz/crcs/ectester/data/misc/keys.xml b/common/src/main/java/cz/crcs/ectester/data/misc/keys.xml index e17b45b..e17b45b 100644 --- a/src/cz/crcs/ectester/data/misc/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/misc/keys.xml diff --git a/src/cz/crcs/ectester/data/misc/results.xml b/common/src/main/java/cz/crcs/ectester/data/misc/results.xml index 07601b1..07601b1 100644 --- a/src/cz/crcs/ectester/data/misc/results.xml +++ b/common/src/main/java/cz/crcs/ectester/data/misc/results.xml diff --git a/src/cz/crcs/ectester/data/mnt/curves.xml b/common/src/main/java/cz/crcs/ectester/data/mnt/curves.xml index 0087a5a..0087a5a 100644 --- a/src/cz/crcs/ectester/data/mnt/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/curves.xml diff --git a/src/cz/crcs/ectester/data/mnt/mnt1.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt1.csv index 7ff5784..7ff5784 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt1.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt2_1.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_1.csv index a53376f..a53376f 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt2_1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_1.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt2_2.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_2.csv index 20dd8f4..20dd8f4 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt2_2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt2_2.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt3_1.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_1.csv index d00719d..d00719d 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt3_1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_1.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt3_2.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_2.csv index 86d8191..86d8191 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt3_2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_2.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt3_3.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_3.csv index 348b30d..348b30d 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt3_3.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt3_3.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt4.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt4.csv index ea5eaa1..ea5eaa1 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt4.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt4.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt5_1.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_1.csv index 2fd1622..2fd1622 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt5_1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_1.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt5_2.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_2.csv index 18ec3a5..18ec3a5 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt5_2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_2.csv diff --git a/src/cz/crcs/ectester/data/mnt/mnt5_3.csv b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_3.csv index 73fce1d..73fce1d 100644 --- a/src/cz/crcs/ectester/data/mnt/mnt5_3.csv +++ b/common/src/main/java/cz/crcs/ectester/data/mnt/mnt5_3.csv diff --git a/src/cz/crcs/ectester/data/nist/b163.csv b/common/src/main/java/cz/crcs/ectester/data/nist/b163.csv index 85b777b..85b777b 100644 --- a/src/cz/crcs/ectester/data/nist/b163.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/b163.csv diff --git a/src/cz/crcs/ectester/data/nist/b233.csv b/common/src/main/java/cz/crcs/ectester/data/nist/b233.csv index a9c2711..a9c2711 100644 --- a/src/cz/crcs/ectester/data/nist/b233.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/b233.csv diff --git a/src/cz/crcs/ectester/data/nist/b283.csv b/common/src/main/java/cz/crcs/ectester/data/nist/b283.csv index 06cc151..06cc151 100644 --- a/src/cz/crcs/ectester/data/nist/b283.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/b283.csv diff --git a/src/cz/crcs/ectester/data/nist/b409.csv b/common/src/main/java/cz/crcs/ectester/data/nist/b409.csv index 66523a7..66523a7 100644 --- a/src/cz/crcs/ectester/data/nist/b409.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/b409.csv diff --git a/src/cz/crcs/ectester/data/nist/b571.csv b/common/src/main/java/cz/crcs/ectester/data/nist/b571.csv index 7d824c4..7d824c4 100644 --- a/src/cz/crcs/ectester/data/nist/b571.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/b571.csv diff --git a/src/cz/crcs/ectester/data/nist/curves.xml b/common/src/main/java/cz/crcs/ectester/data/nist/curves.xml index 2abf72f..2abf72f 100644 --- a/src/cz/crcs/ectester/data/nist/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/nist/curves.xml diff --git a/src/cz/crcs/ectester/data/nist/k163.csv b/common/src/main/java/cz/crcs/ectester/data/nist/k163.csv index e35fbda..e35fbda 100644 --- a/src/cz/crcs/ectester/data/nist/k163.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/k163.csv diff --git a/src/cz/crcs/ectester/data/nist/k233.csv b/common/src/main/java/cz/crcs/ectester/data/nist/k233.csv index a429d81..a429d81 100644 --- a/src/cz/crcs/ectester/data/nist/k233.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/k233.csv diff --git a/src/cz/crcs/ectester/data/nist/k283.csv b/common/src/main/java/cz/crcs/ectester/data/nist/k283.csv index 32dcc3e..32dcc3e 100644 --- a/src/cz/crcs/ectester/data/nist/k283.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/k283.csv diff --git a/src/cz/crcs/ectester/data/nist/k409.csv b/common/src/main/java/cz/crcs/ectester/data/nist/k409.csv index 119754a..119754a 100644 --- a/src/cz/crcs/ectester/data/nist/k409.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/k409.csv diff --git a/src/cz/crcs/ectester/data/nist/k571.csv b/common/src/main/java/cz/crcs/ectester/data/nist/k571.csv index 7fb1431..7fb1431 100644 --- a/src/cz/crcs/ectester/data/nist/k571.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/k571.csv diff --git a/src/cz/crcs/ectester/data/nist/p192.csv b/common/src/main/java/cz/crcs/ectester/data/nist/p192.csv index 07f9154..07f9154 100644 --- a/src/cz/crcs/ectester/data/nist/p192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/p192.csv diff --git a/src/cz/crcs/ectester/data/nist/p224.csv b/common/src/main/java/cz/crcs/ectester/data/nist/p224.csv index 4b206d4..4b206d4 100644 --- a/src/cz/crcs/ectester/data/nist/p224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/p224.csv diff --git a/src/cz/crcs/ectester/data/nist/p256.csv b/common/src/main/java/cz/crcs/ectester/data/nist/p256.csv index c5a2440..c5a2440 100644 --- a/src/cz/crcs/ectester/data/nist/p256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/p256.csv diff --git a/src/cz/crcs/ectester/data/nist/p384.csv b/common/src/main/java/cz/crcs/ectester/data/nist/p384.csv index eeba9fa..eeba9fa 100644 --- a/src/cz/crcs/ectester/data/nist/p384.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/p384.csv diff --git a/src/cz/crcs/ectester/data/nist/p521.csv b/common/src/main/java/cz/crcs/ectester/data/nist/p521.csv index 609672f..609672f 100644 --- a/src/cz/crcs/ectester/data/nist/p521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/nist/p521.csv diff --git a/src/cz/crcs/ectester/data/other/curve25519.csv b/common/src/main/java/cz/crcs/ectester/data/other/curve25519.csv index 2e62d80..2e62d80 100644 --- a/src/cz/crcs/ectester/data/other/curve25519.csv +++ b/common/src/main/java/cz/crcs/ectester/data/other/curve25519.csv diff --git a/src/cz/crcs/ectester/data/other/curves.xml b/common/src/main/java/cz/crcs/ectester/data/other/curves.xml index f200d9c..f200d9c 100644 --- a/src/cz/crcs/ectester/data/other/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/other/curves.xml diff --git a/src/cz/crcs/ectester/data/other/m221.csv b/common/src/main/java/cz/crcs/ectester/data/other/m221.csv index 0a74263..0a74263 100644 --- a/src/cz/crcs/ectester/data/other/m221.csv +++ b/common/src/main/java/cz/crcs/ectester/data/other/m221.csv diff --git a/src/cz/crcs/ectester/data/other/m383.csv b/common/src/main/java/cz/crcs/ectester/data/other/m383.csv index 9a8890d..9a8890d 100644 --- a/src/cz/crcs/ectester/data/other/m383.csv +++ b/common/src/main/java/cz/crcs/ectester/data/other/m383.csv diff --git a/src/cz/crcs/ectester/data/other/m511.csv b/common/src/main/java/cz/crcs/ectester/data/other/m511.csv index 815714c..815714c 100644 --- a/src/cz/crcs/ectester/data/other/m511.csv +++ b/common/src/main/java/cz/crcs/ectester/data/other/m511.csv diff --git a/src/cz/crcs/ectester/data/schema.xsd b/common/src/main/java/cz/crcs/ectester/data/schema.xsd index 99c9b76..99c9b76 100644 --- a/src/cz/crcs/ectester/data/schema.xsd +++ b/common/src/main/java/cz/crcs/ectester/data/schema.xsd diff --git a/src/cz/crcs/ectester/data/secg/curves.xml b/common/src/main/java/cz/crcs/ectester/data/secg/curves.xml index c04fe38..c04fe38 100644 --- a/src/cz/crcs/ectester/data/secg/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/secg/curves.xml diff --git a/src/cz/crcs/ectester/data/secg/secp112r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp112r1.csv index 00d64d6..00d64d6 100644 --- a/src/cz/crcs/ectester/data/secg/secp112r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp112r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp112r2.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp112r2.csv index 0513e72..0513e72 100644 --- a/src/cz/crcs/ectester/data/secg/secp112r2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp112r2.csv diff --git a/src/cz/crcs/ectester/data/secg/secp128r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp128r1.csv index eea5fed..eea5fed 100644 --- a/src/cz/crcs/ectester/data/secg/secp128r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp128r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp128r2.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp128r2.csv index 6f2d098..6f2d098 100644 --- a/src/cz/crcs/ectester/data/secg/secp128r2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp128r2.csv diff --git a/src/cz/crcs/ectester/data/secg/secp160k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp160k1.csv index 7d14c99..7d14c99 100644 --- a/src/cz/crcs/ectester/data/secg/secp160k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp160k1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp160r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp160r1.csv index ed37d81..ed37d81 100644 --- a/src/cz/crcs/ectester/data/secg/secp160r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp160r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp160r2.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp160r2.csv index 2121fc1..2121fc1 100644 --- a/src/cz/crcs/ectester/data/secg/secp160r2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp160r2.csv diff --git a/src/cz/crcs/ectester/data/secg/secp192k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp192k1.csv index 550093b..550093b 100644 --- a/src/cz/crcs/ectester/data/secg/secp192k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp192k1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp192r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp192r1.csv index 07f9154..07f9154 100644 --- a/src/cz/crcs/ectester/data/secg/secp192r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp192r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp224r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp224r1.csv index 4b206d4..4b206d4 100644 --- a/src/cz/crcs/ectester/data/secg/secp224r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp224r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp256k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp256k1.csv index 7835afc..7835afc 100644 --- a/src/cz/crcs/ectester/data/secg/secp256k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp256k1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp256r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp256r1.csv index c5a2440..c5a2440 100644 --- a/src/cz/crcs/ectester/data/secg/secp256r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp256r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp384r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp384r1.csv index eeba9fa..eeba9fa 100644 --- a/src/cz/crcs/ectester/data/secg/secp384r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp384r1.csv diff --git a/src/cz/crcs/ectester/data/secg/secp521r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/secp521r1.csv index 609672f..609672f 100644 --- a/src/cz/crcs/ectester/data/secg/secp521r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/secp521r1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect163k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect163k1.csv index e35fbda..e35fbda 100644 --- a/src/cz/crcs/ectester/data/secg/sect163k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect163k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect163r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect163r1.csv index fa7a328..fa7a328 100644 --- a/src/cz/crcs/ectester/data/secg/sect163r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect163r1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect163r2.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect163r2.csv index 85b777b..85b777b 100644 --- a/src/cz/crcs/ectester/data/secg/sect163r2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect163r2.csv diff --git a/src/cz/crcs/ectester/data/secg/sect233k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect233k1.csv index a429d81..a429d81 100644 --- a/src/cz/crcs/ectester/data/secg/sect233k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect233k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect233r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect233r1.csv index faba42b..faba42b 100644 --- a/src/cz/crcs/ectester/data/secg/sect233r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect233r1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect239k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect239k1.csv index 8b2e58a..8b2e58a 100644 --- a/src/cz/crcs/ectester/data/secg/sect239k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect239k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect283k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect283k1.csv index 9a3a8f6..9a3a8f6 100644 --- a/src/cz/crcs/ectester/data/secg/sect283k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect283k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect283r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect283r1.csv index 68c17f6..68c17f6 100644 --- a/src/cz/crcs/ectester/data/secg/sect283r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect283r1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect409k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect409k1.csv index e39e076..e39e076 100644 --- a/src/cz/crcs/ectester/data/secg/sect409k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect409k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect409r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect409r1.csv index 727fb25..727fb25 100644 --- a/src/cz/crcs/ectester/data/secg/sect409r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect409r1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect571k1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect571k1.csv index 0c94778..0c94778 100644 --- a/src/cz/crcs/ectester/data/secg/sect571k1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect571k1.csv diff --git a/src/cz/crcs/ectester/data/secg/sect571r1.csv b/common/src/main/java/cz/crcs/ectester/data/secg/sect571r1.csv index 739cbb0..739cbb0 100644 --- a/src/cz/crcs/ectester/data/secg/sect571r1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/secg/sect571r1.csv diff --git a/src/cz/crcs/ectester/data/supersingular/curves.xml b/common/src/main/java/cz/crcs/ectester/data/supersingular/curves.xml index 186a8a7..186a8a7 100644 --- a/src/cz/crcs/ectester/data/supersingular/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/supersingular/curves.xml diff --git a/src/cz/crcs/ectester/data/supersingular/ss128.csv b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss128.csv index 9dd4f13..9dd4f13 100644 --- a/src/cz/crcs/ectester/data/supersingular/ss128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss128.csv diff --git a/src/cz/crcs/ectester/data/supersingular/ss192.csv b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss192.csv index 0c8ae8b..0c8ae8b 100644 --- a/src/cz/crcs/ectester/data/supersingular/ss192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss192.csv diff --git a/src/cz/crcs/ectester/data/supersingular/ss224.csv b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss224.csv index 01eaa35..01eaa35 100644 --- a/src/cz/crcs/ectester/data/supersingular/ss224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss224.csv diff --git a/src/cz/crcs/ectester/data/supersingular/ss256.csv b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss256.csv index 47a8174..47a8174 100644 --- a/src/cz/crcs/ectester/data/supersingular/ss256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/supersingular/ss256.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv index 36c396a..36c396a 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv index f9abc47..f9abc47 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv index a2f0525..a2f0525 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyA.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv index b397506..b397506 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP224r1-keyB.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv index 1d7ab37..1d7ab37 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv index 45a851b..45a851b 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv index 597d3fe..597d3fe 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyA.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv index 110f6b5..110f6b5 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP256r1-keyB.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv index 392d962..392d962 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv index b293a59..b293a59 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv index 6746753..6746753 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyA.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv index 83289fd..83289fd 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP384r1-keyB.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv index fe6c294..fe6c294 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv index ff8d321..ff8d321 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv index 3648a36..3648a36 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyA.csv diff --git a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv index 9684984..9684984 100644 --- a/src/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/brainpool/brainpoolP512r1-keyB.csv diff --git a/src/cz/crcs/ectester/data/test/keys.xml b/common/src/main/java/cz/crcs/ectester/data/test/keys.xml index 380aef1..380aef1 100644 --- a/src/cz/crcs/ectester/data/test/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/test/keys.xml diff --git a/src/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv index 25233c1..25233c1 100644 --- a/src/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv index 0ad84c1..0ad84c1 100644 --- a/src/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv index 4d85a19..4d85a19 100644 --- a/src/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv index e56e6c4..e56e6c4 100644 --- a/src/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b163-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv index 5e703be..5e703be 100644 --- a/src/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv index 8c6886f..8c6886f 100644 --- a/src/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv index 591bfe1..591bfe1 100644 --- a/src/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv index eb7b5e6..eb7b5e6 100644 --- a/src/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b233-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv index 6bc719a..6bc719a 100644 --- a/src/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv index 6980f80..6980f80 100644 --- a/src/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv index 52b33fc..52b33fc 100644 --- a/src/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv index 8d2d534..8d2d534 100644 --- a/src/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b283-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv index f84d029..f84d029 100644 --- a/src/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv index f6db38b..f6db38b 100644 --- a/src/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv index cecb5f3..cecb5f3 100644 --- a/src/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv index 066d220..066d220 100644 --- a/src/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b409-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv index ffef41d..ffef41d 100644 --- a/src/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv index d75a7ff..d75a7ff 100644 --- a/src/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv index 20b1816..20b1816 100644 --- a/src/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv index 8e3973d..8e3973d 100644 --- a/src/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/b571-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv index 5001502..5001502 100644 --- a/src/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv index e03aa60..e03aa60 100644 --- a/src/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv index 6f03652..6f03652 100644 --- a/src/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv index b34189e..b34189e 100644 --- a/src/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k163-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv index 03193ae..03193ae 100644 --- a/src/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv index c6c68ac..c6c68ac 100644 --- a/src/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv index 7c60338..7c60338 100644 --- a/src/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv index d8cc078..d8cc078 100644 --- a/src/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k233-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv index 0e14373..0e14373 100644 --- a/src/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv index 6852d2f..6852d2f 100644 --- a/src/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv index f91e05a..f91e05a 100644 --- a/src/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv index 2b19347..2b19347 100644 --- a/src/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k283-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv index f02c0dd..f02c0dd 100644 --- a/src/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv index f4f5cdc..f4f5cdc 100644 --- a/src/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv index cc40c76..cc40c76 100644 --- a/src/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv index e8d0c97..e8d0c97 100644 --- a/src/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k409-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv index eca4a7b..eca4a7b 100644 --- a/src/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv index 938ba18..938ba18 100644 --- a/src/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv index 71d1e64..71d1e64 100644 --- a/src/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv index 6222122..6222122 100644 --- a/src/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/k571-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv index 4f139f7..4f139f7 100644 --- a/src/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv index f3e01bf..f3e01bf 100644 --- a/src/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv index d8a3fab..d8a3fab 100644 --- a/src/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv index fb58f03..fb58f03 100644 --- a/src/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p192-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv index 5a3bb67..5a3bb67 100644 --- a/src/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv index 8e0e8ec..8e0e8ec 100644 --- a/src/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv index 183d654..183d654 100644 --- a/src/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv index 24b992b..24b992b 100644 --- a/src/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p224-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv index cd8291f..cd8291f 100644 --- a/src/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv index 021f92b..021f92b 100644 --- a/src/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv index e7b0176..e7b0176 100644 --- a/src/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv index 0df2f99..0df2f99 100644 --- a/src/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p256-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv index 725e299..725e299 100644 --- a/src/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv index 765e6de..765e6de 100644 --- a/src/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv index 64c6328..64c6328 100644 --- a/src/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv index 65cf43d..65cf43d 100644 --- a/src/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p384-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv index 6467649..6467649 100644 --- a/src/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv index 2f4f557..2f4f557 100644 --- a/src/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv index c00148e..c00148e 100644 --- a/src/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyCAVS.csv diff --git a/src/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv index b36b3b6..b36b3b6 100644 --- a/src/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/nist/p521-keyIUT.csv diff --git a/src/cz/crcs/ectester/data/test/results.xml b/common/src/main/java/cz/crcs/ectester/data/test/results.xml index fa43e4b..fa43e4b 100644 --- a/src/cz/crcs/ectester/data/test/results.xml +++ b/common/src/main/java/cz/crcs/ectester/data/test/results.xml diff --git a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv index eb56e26..eb56e26 100644 --- a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-kdf.csv diff --git a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv index c246c32..c246c32 100644 --- a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv index d83d932..d83d932 100644 --- a/src/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv index dcbe885..dcbe885 100644 --- a/src/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyU.csv diff --git a/src/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv index 59aacda..59aacda 100644 --- a/src/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/secp160r1-keyV.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv index 06a416f..06a416f 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-kdf.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv index 94eacd8..94eacd8 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-raw.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv index 651b80c..651b80c 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dh-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv index c234f31..c234f31 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-kdf.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv index 46a0a0f..46a0a0f 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-raw.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv index 4839c25..4839c25 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-dhc-sha1.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv index b516f3b..b516f3b 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyU.csv diff --git a/src/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv index 00ab019..00ab019 100644 --- a/src/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv +++ b/common/src/main/java/cz/crcs/ectester/data/test/secg/sect163k1-keyV.csv diff --git a/src/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml b/common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml index b558f8e..b558f8e 100644 --- a/src/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor128p4.xml diff --git a/src/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml b/common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml index bb712af..bb712af 100644 --- a/src/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/cofactor/cofactor160p4.xml diff --git a/src/cz/crcs/ectester/data/twist/keys.xml b/common/src/main/java/cz/crcs/ectester/data/twist/keys.xml index 3292004..3292004 100644 --- a/src/cz/crcs/ectester/data/twist/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/keys.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/b163.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b163.xml index 03690ac..03690ac 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b163.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b163.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/b233.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b233.xml index 7a0b579..7a0b579 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b233.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b233.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/b283.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b283.xml index 7f57585..7f57585 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b283.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/b283.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/k163.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k163.xml index 31040c0..31040c0 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k163.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k163.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/k233.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k233.xml index 6354ff9..6354ff9 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k233.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k233.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/k283.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k283.xml index 48a2dd9..48a2dd9 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k283.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/k283.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/p192.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p192.xml index d1fdf49..d1fdf49 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p192.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p192.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/p224.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p224.xml index 3ae34ff..3ae34ff 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p224.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p224.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/p256.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p256.xml index 2e1c55e..2e1c55e 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p256.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p256.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/p384.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p384.xml index 8e0d2b6..8e0d2b6 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p384.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p384.xml diff --git a/src/cz/crcs/ectester/data/twist/nist/p521.xml b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p521.xml index 1564c80..1564c80 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p521.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/nist/p521.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp112r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r1.xml index bea215a..bea215a 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp112r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp112r2.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r2.xml index f1d0fee..f1d0fee 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp112r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp112r2.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp128r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r1.xml index e9bf07b..e9bf07b 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp128r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp128r2.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r2.xml index fdd9028..fdd9028 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp128r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp128r2.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp160k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160k1.xml index 8d1cc53..8d1cc53 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp160k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp160r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r1.xml index dece980..dece980 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp160r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp160r2.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r2.xml index bdb8a03..bdb8a03 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp160r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp160r2.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp192k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192k1.xml index 457a414..457a414 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp192k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp192r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192r1.xml index 16ba7db..16ba7db 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp192r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp192r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp224r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp224r1.xml index ee6782e..ee6782e 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp224r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp224r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp256k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256k1.xml index 467641e..467641e 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp256k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp256r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256r1.xml index b385548..b385548 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp256r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp256r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp384r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp384r1.xml index 2ddbe9b..2ddbe9b 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp384r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp384r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/secp521r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp521r1.xml index 105efa3..105efa3 100644 --- a/src/cz/crcs/ectester/data/twist/secg/secp521r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/secp521r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect163k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163k1.xml index 754e8e6..754e8e6 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect163k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect163r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r1.xml index dd7d798..dd7d798 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect163r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect163r2.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r2.xml index 421887d..421887d 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect163r2.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect163r2.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect233k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233k1.xml index cf8524c..cf8524c 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect233k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect233r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233r1.xml index 45eecf4..45eecf4 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect233r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect233r1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect239k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect239k1.xml index bc17d4f..bc17d4f 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect239k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect239k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect283k1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283k1.xml index 65ecb63..65ecb63 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect283k1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283k1.xml diff --git a/src/cz/crcs/ectester/data/twist/secg/sect283r1.xml b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283r1.xml index e2913a0..e2913a0 100644 --- a/src/cz/crcs/ectester/data/twist/secg/sect283r1.xml +++ b/common/src/main/java/cz/crcs/ectester/data/twist/secg/sect283r1.xml diff --git a/src/cz/crcs/ectester/data/wrong/curves.xml b/common/src/main/java/cz/crcs/ectester/data/wrong/curves.xml index 2a51474..2a51474 100644 --- a/src/cz/crcs/ectester/data/wrong/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/curves.xml diff --git a/src/cz/crcs/ectester/data/wrong/keys.xml b/common/src/main/java/cz/crcs/ectester/data/wrong/keys.xml index 4be8b4d..4be8b4d 100644 --- a/src/cz/crcs/ectester/data/wrong/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/keys.xml diff --git a/src/cz/crcs/ectester/data/wrong/results.xml b/common/src/main/java/cz/crcs/ectester/data/wrong/results.xml index e3f0967..e3f0967 100644 --- a/src/cz/crcs/ectester/data/wrong/results.xml +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/results.xml diff --git a/src/cz/crcs/ectester/data/wrong/wrongp128.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp128.csv index d24da0e..d24da0e 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp128.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp128.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp160.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp160.csv index 20dea88..20dea88 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp160.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp160.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp192.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp192.csv index 7d2241c..7d2241c 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp192.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp192.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp224.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp224.csv index aeaaae4..aeaaae4 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp224.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp224.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp256.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp256.csv index 6902618..6902618 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp256.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp256.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp384.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp384.csv index 694ae78..694ae78 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp384.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp384.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongp521.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp521.csv index 76fe2f2..76fe2f2 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongp521.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongp521.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt163.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt163.csv index 88b142e..88b142e 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt163.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt163.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt233.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt233.csv index 291cdfe..291cdfe 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt233.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt233.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt239.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt239.csv index bef2e14..bef2e14 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt239.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt239.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt283.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt283.csv index 736fe15..736fe15 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt283.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt283.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt409.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt409.csv index fe7e040..fe7e040 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt409.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt409.csv diff --git a/src/cz/crcs/ectester/data/wrong/wrongt571.csv b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt571.csv index 2fcd0df..2fcd0df 100644 --- a/src/cz/crcs/ectester/data/wrong/wrongt571.csv +++ b/common/src/main/java/cz/crcs/ectester/data/wrong/wrongt571.csv diff --git a/src/cz/crcs/ectester/data/wycheproof/keys.xml b/common/src/main/java/cz/crcs/ectester/data/wycheproof/keys.xml index ee7280c..ee7280c 100644 --- a/src/cz/crcs/ectester/data/wycheproof/keys.xml +++ b/common/src/main/java/cz/crcs/ectester/data/wycheproof/keys.xml diff --git a/src/cz/crcs/ectester/data/wycheproof/results.xml b/common/src/main/java/cz/crcs/ectester/data/wycheproof/results.xml index 094043c..094043c 100644 --- a/src/cz/crcs/ectester/data/wycheproof/results.xml +++ b/common/src/main/java/cz/crcs/ectester/data/wycheproof/results.xml diff --git a/src/cz/crcs/ectester/data/x962/curves.xml b/common/src/main/java/cz/crcs/ectester/data/x962/curves.xml index eee64ad..eee64ad 100644 --- a/src/cz/crcs/ectester/data/x962/curves.xml +++ b/common/src/main/java/cz/crcs/ectester/data/x962/curves.xml diff --git a/src/cz/crcs/ectester/data/x962/prime192v1.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v1.csv index 07f9154..07f9154 100644 --- a/src/cz/crcs/ectester/data/x962/prime192v1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v1.csv diff --git a/src/cz/crcs/ectester/data/x962/prime192v2.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v2.csv index ee6f1a2..ee6f1a2 100644 --- a/src/cz/crcs/ectester/data/x962/prime192v2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v2.csv diff --git a/src/cz/crcs/ectester/data/x962/prime192v3.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v3.csv index f80fd5b..f80fd5b 100644 --- a/src/cz/crcs/ectester/data/x962/prime192v3.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime192v3.csv diff --git a/src/cz/crcs/ectester/data/x962/prime239v1.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v1.csv index c9d704b..c9d704b 100644 --- a/src/cz/crcs/ectester/data/x962/prime239v1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v1.csv diff --git a/src/cz/crcs/ectester/data/x962/prime239v2.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v2.csv index 100e60b..100e60b 100644 --- a/src/cz/crcs/ectester/data/x962/prime239v2.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v2.csv diff --git a/src/cz/crcs/ectester/data/x962/prime239v3.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v3.csv index ce8b38a..ce8b38a 100644 --- a/src/cz/crcs/ectester/data/x962/prime239v3.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime239v3.csv diff --git a/src/cz/crcs/ectester/data/x962/prime256v1.csv b/common/src/main/java/cz/crcs/ectester/data/x962/prime256v1.csv index c5a2440..c5a2440 100644 --- a/src/cz/crcs/ectester/data/x962/prime256v1.csv +++ b/common/src/main/java/cz/crcs/ectester/data/x962/prime256v1.csv diff --git a/dist/README.TXT b/dist/README.TXT deleted file mode 100644 index 64c76a6..0000000 --- a/dist/README.TXT +++ /dev/null @@ -1,16 +0,0 @@ -======================== -BUILD OUTPUT DESCRIPTION -======================== - -After building (with package target) this directory should contain the files: - -- ECTesterReader.jar -- ECTesterReader-dist.jar -- ECTesterStandalone.jar -- ECTesterStandalone-dist.jar -- ectester-reader.sh -- ectester-reader.bat - -The *-dist.jar variants of JAR files are self-contained executable JAR files with -all the dependencies inside them. - diff --git a/ext/ant-javacard.jar b/ext/ant-javacard.jar Binary files differdeleted file mode 100644 index a9c8656..0000000 --- a/ext/ant-javacard.jar +++ /dev/null diff --git a/ext/sdks b/ext/sdks -Subproject 494164ea8470f49f44be19f49dab3af7c83e39e +Subproject 6025a1d48060b2a72df2d862de310be434f4227 diff --git a/lib/wolfcrypt-jni.jar b/ext/wolfcrypt-jni.jar Binary files differindex 890ae14..890ae14 100644 --- a/lib/wolfcrypt-jni.jar +++ b/ext/wolfcrypt-jni.jar diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000..d64cd49 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a80b22c --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/bcprov-jdk18on-177.jar b/lib/bcprov-jdk18on-177.jar Binary files differdeleted file mode 100644 index 651d2fb..0000000 --- a/lib/bcprov-jdk18on-177.jar +++ /dev/null diff --git a/lib/commons-cli-1.5.0-javadoc.jar b/lib/commons-cli-1.5.0-javadoc.jar Binary files differdeleted file mode 100644 index 651dac3..0000000 --- a/lib/commons-cli-1.5.0-javadoc.jar +++ /dev/null diff --git a/lib/commons-cli-1.5.0.jar b/lib/commons-cli-1.5.0.jar Binary files differdeleted file mode 100644 index e036456..0000000 --- a/lib/commons-cli-1.5.0.jar +++ /dev/null diff --git a/lib/jcardsim-3.0.5.11.jar b/lib/jcardsim-3.0.5.11.jar Binary files differdeleted file mode 100644 index 90be8a0..0000000 --- a/lib/jcardsim-3.0.5.11.jar +++ /dev/null diff --git a/lib/snakeyaml-1.19.jar b/lib/snakeyaml-1.19.jar Binary files differdeleted file mode 100644 index 7c73a76..0000000 --- a/lib/snakeyaml-1.19.jar +++ /dev/null diff --git a/nbproject/copylibstask.jar b/nbproject/copylibstask.jar Binary files differdeleted file mode 100644 index 45fdbe1..0000000 --- a/nbproject/copylibstask.jar +++ /dev/null diff --git a/nbproject/dist-build.xml b/nbproject/dist-build.xml deleted file mode 100644 index b1bfadf..0000000 --- a/nbproject/dist-build.xml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project name="dist-build"> - <description>.</description> - <target name="package"> - <property name="store.dir" value="dist"/> - <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/> - - <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/> - - <tempfile property="temp.file" destDir="${java.io.tmpdir}" suffix=".jar"/> - <tempfile property="temp.previous_jar" destdir="${java.io.tmpdir}" suffix=".jar"/> - - <exec executable="git" outputproperty="git.commit" failifexecutionfails="false"> - <arg line="rev-parse --short HEAD"/> - </exec> - - <copy file="${store.jar}" tofile="${temp.previous_jar}" failonerror="false"/> - <echo message="Backed up ${store.jar} into ${temp.previous_jar}"/> - - <delete file="${store.jar}" failonerror="false"/> - <jar destfile="${temp.file}" filesetmanifest="skip" compress="true" level="8"> - <zipgroupfileset dir="dist" includes="*.jar"/> - <zipgroupfileset dir="dist/lib" includes="*.jar"/> - - <manifest> - <attribute name="Main-Class" value="${main.class}"/> - <attribute name="Git-Commit" value="${git.commit}"/> - </manifest> - </jar> - - <zip destfile="${store.jar}" compress="true" level="8"> - <zipfileset src="${temp.file}" - excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA, ${dist.archive.excludes}"/> - </zip> - - <delete file="${temp.file}"/> - <delete file="${temp.previous_jar}"/> - </target> -</project>
\ No newline at end of file diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties deleted file mode 100644 index 133840f..0000000 --- a/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=314f40b8 -build.xml.script.CRC32=5d85f1b1 -build.xml.stylesheet.CRC32=8064a381@1.75.2.48 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=667fcbc9 -nbproject/build-impl.xml.script.CRC32=e6bea23e -nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48 diff --git a/nbproject/keystore b/nbproject/keystore Binary files differdeleted file mode 100755 index 7c9c8e4..0000000 --- a/nbproject/keystore +++ /dev/null diff --git a/nbproject/reader/build-impl.xml b/nbproject/reader/build-impl.xml deleted file mode 100644 index f7c43a2..0000000 --- a/nbproject/reader/build-impl.xml +++ /dev/null @@ -1,1413 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -*** GENERATED FROM project.xml - DO NOT EDIT *** -*** EDIT ../build.xml INSTEAD *** - -For the purpose of easier reading the script -is divided into following sections: - - - initialization - - compilation - - jar - - execution - - debugging - - javadoc - - test compilation - - test execution - - test debugging - - applet - - cleanup - - --> -<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir="../../../" default="default" name="ECTesterReader-impl"> - <fail message="Please build using Ant 1.8.0 or higher."> - <condition> - <not> - <antversion atleast="1.8.0"/> - </not> - </condition> - </fail> - <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> - <!-- - ====================== - INITIALIZATION SECTION - ====================== - --> - <target name="-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init" name="-init-private"> - <property file="nbproject/private/config.properties"/> - <property file="nbproject/private/configs/${config}.properties"/> - <property file="nbproject/private/private.properties"/> - </target> - <target depends="-pre-init,-init-private" name="-init-user"> - <property file="${user.properties.file}"/> - <!-- The two properties below are usually overridden --> - <!-- by the active platform. Just a fallback. --> - <property name="default.javac.source" value="1.4"/> - <property name="default.javac.target" value="1.4"/> - </target> - <target depends="-pre-init,-init-private,-init-user" name="-init-project"> - <property file="nbproject/configs/${config}.properties"/> - <property file="nbproject/reader/project.properties"/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> - <property name="platform.java" value="${java.home}/bin/java"/> - <available file="${manifest.file}" property="manifest.available"/> - <condition property="splashscreen.available"> - <and> - <not> - <equals arg1="${application.splash}" arg2="" trim="true"/> - </not> - <available file="${application.splash}"/> - </and> - </condition> - <condition property="main.class.available"> - <and> - <isset property="main.class"/> - <not> - <equals arg1="${main.class}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition property="profile.available"> - <and> - <isset property="javac.profile"/> - <length length="0" string="${javac.profile}" when="greater"/> - <matches pattern="1\.[89](\..*)?" string="${javac.source}"/> - </and> - </condition> - <condition property="do.archive"> - <or> - <not> - <istrue value="${jar.archive.disabled}"/> - </not> - <istrue value="${not.archive.disabled}"/> - </or> - </condition> - <condition property="do.mkdist"> - <and> - <isset property="do.archive"/> - <isset property="libs.CopyLibs.classpath"/> - <not> - <istrue value="${mkdist.disabled}"/> - </not> - </and> - </condition> - <condition property="do.archive+manifest.available"> - <and> - <isset property="manifest.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+main.class.available"> - <and> - <isset property="main.class.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+splashscreen.available"> - <and> - <isset property="splashscreen.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+profile.available"> - <and> - <isset property="profile.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="have.tests"> - <or> - <available file="${test.src.dir}"/> - </or> - </condition> - <condition property="have.sources"> - <or> - <available file="${src.dir}"/> - </or> - </condition> - <condition property="netbeans.home+have.tests"> - <and> - <isset property="netbeans.home"/> - <isset property="have.tests"/> - </and> - </condition> - <condition property="no.javadoc.preview"> - <and> - <isset property="javadoc.preview"/> - <isfalse value="${javadoc.preview}"/> - </and> - </condition> - <property name="run.jvmargs" value=""/> - <property name="run.jvmargs.ide" value=""/> - <property name="javac.compilerargs" value=""/> - <property name="work.dir" value="${basedir}"/> - <condition property="no.deps"> - <and> - <istrue value="${no.dependencies}"/> - </and> - </condition> - <property name="javac.debug" value="true"/> - <property name="javadoc.preview" value="true"/> - <property name="application.args" value=""/> - <property name="source.encoding" value="${file.encoding}"/> - <property name="runtime.encoding" value="${source.encoding}"/> - <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> - <and> - <isset property="javadoc.encoding"/> - <not> - <equals arg1="${javadoc.encoding}" arg2=""/> - </not> - </and> - </condition> - <property name="javadoc.encoding.used" value="${source.encoding}"/> - <property name="includes" value="**"/> - <property name="excludes" value=""/> - <property name="do.depend" value="false"/> - <condition property="do.depend.true"> - <istrue value="${do.depend}"/> - </condition> - <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> - <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> - <and> - <isset property="endorsed.classpath"/> - <not> - <equals arg1="${endorsed.classpath}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> - <isset property="profile.available"/> - </condition> - <condition else="false" property="jdkBug6558476"> - <and> - <matches pattern="1\.[56]" string="${java.specification.version}"/> - <not> - <os family="unix"/> - </not> - </and> - </condition> - <property name="javac.fork" value="${jdkBug6558476}"/> - <property name="jar.index" value="false"/> - <property name="jar.index.metainf" value="${jar.index}"/> - <property name="copylibs.rebase" value="true"/> - <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> - <condition property="junit.available"> - <or> - <available classname="org.junit.Test" classpath="${run.test.classpath}"/> - <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> - </or> - </condition> - <condition property="testng.available"> - <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> - </condition> - <condition property="junit+testng.available"> - <and> - <istrue value="${junit.available}"/> - <istrue value="${testng.available}"/> - </and> - </condition> - <condition else="testng" property="testng.mode" value="mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - <condition else="" property="testng.debug.mode" value="-mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - </target> - <target name="-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> - <fail unless="src.dir">Must set src.dir</fail> - <fail unless="test.src.dir">Must set test.src.dir</fail> - <fail unless="build.dir">Must set build.dir</fail> - <fail unless="dist.dir">Must set dist.dir</fail> - <fail unless="build.classes.dir">Must set build.classes.dir</fail> - <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> - <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> - <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> - <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> - <fail unless="dist.jar">Must set dist.jar</fail> - </target> - <target name="-init-macrodef-property"> - <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${@{value}}"/> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <mkdir dir="@{apgeneratedsrcdir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <compilerarg value="-processorpath"/> - <compilerarg path="@{processorpath}:${empty.dir}"/> - <compilerarg line="${ap.processors.internal}"/> - <compilerarg line="${annotation.processing.processor.options}"/> - <compilerarg value="-s"/> - <compilerarg path="@{apgeneratedsrcdir}"/> - <compilerarg line="${ap.proc.none.internal}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> - <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <sequential> - <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - </depend> - </sequential> - </macrodef> - <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${build.classes.dir}" name="destdir"/> - <sequential> - <fail unless="javac.includes">Must set javac.includes</fail> - <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> - <path> - <filelist dir="@{destdir}" files="${javac.includes}"/> - </path> - <globmapper from="*.java" to="*.class"/> - </pathconvert> - <tempfile deleteonexit="true" property="javac.includesfile.binary"/> - <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> - <delete> - <files includesfile="${javac.includesfile.binary}"/> - </delete> - <delete> - <fileset file="${javac.includesfile.binary}"/> - </delete> - </sequential> - </macrodef> - </target> - <target if="${junit.available}" name="-init-macrodef-junit-init"> - <condition else="false" property="nb.junit.batch" value="true"> - <and> - <istrue value="${junit.available}"/> - <not> - <isset property="test.method"/> - </not> - </and> - </condition> - <condition else="false" property="nb.junit.single" value="true"> - <and> - <istrue value="${junit.available}"/> - <isset property="test.method"/> - </and> - </condition> - </target> - <target name="-init-test-properties"> - <property name="test.binaryincludes" value="<nothing>"/> - <property name="test.binarytestincludes" value=""/> - <property name="test.binaryexcludes" value=""/> - </target> - <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <batchtest todir="${build.test.results.dir}"> - <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> - <filename name="${test.binarytestincludes}"/> - </fileset> - </batchtest> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> - <target if="${testng.available}" name="-init-macrodef-testng"> - <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> - <isset property="test.method"/> - </condition> - <union id="test.set"> - <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - </union> - <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> - <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="ECTester" testname="TestNG tests" workingDir="${work.dir}"> - <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> - <propertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </propertyset> - <customize/> - </testng> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-test-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <echo>No tests executed.</echo> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:testng> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> - <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <sequential> - <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customize> - </j2seproject3:test-impl> - </sequential> - </macrodef> - </target> - <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}"> - <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch"> - <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <batchtest todir="${build.test.results.dir}"> - <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> - <filename name="${test.binarytestincludes}"/> - </fileset> - </batchtest> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> - <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:junit-debug> - </sequential> - </macrodef> - </target> - <target if="${testng.available}" name="-init-macrodef-testng-debug"> - <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element name="customize2" optional="true"/> - <sequential> - <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> - <isset property="test.method"/> - </condition> - <condition else="-suitename ECTester -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> - <matches pattern=".*\.xml" string="@{testClass}"/> - </condition> - <delete dir="${build.test.results.dir}" quiet="true"/> - <mkdir dir="${build.test.results.dir}"/> - <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> - <customize> - <customize2/> - <jvmarg value="-ea"/> - <arg line="${testng.debug.mode}"/> - <arg line="-d ${build.test.results.dir}"/> - <arg line="-listener org.testng.reporters.VerboseReporter"/> - <arg line="${testng.cmd.args}"/> - </customize> - </j2seproject3:debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> - <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element implicit="true" name="customize2" optional="true"/> - <sequential> - <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2/> - </j2seproject3:testng-debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customize> - </j2seproject3:test-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - </customize2> - </j2seproject3:testng-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> - <!-- - pre NB7.2 profiling section; consider it deprecated - --> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> - <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile"> - <macrodef name="resolve"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${env.@{value}}"/> - </sequential> - </macrodef> - <macrodef name="profile"> - <attribute default="${main.class}" name="classname"/> - <element name="customize" optional="true"/> - <sequential> - <property environment="env"/> - <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> - <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <arg line="${application.args}"/> - <classpath> - <path path="${run.classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check"> - <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> - <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> - </target> - <!-- - end of pre NB7.2 profiling section - --> - <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> - <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${main.class}" name="name"/> - <attribute default="${debug.classpath}" name="classpath"/> - <attribute default="" name="stopclassname"/> - <sequential> - <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - </nbjpdastart> - </sequential> - </macrodef> - <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${build.classes.dir}" name="dir"/> - <sequential> - <nbjpdareload> - <fileset dir="@{dir}" includes="${fix.classes}"> - <include name="${fix.includes}*.class"/> - </fileset> - </nbjpdareload> - </sequential> - </macrodef> - </target> - <target name="-init-debug-args"> - <property name="version-output" value="java version "${ant.java.version}"/> - <condition property="have-jdk-older-than-1.4"> - <or> - <contains string="${version-output}" substring="java version "1.0"/> - <contains string="${version-output}" substring="java version "1.1"/> - <contains string="${version-output}" substring="java version "1.2"/> - <contains string="${version-output}" substring="java version "1.3"/> - </or> - </condition> - <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none"> - <istrue value="${have-jdk-older-than-1.4}"/> - </condition> - <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> - <os family="windows"/> - </condition> - <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> - <isset property="debug.transport"/> - </condition> - </target> - <target depends="-init-debug-args" name="-init-macrodef-debug"> - <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="classname"/> - <attribute default="${debug.classpath}" name="classpath"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" fork="true"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <classpath> - <path path="@{classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-java"> - <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${main.class}" name="classname"/> - <attribute default="${run.classpath}" name="classpath"/> - <attribute default="jvm" name="jvm"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" fork="true"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <classpath> - <path path="@{classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-copylibs"> - <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${manifest.file}" name="manifest"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <pathconvert property="run.classpath.without.build.classes.dir"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to=""/> - </pathconvert> - <pathconvert pathsep=" " property="jar.classpath"> - <path path="${run.classpath.without.build.classes.dir}"/> - <chainedmapper> - <flattenmapper/> - <filtermapper> - <replacestring from=" " to="%20"/> - </filtermapper> - <globmapper from="*" to="lib/*"/> - </chainedmapper> - </pathconvert> - <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> - <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> - <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - <manifest> - <attribute name="Class-Path" value="${jar.classpath}"/> - <customize/> - </manifest> - </copylibs> - </sequential> - </macrodef> - </target> - <target name="-init-presetdef-jar"> - <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> - <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}"> - <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - </jar> - </presetdef> - </target> - <target name="-init-ap-cmdline-properties"> - <property name="annotation.processing.enabled" value="true"/> - <property name="annotation.processing.processors.list" value=""/> - <property name="annotation.processing.processor.options" value=""/> - <property name="annotation.processing.run.all.processors" value="true"/> - <property name="javac.processorpath" value="${javac.classpath}"/> - <property name="javac.test.processorpath" value="${javac.test.classpath}"/> - <condition property="ap.supported.internal" value="true"> - <not> - <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> - </not> - </condition> - </target> - <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> - <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> - <isfalse value="${annotation.processing.run.all.processors}"/> - </condition> - <condition else="" property="ap.proc.none.internal" value="-proc:none"> - <isfalse value="${annotation.processing.enabled}"/> - </condition> - </target> - <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> - <property name="ap.cmd.line.internal" value=""/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/> - <!-- - =================== - COMPILATION SECTION - =================== - --> - <target name="-deps-jar-init" unless="built-jar.properties"> - <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/> - <delete file="${built-jar.properties}" quiet="true"/> - </target> - <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> - <echo level="warn" message="Cycle detected: ECTester was already built"/> - </target> - <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-jar.properties}" verbose="false"/> - <property file="${built-jar.properties}" prefix="already.built.jar."/> - <antcall target="-warn-already-built-jar"/> - <propertyfile file="${built-jar.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> - <target depends="init" name="-check-automatic-build"> - <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> - </target> - <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> - <antcall target="clean"/> - </target> - <target depends="init,deps-jar" name="-pre-pre-compile"> - <mkdir dir="${build.classes.dir}"/> - </target> - <target name="-pre-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="do.depend.true" name="-compile-depend"> - <pathconvert property="build.generated.subdirs"> - <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </pathconvert> - <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/> - </target> - <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> - <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> - <copy todir="${build.classes.dir}"> - <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target if="has.persistence.xml" name="-copy-persistence-xml"> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy todir="${build.classes.dir}/META-INF"> - <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/> - </copy> - </target> - <target name="-post-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> - <target name="-pre-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile/> - <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/> - </target> - <target name="-post-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> - <!-- - ==================== - JAR BUILDING SECTION - ==================== - --> - <target depends="init" name="-pre-pre-jar"> - <dirname file="${dist.jar}" property="dist.jar.dir"/> - <mkdir dir="${dist.jar.dir}"/> - </target> - <target name="-pre-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <touch file="${tmp.manifest.file}" verbose="false"/> - </target> - <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="Main-Class" value="${main.class}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="Profile" value="${javac.profile}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen"> - <basename file="${application.splash}" property="splashscreen.basename"/> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> - </manifest> - </target> - <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs"> - <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> - <echo level="info">To run this application from the command line without Ant, try:</echo> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <echo level="info">java -jar "${dist.jar.resolved}"</echo> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> - <j2seproject1:jar manifest="${tmp.manifest.file}"/> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <pathconvert property="run.classpath.with.dist.jar"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> - </pathconvert> - <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}"> - <isset property="main.class.available"/> - </condition> - <condition else="debug" property="jar.usage.level" value="info"> - <isset property="main.class.available"/> - </condition> - <echo level="${jar.usage.level}" message="${jar.usage.message}"/> - </target> - <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest"> - <delete> - <fileset file="${tmp.manifest.file}"/> - </delete> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/> - <target name="-post-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> - <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/> - <!-- - ================= - EXECUTION SECTION - ================= - --> - <target depends="init,compile" description="Run a main class." name="run"> - <j2seproject1:java> - <customize> - <arg line="${application.args}"/> - </customize> - </j2seproject1:java> - </target> - <target name="-do-not-recompile"> - <property name="javac.includes.binary" value=""/> - </target> - <target depends="init,compile-single" name="run-single"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}"/> - </target> - <target depends="init,compile-test-single" name="run-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> - </target> - <!-- - ================= - DEBUGGING SECTION - ================= - --> - <target depends="init" if="netbeans.home" name="-debug-start-debugger"> - <j2seproject1:nbjpdastart name="${debug.class}"/> - </target> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> - </target> - <target depends="init,compile" name="-debug-start-debuggee"> - <j2seproject3:debug> - <customize> - <arg line="${application.args}"/> - </customize> - </j2seproject3:debug> - </target> - <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto"> - <j2seproject1:nbjpdastart stopclassname="${main.class}"/> - </target> - <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}"/> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> - <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> - </target> - <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> - <target depends="init" name="-pre-debug-fix"> - <fail unless="fix.includes">Must set fix.includes</fail> - <property name="javac.includes" value="${fix.includes}.java"/> - </target> - <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> - <j2seproject1:nbjpdareload/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> - <!-- - ================= - PROFILING SECTION - ================= - --> - <!-- - pre NB7.2 profiler integration - --> - <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile/> - </target> - <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72"> - <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="${profile.class}"/> - </target> - <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </profile> - </target> - <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - </nbprofiledirect> - <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <test name="${profile.class}"/> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - </junit> - </target> - <!-- - end of pre NB72 profiling section - --> - <target if="netbeans.home" name="-profile-check"> - <condition property="profiler.configured"> - <or> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> - </or> - </condition> - </target> - <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> - <startprofiler/> - <antcall target="run"/> - </target> - <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcall target="run-single"/> - </target> - <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/> - <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <startprofiler/> - <antcall target="test-single"/> - </target> - <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcal target="run-test-with-main"/> - </target> - <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <startprofiler/> - <antcall target="run-applet"/> - </target> - <!-- - =============== - JAVADOC SECTION - =============== - --> - <target depends="init" if="have.sources" name="-javadoc-build"> - <mkdir dir="${dist.javadoc.dir}"/> - <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}"> - <and> - <isset property="endorsed.classpath.cmd.line.arg"/> - <not> - <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/> - </not> - </and> - </condition> - <condition else="" property="bug5101868workaround" value="*.java"> - <matches pattern="1\.[56](\..*)?" string="${java.version}"/> - </condition> - <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> - <classpath> - <path path="${javac.classpath}"/> - </classpath> - <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> - <filename name="**/*.java"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/*.java"/> - <exclude name="*.java"/> - </fileset> - <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> - </javadoc> - <copy todir="${dist.javadoc.dir}"> - <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> - <filename name="**/doc-files/**"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/doc-files/**"/> - </fileset> - </copy> - </target> - <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> - <nbbrowse file="${dist.javadoc.dir}/index.html"/> - </target> - <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/> - <!-- - ========================= - TEST COMPILATION SECTION - ========================= - --> - <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> - <mkdir dir="${build.test.classes.dir}"/> - </target> - <target name="-pre-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="do.depend.true" name="-compile-test-depend"> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> - </target> - <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> - <target name="-pre-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> - <!-- - ======================= - TEST EXECUTION SECTION - ======================= - --> - <target depends="init" if="have.tests" name="-pre-test-run"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run"> - <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> - </target> - <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init" if="have.tests" name="test-report"/> - <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> - <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> - <target depends="init" if="have.tests" name="-pre-test-run-single"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> - <fail unless="test.class">Must select some files in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> - <!-- - ======================= - TEST DEBUGGING SECTION - ======================= - --> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> - </target> - <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> - <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> - <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> - <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> - <!-- - ========================= - APPLET EXECUTION SECTION - ========================= - --> - <target depends="init,compile-single" name="run-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject1:java classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </j2seproject1:java> - </target> - <!-- - ========================= - APPLET DEBUGGING SECTION - ========================= - --> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject3:debug classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </j2seproject3:debug> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> - <!-- - =============== - CLEANUP SECTION - =============== - --> - <target name="-deps-clean-init" unless="built-clean.properties"> - <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/> - <delete file="${built-clean.properties}" quiet="true"/> - </target> - <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> - <echo level="warn" message="Cycle detected: ECTester was already built"/> - </target> - <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-clean.properties}" verbose="false"/> - <property file="${built-clean.properties}" prefix="already.built.clean."/> - <antcall target="-warn-already-built-clean"/> - <propertyfile file="${built-clean.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init" name="-do-clean"> - <delete dir="${build.dir}"/> - <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> - </target> - <target name="-post-clean"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/> - <target name="-check-call-dep"> - <property file="${call.built.properties}" prefix="already.built."/> - <condition property="should.call.dep"> - <and> - <not> - <isset property="already.built.${call.subproject}"/> - </not> - <available file="${call.script}"/> - </and> - </condition> - </target> - <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep"> - <ant antfile="${call.script}" inheritall="false" target="${call.target}"> - <propertyset> - <propertyref prefix="transfer."/> - <mapper from="transfer.*" to="*" type="glob"/> - </propertyset> - </ant> - </target> -</project> diff --git a/nbproject/reader/manifest.mf b/nbproject/reader/manifest.mf deleted file mode 100644 index ee7fb6a..0000000 --- a/nbproject/reader/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: lib/bcprov-jdk18on-177.jar lib/jcardsim-3.0.5.11.jar lib/commons-cli-1.5.0.jar lib/snakeyaml-1.19.jar -Main-Class: cz.crcs.ectester.reader.ECTesterReader - diff --git a/nbproject/reader/project.properties b/nbproject/reader/project.properties deleted file mode 100644 index 0551b0b..0000000 --- a/nbproject/reader/project.properties +++ /dev/null @@ -1,80 +0,0 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.title=ECTesterReader -application.vendor=xsvenda -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form,**/*.c,**/*.cpp,**/*.hpp,**/*.h,**/*.a,**/*.o,**/*.so,**/Makefile,**/Makefile.bat -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# Files in build.classes.dir which should be excluded from distribution jar -dist.archive.excludes=**/*.java,**/*.form,**/*.c,**/*.cpp,**/*.hpp,**/*.h,**/*.a,**/*.o,**/*.so,**/Makefile,**/Makefile.bat -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/ECTesterReader.jar -dist.javadoc.dir=${dist.dir}/javadoc -libs.CopyLibs.classpath=nbproject/copylibstask.jar -endorsed.classpath= -excludes= -includes=**/applet/**,**/common/**,**/data/**,**/reader/** -jar.compress=true -javac.classpath=\ - lib/bcprov-jdk18on-177.jar:\ - lib/jcardsim-3.0.5.11.jar:\ - lib/commons-cli-1.5.0.jar:\ - lib/snakeyaml-1.19.jar -# Space-separated list of extra javac options -javac.compilerargs=-Xlint:all -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=11 -javac.target=11 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -main.class=cz.crcs.ectester.reader.ECTesterReader -manifest.file=nbproject/reader/manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/nbproject/reader/project.xml b/nbproject/reader/project.xml deleted file mode 100644 index aebe217..0000000 --- a/nbproject/reader/project.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://www.netbeans.org/ns/project/1"> - <type>org.netbeans.modules.java.j2seproject</type> - <configuration> - <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> - <name>ECTesterReader</name> - <source-roots> - <root id="src.dir"/> - </source-roots> - <test-roots> - <root id="test.src.dir"/> - </test-roots> - </data> - </configuration> -</project> diff --git a/nbproject/standalone/build-impl.xml b/nbproject/standalone/build-impl.xml deleted file mode 100644 index a1f91c2..0000000 --- a/nbproject/standalone/build-impl.xml +++ /dev/null @@ -1,1413 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -*** GENERATED FROM project.xml - DO NOT EDIT *** -*** EDIT ../build.xml INSTEAD *** - -For the purpose of easier reading the script -is divided into following sections: - - - initialization - - compilation - - jar - - execution - - debugging - - javadoc - - test compilation - - test execution - - test debugging - - applet - - cleanup - - --> -<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir="../../../" default="default" name="ECTesterStandalone-impl"> - <fail message="Please build using Ant 1.8.0 or higher."> - <condition> - <not> - <antversion atleast="1.8.0"/> - </not> - </condition> - </fail> - <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> - <!-- - ====================== - INITIALIZATION SECTION - ====================== - --> - <target name="-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init" name="-init-private"> - <property file="nbproject/private/config.properties"/> - <property file="nbproject/private/configs/${config}.properties"/> - <property file="nbproject/private/private.properties"/> - </target> - <target depends="-pre-init,-init-private" name="-init-user"> - <property file="${user.properties.file}"/> - <!-- The two properties below are usually overridden --> - <!-- by the active platform. Just a fallback. --> - <property name="default.javac.source" value="1.4"/> - <property name="default.javac.target" value="1.4"/> - </target> - <target depends="-pre-init,-init-private,-init-user" name="-init-project"> - <property file="nbproject/configs/${config}.properties"/> - <property file="nbproject/standalone/project.properties"/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> - <property name="platform.java" value="${java.home}/bin/java"/> - <available file="${manifest.file}" property="manifest.available"/> - <condition property="splashscreen.available"> - <and> - <not> - <equals arg1="${application.splash}" arg2="" trim="true"/> - </not> - <available file="${application.splash}"/> - </and> - </condition> - <condition property="main.class.available"> - <and> - <isset property="main.class"/> - <not> - <equals arg1="${main.class}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition property="profile.available"> - <and> - <isset property="javac.profile"/> - <length length="0" string="${javac.profile}" when="greater"/> - <matches pattern="1\.[89](\..*)?" string="${javac.source}"/> - </and> - </condition> - <condition property="do.archive"> - <or> - <not> - <istrue value="${jar.archive.disabled}"/> - </not> - <istrue value="${not.archive.disabled}"/> - </or> - </condition> - <condition property="do.mkdist"> - <and> - <isset property="do.archive"/> - <isset property="libs.CopyLibs.classpath"/> - <not> - <istrue value="${mkdist.disabled}"/> - </not> - </and> - </condition> - <condition property="do.archive+manifest.available"> - <and> - <isset property="manifest.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+main.class.available"> - <and> - <isset property="main.class.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+splashscreen.available"> - <and> - <isset property="splashscreen.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+profile.available"> - <and> - <isset property="profile.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="have.tests"> - <or> - <available file="${test.src.dir}"/> - </or> - </condition> - <condition property="have.sources"> - <or> - <available file="${src.dir}"/> - </or> - </condition> - <condition property="netbeans.home+have.tests"> - <and> - <isset property="netbeans.home"/> - <isset property="have.tests"/> - </and> - </condition> - <condition property="no.javadoc.preview"> - <and> - <isset property="javadoc.preview"/> - <isfalse value="${javadoc.preview}"/> - </and> - </condition> - <property name="run.jvmargs" value=""/> - <property name="run.jvmargs.ide" value=""/> - <property name="javac.compilerargs" value=""/> - <property name="work.dir" value="${basedir}"/> - <condition property="no.deps"> - <and> - <istrue value="${no.dependencies}"/> - </and> - </condition> - <property name="javac.debug" value="true"/> - <property name="javadoc.preview" value="true"/> - <property name="application.args" value=""/> - <property name="source.encoding" value="${file.encoding}"/> - <property name="runtime.encoding" value="${source.encoding}"/> - <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> - <and> - <isset property="javadoc.encoding"/> - <not> - <equals arg1="${javadoc.encoding}" arg2=""/> - </not> - </and> - </condition> - <property name="javadoc.encoding.used" value="${source.encoding}"/> - <property name="includes" value="**"/> - <property name="excludes" value=""/> - <property name="do.depend" value="false"/> - <condition property="do.depend.true"> - <istrue value="${do.depend}"/> - </condition> - <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> - <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> - <and> - <isset property="endorsed.classpath"/> - <not> - <equals arg1="${endorsed.classpath}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> - <isset property="profile.available"/> - </condition> - <condition else="false" property="jdkBug6558476"> - <and> - <matches pattern="1\.[56]" string="${java.specification.version}"/> - <not> - <os family="unix"/> - </not> - </and> - </condition> - <property name="javac.fork" value="${jdkBug6558476}"/> - <property name="jar.index" value="false"/> - <property name="jar.index.metainf" value="${jar.index}"/> - <property name="copylibs.rebase" value="true"/> - <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> - <condition property="junit.available"> - <or> - <available classname="org.junit.Test" classpath="${run.test.classpath}"/> - <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> - </or> - </condition> - <condition property="testng.available"> - <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> - </condition> - <condition property="junit+testng.available"> - <and> - <istrue value="${junit.available}"/> - <istrue value="${testng.available}"/> - </and> - </condition> - <condition else="testng" property="testng.mode" value="mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - <condition else="" property="testng.debug.mode" value="-mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - </target> - <target name="-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> - <fail unless="src.dir">Must set src.dir</fail> - <fail unless="test.src.dir">Must set test.src.dir</fail> - <fail unless="build.dir">Must set build.dir</fail> - <fail unless="dist.dir">Must set dist.dir</fail> - <fail unless="build.classes.dir">Must set build.classes.dir</fail> - <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> - <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> - <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> - <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> - <fail unless="dist.jar">Must set dist.jar</fail> - </target> - <target name="-init-macrodef-property"> - <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${@{value}}"/> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <mkdir dir="@{apgeneratedsrcdir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <compilerarg value="-processorpath"/> - <compilerarg path="@{processorpath}:${empty.dir}"/> - <compilerarg line="${ap.processors.internal}"/> - <compilerarg line="${annotation.processing.processor.options}"/> - <compilerarg value="-s"/> - <compilerarg path="@{apgeneratedsrcdir}"/> - <compilerarg line="${ap.proc.none.internal}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> - <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <sequential> - <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - </depend> - </sequential> - </macrodef> - <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${build.classes.dir}" name="destdir"/> - <sequential> - <fail unless="javac.includes">Must set javac.includes</fail> - <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> - <path> - <filelist dir="@{destdir}" files="${javac.includes}"/> - </path> - <globmapper from="*.java" to="*.class"/> - </pathconvert> - <tempfile deleteonexit="true" property="javac.includesfile.binary"/> - <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> - <delete> - <files includesfile="${javac.includesfile.binary}"/> - </delete> - <delete> - <fileset file="${javac.includesfile.binary}"/> - </delete> - </sequential> - </macrodef> - </target> - <target if="${junit.available}" name="-init-macrodef-junit-init"> - <condition else="false" property="nb.junit.batch" value="true"> - <and> - <istrue value="${junit.available}"/> - <not> - <isset property="test.method"/> - </not> - </and> - </condition> - <condition else="false" property="nb.junit.single" value="true"> - <and> - <istrue value="${junit.available}"/> - <isset property="test.method"/> - </and> - </condition> - </target> - <target name="-init-test-properties"> - <property name="test.binaryincludes" value="<nothing>"/> - <property name="test.binarytestincludes" value=""/> - <property name="test.binaryexcludes" value=""/> - </target> - <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <batchtest todir="${build.test.results.dir}"> - <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> - <filename name="${test.binarytestincludes}"/> - </fileset> - </batchtest> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> - <target if="${testng.available}" name="-init-macrodef-testng"> - <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> - <isset property="test.method"/> - </condition> - <union id="test.set"> - <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - </union> - <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> - <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="ECTester" testname="TestNG tests" workingDir="${work.dir}"> - <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> - <propertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </propertyset> - <customize/> - </testng> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-test-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <echo>No tests executed.</echo> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:testng> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> - <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <sequential> - <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customize> - </j2seproject3:test-impl> - </sequential> - </macrodef> - </target> - <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}"> - <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch"> - <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <batchtest todir="${build.test.results.dir}"> - <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> - <filename name="${test.binarytestincludes}"/> - </fileset> - </batchtest> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg value="-ea"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <customize/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> - <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:junit-debug> - </sequential> - </macrodef> - </target> - <target if="${testng.available}" name="-init-macrodef-testng-debug"> - <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element name="customize2" optional="true"/> - <sequential> - <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> - <isset property="test.method"/> - </condition> - <condition else="-suitename ECTester -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> - <matches pattern=".*\.xml" string="@{testClass}"/> - </condition> - <delete dir="${build.test.results.dir}" quiet="true"/> - <mkdir dir="${build.test.results.dir}"/> - <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> - <customize> - <customize2/> - <jvmarg value="-ea"/> - <arg line="${testng.debug.mode}"/> - <arg line="-d ${build.test.results.dir}"/> - <arg line="-listener org.testng.reporters.VerboseReporter"/> - <arg line="${testng.cmd.args}"/> - </customize> - </j2seproject3:debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> - <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element implicit="true" name="customize2" optional="true"/> - <sequential> - <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2/> - </j2seproject3:testng-debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customize> - </j2seproject3:test-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - </customize2> - </j2seproject3:testng-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> - <!-- - pre NB7.2 profiling section; consider it deprecated - --> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> - <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile"> - <macrodef name="resolve"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${env.@{value}}"/> - </sequential> - </macrodef> - <macrodef name="profile"> - <attribute default="${main.class}" name="classname"/> - <element name="customize" optional="true"/> - <sequential> - <property environment="env"/> - <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> - <java classname="@{classname}" dir="${profiler.info.dir}" fork="true" jvm="${profiler.info.jvm}"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <arg line="${application.args}"/> - <classpath> - <path path="${run.classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check"> - <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> - <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> - </target> - <!-- - end of pre NB7.2 profiling section - --> - <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> - <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${main.class}" name="name"/> - <attribute default="${debug.classpath}" name="classpath"/> - <attribute default="" name="stopclassname"/> - <sequential> - <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - </nbjpdastart> - </sequential> - </macrodef> - <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${build.classes.dir}" name="dir"/> - <sequential> - <nbjpdareload> - <fileset dir="@{dir}" includes="${fix.classes}"> - <include name="${fix.includes}*.class"/> - </fileset> - </nbjpdareload> - </sequential> - </macrodef> - </target> - <target name="-init-debug-args"> - <property name="version-output" value="java version "${ant.java.version}"/> - <condition property="have-jdk-older-than-1.4"> - <or> - <contains string="${version-output}" substring="java version "1.0"/> - <contains string="${version-output}" substring="java version "1.1"/> - <contains string="${version-output}" substring="java version "1.2"/> - <contains string="${version-output}" substring="java version "1.3"/> - </or> - </condition> - <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none"> - <istrue value="${have-jdk-older-than-1.4}"/> - </condition> - <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> - <os family="windows"/> - </condition> - <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> - <isset property="debug.transport"/> - </condition> - </target> - <target depends="-init-debug-args" name="-init-macrodef-debug"> - <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="classname"/> - <attribute default="${debug.classpath}" name="classpath"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" fork="true"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg line="${debug-args-line}"/> - <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <classpath> - <path path="@{classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-java"> - <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${main.class}" name="classname"/> - <attribute default="${run.classpath}" name="classpath"/> - <attribute default="jvm" name="jvm"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" fork="true"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <classpath> - <path path="@{classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-copylibs"> - <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${manifest.file}" name="manifest"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <pathconvert property="run.classpath.without.build.classes.dir"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to=""/> - </pathconvert> - <pathconvert pathsep=" " property="jar.classpath"> - <path path="${run.classpath.without.build.classes.dir}"/> - <chainedmapper> - <flattenmapper/> - <filtermapper> - <replacestring from=" " to="%20"/> - </filtermapper> - <globmapper from="*" to="lib/*"/> - </chainedmapper> - </pathconvert> - <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> - <copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> - <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - <manifest> - <attribute name="Class-Path" value="${jar.classpath}"/> - <customize/> - </manifest> - </copylibs> - </sequential> - </macrodef> - </target> - <target name="-init-presetdef-jar"> - <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> - <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}"> - <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - </jar> - </presetdef> - </target> - <target name="-init-ap-cmdline-properties"> - <property name="annotation.processing.enabled" value="true"/> - <property name="annotation.processing.processors.list" value=""/> - <property name="annotation.processing.processor.options" value=""/> - <property name="annotation.processing.run.all.processors" value="true"/> - <property name="javac.processorpath" value="${javac.classpath}"/> - <property name="javac.test.processorpath" value="${javac.test.classpath}"/> - <condition property="ap.supported.internal" value="true"> - <not> - <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> - </not> - </condition> - </target> - <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> - <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> - <isfalse value="${annotation.processing.run.all.processors}"/> - </condition> - <condition else="" property="ap.proc.none.internal" value="-proc:none"> - <isfalse value="${annotation.processing.enabled}"/> - </condition> - </target> - <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> - <property name="ap.cmd.line.internal" value=""/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/> - <!-- - =================== - COMPILATION SECTION - =================== - --> - <target name="-deps-jar-init" unless="built-jar.properties"> - <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/> - <delete file="${built-jar.properties}" quiet="true"/> - </target> - <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> - <echo level="warn" message="Cycle detected: ECTester was already built"/> - </target> - <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-jar.properties}" verbose="false"/> - <property file="${built-jar.properties}" prefix="already.built.jar."/> - <antcall target="-warn-already-built-jar"/> - <propertyfile file="${built-jar.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> - <target depends="init" name="-check-automatic-build"> - <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> - </target> - <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> - <antcall target="clean"/> - </target> - <target depends="init,deps-jar" name="-pre-pre-compile"> - <mkdir dir="${build.classes.dir}"/> - </target> - <target name="-pre-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="do.depend.true" name="-compile-depend"> - <pathconvert property="build.generated.subdirs"> - <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </pathconvert> - <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/> - </target> - <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> - <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> - <copy todir="${build.classes.dir}"> - <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target if="has.persistence.xml" name="-copy-persistence-xml"> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy todir="${build.classes.dir}/META-INF"> - <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/> - </copy> - </target> - <target name="-post-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> - <target name="-pre-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile/> - <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/> - </target> - <target name="-post-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> - <!-- - ==================== - JAR BUILDING SECTION - ==================== - --> - <target depends="init" name="-pre-pre-jar"> - <dirname file="${dist.jar}" property="dist.jar.dir"/> - <mkdir dir="${dist.jar.dir}"/> - </target> - <target name="-pre-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <touch file="${tmp.manifest.file}" verbose="false"/> - </target> - <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <copy file="${manifest.file}" tofile="${tmp.manifest.file}"/> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="Main-Class" value="${main.class}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="Profile" value="${javac.profile}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen"> - <basename file="${application.splash}" property="splashscreen.basename"/> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> - <manifest file="${tmp.manifest.file}" mode="update"> - <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> - </manifest> - </target> - <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs"> - <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> - <echo level="info">To run this application from the command line without Ant, try:</echo> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <echo level="info">java -jar "${dist.jar.resolved}"</echo> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> - <j2seproject1:jar manifest="${tmp.manifest.file}"/> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <pathconvert property="run.classpath.with.dist.jar"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> - </pathconvert> - <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}"> - <isset property="main.class.available"/> - </condition> - <condition else="debug" property="jar.usage.level" value="info"> - <isset property="main.class.available"/> - </condition> - <echo level="${jar.usage.level}" message="${jar.usage.message}"/> - </target> - <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest"> - <delete> - <fileset file="${tmp.manifest.file}"/> - </delete> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/> - <target name="-post-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> - <target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/> - <!-- - ================= - EXECUTION SECTION - ================= - --> - <target depends="init,compile" description="Run a main class." name="run"> - <j2seproject1:java> - <customize> - <arg line="${application.args}"/> - </customize> - </j2seproject1:java> - </target> - <target name="-do-not-recompile"> - <property name="javac.includes.binary" value=""/> - </target> - <target depends="init,compile-single" name="run-single"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}"/> - </target> - <target depends="init,compile-test-single" name="run-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> - </target> - <!-- - ================= - DEBUGGING SECTION - ================= - --> - <target depends="init" if="netbeans.home" name="-debug-start-debugger"> - <j2seproject1:nbjpdastart name="${debug.class}"/> - </target> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> - </target> - <target depends="init,compile" name="-debug-start-debuggee"> - <j2seproject3:debug> - <customize> - <arg line="${application.args}"/> - </customize> - </j2seproject3:debug> - </target> - <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto"> - <j2seproject1:nbjpdastart stopclassname="${main.class}"/> - </target> - <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}"/> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> - <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> - </target> - <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> - <target depends="init" name="-pre-debug-fix"> - <fail unless="fix.includes">Must set fix.includes</fail> - <property name="javac.includes" value="${fix.includes}.java"/> - </target> - <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> - <j2seproject1:nbjpdareload/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> - <!-- - ================= - PROFILING SECTION - ================= - --> - <!-- - pre NB7.2 profiler integration - --> - <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile/> - </target> - <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72"> - <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="${profile.class}"/> - </target> - <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </profile> - </target> - <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - </nbprofiledirect> - <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <test name="${profile.class}"/> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - </junit> - </target> - <!-- - end of pre NB72 profiling section - --> - <target if="netbeans.home" name="-profile-check"> - <condition property="profiler.configured"> - <or> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> - </or> - </condition> - </target> - <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> - <startprofiler/> - <antcall target="run"/> - </target> - <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcall target="run-single"/> - </target> - <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/> - <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <startprofiler/> - <antcall target="test-single"/> - </target> - <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcal target="run-test-with-main"/> - </target> - <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <startprofiler/> - <antcall target="run-applet"/> - </target> - <!-- - =============== - JAVADOC SECTION - =============== - --> - <target depends="init" if="have.sources" name="-javadoc-build"> - <mkdir dir="${dist.javadoc.dir}"/> - <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}"> - <and> - <isset property="endorsed.classpath.cmd.line.arg"/> - <not> - <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/> - </not> - </and> - </condition> - <condition else="" property="bug5101868workaround" value="*.java"> - <matches pattern="1\.[56](\..*)?" string="${java.version}"/> - </condition> - <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> - <classpath> - <path path="${javac.classpath}"/> - </classpath> - <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> - <filename name="**/*.java"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/*.java"/> - <exclude name="*.java"/> - </fileset> - <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> - </javadoc> - <copy todir="${dist.javadoc.dir}"> - <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> - <filename name="**/doc-files/**"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/doc-files/**"/> - </fileset> - </copy> - </target> - <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> - <nbbrowse file="${dist.javadoc.dir}/index.html"/> - </target> - <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/> - <!-- - ========================= - TEST COMPILATION SECTION - ========================= - --> - <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> - <mkdir dir="${build.test.classes.dir}"/> - </target> - <target name="-pre-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="do.depend.true" name="-compile-test-depend"> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> - </target> - <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> - <target name="-pre-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> - <!-- - ======================= - TEST EXECUTION SECTION - ======================= - --> - <target depends="init" if="have.tests" name="-pre-test-run"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run"> - <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> - </target> - <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init" if="have.tests" name="test-report"/> - <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> - <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> - <target depends="init" if="have.tests" name="-pre-test-run-single"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> - <fail unless="test.class">Must select some files in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> - <!-- - ======================= - TEST DEBUGGING SECTION - ======================= - --> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> - </target> - <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> - <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> - <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> - <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> - <!-- - ========================= - APPLET EXECUTION SECTION - ========================= - --> - <target depends="init,compile-single" name="run-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject1:java classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </j2seproject1:java> - </target> - <!-- - ========================= - APPLET DEBUGGING SECTION - ========================= - --> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject3:debug classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </j2seproject3:debug> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> - <!-- - =============== - CLEANUP SECTION - =============== - --> - <target name="-deps-clean-init" unless="built-clean.properties"> - <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/> - <delete file="${built-clean.properties}" quiet="true"/> - </target> - <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> - <echo level="warn" message="Cycle detected: ECTester was already built"/> - </target> - <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-clean.properties}" verbose="false"/> - <property file="${built-clean.properties}" prefix="already.built.clean."/> - <antcall target="-warn-already-built-clean"/> - <propertyfile file="${built-clean.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init" name="-do-clean"> - <delete dir="${build.dir}"/> - <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> - </target> - <target name="-post-clean"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/> - <target name="-check-call-dep"> - <property file="${call.built.properties}" prefix="already.built."/> - <condition property="should.call.dep"> - <and> - <not> - <isset property="already.built.${call.subproject}"/> - </not> - <available file="${call.script}"/> - </and> - </condition> - </target> - <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep"> - <ant antfile="${call.script}" inheritall="false" target="${call.target}"> - <propertyset> - <propertyref prefix="transfer."/> - <mapper from="transfer.*" to="*" type="glob"/> - </propertyset> - </ant> - </target> -</project> diff --git a/nbproject/standalone/manifest.mf b/nbproject/standalone/manifest.mf deleted file mode 100644 index a0eb692..0000000 --- a/nbproject/standalone/manifest.mf +++ /dev/null @@ -1,4 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: lib/bcprov-jdk18on-177.jar lib/wolfcrypt-jni.jar lib/jcardsim-3.0.5.11.jar lib/commons-cli-1.5.0.jar lib/snakeyaml-1.19.jar -Main-Class: cz.crcs.ectester.standalone.ECTesterStandalone - diff --git a/nbproject/standalone/project.properties b/nbproject/standalone/project.properties deleted file mode 100644 index 562f44a..0000000 --- a/nbproject/standalone/project.properties +++ /dev/null @@ -1,81 +0,0 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.title=ECTesterStandalone -application.vendor=xsvenda -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form,**/*.c,**/*.cpp,**/*.hpp,**/*.h,**/*.a,**/*.o,**/Makefile,**/Makefile.bat -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# Files in build.classes.dir which should be excluded from distribution jar -dist.archive.excludes=**/*.java,**/*.form,**/*.c,**/*.cpp,**/*.hpp,**/*.h,**/*.a,**/*.o,**/Makefile,**/Makefile.bat -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/ECTesterStandalone.jar -dist.javadoc.dir=${dist.dir}/javadoc -libs.CopyLibs.classpath=nbproject/copylibstask.jar -endorsed.classpath= -excludes= -includes=**/common/**,**/standalone/**,**/data/**,**/applet/* -jar.compress=true -javac.classpath=\ - lib/bcprov-jdk18on-177.jar:\ - lib/wolfcrypt-jni.jar:\ - lib/jcardsim-3.0.5.11.jar:\ - lib/commons-cli-1.5.0.jar:\ - lib/snakeyaml-1.19.jar -# Space-separated list of extra javac options -javac.compilerargs=-Xlint:all --add-modules jdk.crypto.ec --add-exports jdk.crypto.ec/sun.security.ec=ALL-UNNAMED -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=11 -javac.target=11 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -main.class=cz.crcs.ectester.standalone.ECTesterStandalone -manifest.file=nbproject/standalone/manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/nbproject/standalone/project.xml b/nbproject/standalone/project.xml deleted file mode 100644 index 2f2fb3f..0000000 --- a/nbproject/standalone/project.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://www.netbeans.org/ns/project/1"> - <type>org.netbeans.modules.java.j2seproject</type> - <configuration> - <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> - <name>ECTesterStandalone</name> - <source-roots> - <root id="src.dir"/> - </source-roots> - <test-roots> - <root id="test.src.dir"/> - </test-roots> - </data> - </configuration> -</project> diff --git a/reader/build.gradle.kts b/reader/build.gradle.kts new file mode 100644 index 0000000..7f011c8 --- /dev/null +++ b/reader/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + application +} + +repositories { + mavenCentral() + + // Repository with JCardSim, Globalplatform, etc, ... + maven("https://javacard.pro/maven") + maven("https://deadcode.me/mvn") +} + +dependencies { + implementation(project(":common")) + implementation(project(":applet")) +} + +application { + mainClass = "cz.crcs.ectester.reader.ECTesterReader" +}
\ No newline at end of file diff --git a/src/cz/crcs/ectester/reader/CardMngr.java b/reader/src/main/java/cz/crcs/ectester/reader/CardMngr.java index 0a01d9e..0a01d9e 100644 --- a/src/cz/crcs/ectester/reader/CardMngr.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/CardMngr.java diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java index fdfb4cb..33111d0 100644 --- a/src/cz/crcs/ectester/reader/ECTesterReader.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/ECTesterReader.java @@ -24,13 +24,12 @@ package cz.crcs.ectester.reader; import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.cli.CLITools; import cz.crcs.ectester.common.cli.Colors; import cz.crcs.ectester.common.ec.EC_Curve; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.output.OutputLogger; import cz.crcs.ectester.common.output.TestWriter; -import cz.crcs.ectester.common.util.Util; import cz.crcs.ectester.common.util.*; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.command.Command; @@ -55,9 +54,6 @@ import java.security.spec.ECParameterSpec; import java.util.*; import java.util.jar.Manifest; -import static cz.crcs.ectester.applet.EC_Consts.KeyAgreement_ALG_EC_SVDP_DH; -import static cz.crcs.ectester.applet.EC_Consts.Signature_ALG_ECDSA_SHA; - /** * Reader part of ECTester, a tool for testing Elliptic curve support on javacards. * @@ -378,7 +374,7 @@ public class ECTesterReader { System.out.println(String.format("Card ATR:\t\t\t\t%s", ByteUtil.bytesToHex(cardManager.getATR().getBytes(), false))); System.out.println(String.format("Card protocol:\t\t\t\t%s", cardManager.getProtocol())); System.out.println(String.format("ECTester applet version:\t\t%s", info.getVersion())); - System.out.println(String.format("ECTester applet APDU support:\t\t%s", (info.getBase() == ECTesterApplet.BASE_221) ? "basic" : "extended length")); + System.out.println(String.format("ECTester applet APDU support:\t\t%s", (info.getBase() == CardConsts.BASE_221) ? "basic" : "extended length")); System.out.println(String.format("JavaCard API version:\t\t\t%.1f", info.getJavaCardVersion())); System.out.println(String.format("JavaCard supports system cleanup:\t%s", info.getCleanupSupport())); System.out.println(String.format("Array sizes (apduBuf,ram,ram2,apduArr):\t%d %d %d %d", info.getApduBufferLength(), info.getRamArrayLength(), info.getRamArray2Length(), info.getApduArrayLength())); @@ -394,12 +390,12 @@ public class ECTesterReader { byte keyClass = cfg.primeField ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; List<Response> sent = new LinkedList<>(); - sent.add(new Command.Allocate(cardManager, ECTesterApplet.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send()); - //sent.add(new Command.Clear(cardManager, ECTesterApplet.KEYPAIR_LOCAL).send()); - sent.add(new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_LOCAL).send()); + sent.add(new Command.Allocate(cardManager, CardConsts.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send()); + //sent.add(new Command.Clear(cardManager, CardConsts.KEYPAIR_LOCAL).send()); + sent.add(new Command.Generate(cardManager, CardConsts.KEYPAIR_LOCAL).send()); // Also support exporting set parameters, to verify they are set correctly. - Command curve = Command.prepareCurve(cardManager, cfg, ECTesterApplet.KEYPAIR_LOCAL, cfg.bits, keyClass); + Command curve = Command.prepareCurve(cardManager, cfg, CardConsts.KEYPAIR_LOCAL, cfg.bits, keyClass); if (curve != null) { sent.add(curve.send()); } @@ -408,10 +404,10 @@ public class ECTesterReader { // since its not necessary for ECDH, only ECDHC which not many cards implement // TODO: check if its assumend to be == 1? short domain = cfg.primeField ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; - Response.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); + Response.Export export = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); if (!export.successful()) { domain = (short) (domain ^ EC_Consts.PARAMETER_K); - export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); + export = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, domain).send(); } sent.add(export); @@ -442,9 +438,9 @@ public class ECTesterReader { */ private void generate() throws CardException, IOException { byte keyClass = cfg.primeField ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; - Command curve = Command.prepareCurve(cardManager, cfg, ECTesterApplet.KEYPAIR_LOCAL, cfg.bits, keyClass); + Command curve = Command.prepareCurve(cardManager, cfg, CardConsts.KEYPAIR_LOCAL, cfg.bits, keyClass); - Response allocate = new Command.Allocate(cardManager, ECTesterApplet.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send(); + Response allocate = new Command.Allocate(cardManager, CardConsts.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send(); respWriter.outputResponse(allocate); OutputStreamWriter keysFile = FileUtil.openFiles(cfg.outputs); @@ -458,7 +454,7 @@ public class ECTesterReader { respWriter.outputResponse(fresh); } - Command.Generate generate = new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_LOCAL); + Command.Generate generate = new Command.Generate(cardManager, CardConsts.KEYPAIR_LOCAL); long time = 0; if (cfg.time) { time = -Command.dryRunTime(cardManager, generate, 2, respWriter); @@ -467,7 +463,7 @@ public class ECTesterReader { time += response.getDuration(); respWriter.outputResponse(response); - Response.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_BOTH, EC_Consts.PARAMETERS_KEYPAIR).send(); + Response.Export export = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_BOTH, EC_Consts.PARAMETERS_KEYPAIR).send(); respWriter.outputResponse(export); if (!response.successful() || !export.successful()) { @@ -480,8 +476,8 @@ public class ECTesterReader { } } - String pub = ByteUtil.bytesToHex(export.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W), false); - String priv = ByteUtil.bytesToHex(export.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S), false); + String pub = ByteUtil.bytesToHex(export.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W), false); + String priv = ByteUtil.bytesToHex(export.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S), false); String line = String.format("%d;%d;%d;%s;%s\n", generated, Util.convertTime(time, cfg.timeUnit), Util.convertTime(export.getDuration(), cfg.timeUnit), pub, priv); keysFile.write(line); keysFile.flush(); @@ -574,10 +570,10 @@ public class ECTesterReader { */ private void ecdh() throws IOException, CardException { byte keyClass = cfg.primeField ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; - Command curve = Command.prepareCurve(cardManager, cfg, ECTesterApplet.KEYPAIR_BOTH, cfg.bits, keyClass); + Command curve = Command.prepareCurve(cardManager, cfg, CardConsts.KEYPAIR_BOTH, cfg.bits, keyClass); List<Response> prepare = new LinkedList<>(); prepare.add(new Command.AllocateKeyAgreement(cardManager, cfg.ECKAType).send()); // Prepare KeyAgreement or required type - prepare.add(new Command.Allocate(cardManager, ECTesterApplet.KEYPAIR_BOTH, cfg.keyBuilder, cfg.bits, keyClass).send()); + prepare.add(new Command.Allocate(cardManager, CardConsts.KEYPAIR_BOTH, cfg.keyBuilder, cfg.bits, keyClass).send()); if (curve != null) prepare.add(curve.send()); @@ -591,23 +587,23 @@ public class ECTesterReader { out.write(String.format("index;time[%s];pubW;privS;secret[%s]\n", cfg.timeUnit, CardUtil.getKexHashName(cfg.ECKAType))); } - Response gen = new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_BOTH).send(); + Response gen = new Command.Generate(cardManager, CardConsts.KEYPAIR_BOTH).send(); respWriter.outputResponse(gen); if (cfg.anyPublicKey || cfg.anyKey) { - Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W).send(); + Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, CardConsts.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W).send(); respWriter.outputResponse(prep); } if (cfg.anyPrivateKey || cfg.anyKey) { - Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S).send(); + Response prep = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S).send(); respWriter.outputResponse(prep); } - byte kp = ECTesterApplet.KEYPAIR_BOTH; + byte kp = CardConsts.KEYPAIR_BOTH; if (cfg.fixedPrivate || cfg.anyPrivateKey) { - kp ^= ECTesterApplet.KEYPAIR_LOCAL; + kp ^= CardConsts.KEYPAIR_LOCAL; } if (cfg.fixedPublic || cfg.anyPublicKey) { - kp ^= ECTesterApplet.KEYPAIR_REMOTE; + kp ^= CardConsts.KEYPAIR_REMOTE; } if (cfg.fixedKey || cfg.anyKey) { kp = 0; @@ -626,14 +622,14 @@ public class ECTesterReader { respWriter.outputResponse(regen); } - Response.Export exportRemote = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W).send(); + Response.Export exportRemote = new Command.Export(cardManager, CardConsts.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W).send(); respWriter.outputResponse(exportRemote); - Response.Export exportLocal = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S).send(); + Response.Export exportLocal = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S).send(); respWriter.outputResponse(exportLocal); - byte[] pubkey_bytes = exportRemote.getParameter(ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W); - byte[] privkey_bytes = exportLocal.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S); + byte[] pubkey_bytes = exportRemote.getParameter(CardConsts.KEYPAIR_REMOTE, EC_Consts.PARAMETER_W); + byte[] privkey_bytes = exportLocal.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S); - Command.ECDH perform = new Command.ECDH(cardManager, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, cfg.ECKAType); + Command.ECDH perform = new Command.ECDH(cardManager, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, cfg.ECKAType); long time = 0; if (cfg.time) { @@ -695,16 +691,16 @@ public class ECTesterReader { Command generate; if (cfg.anyKeypart) { - generate = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETERS_KEYPAIR); + generate = Command.prepareKey(cardManager, EC_Store.getInstance(), cfg, CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETERS_KEYPAIR); } else { - generate = new Command.Generate(cardManager, ECTesterApplet.KEYPAIR_LOCAL); + generate = new Command.Generate(cardManager, CardConsts.KEYPAIR_LOCAL); } byte keyClass = cfg.primeField ? KeyPair.ALG_EC_FP : KeyPair.ALG_EC_F2M; List<Response> prepare = new LinkedList<>(); prepare.add(new Command.AllocateSignature(cardManager, cfg.ECDSAType).send()); - prepare.add(new Command.Allocate(cardManager, ECTesterApplet.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send()); - Command curve = Command.prepareCurve(cardManager, cfg, ECTesterApplet.KEYPAIR_LOCAL, cfg.bits, keyClass); + prepare.add(new Command.Allocate(cardManager, CardConsts.KEYPAIR_LOCAL, cfg.keyBuilder, cfg.bits, keyClass).send()); + Command curve = Command.prepareCurve(cardManager, cfg, CardConsts.KEYPAIR_LOCAL, cfg.bits, keyClass); if (curve != null) prepare.add(curve.send()); @@ -717,7 +713,7 @@ public class ECTesterReader { out.write(String.format("index;signTime[%s];verifyTime[%s];data;pubW;privS;signature[%s];nonce;valid\n", cfg.timeUnit, cfg.timeUnit, CardUtil.getSigHashAlgo(cfg.ECDSAType))); } - Command.Export export = new Command.Export(cardManager, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_BOTH, EC_Consts.PARAMETERS_KEYPAIR); + Command.Export export = new Command.Export(cardManager, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_BOTH, EC_Consts.PARAMETERS_KEYPAIR); Response.Export exported = null; if (cfg.fixedKey) { respWriter.outputResponse(generate.send()); @@ -734,7 +730,7 @@ public class ECTesterReader { respWriter.outputResponse(exported); } - Command.ECDSA_sign sign = new Command.ECDSA_sign(cardManager, ECTesterApplet.KEYPAIR_LOCAL, cfg.ECDSAType, ECTesterApplet.EXPORT_TRUE, data); + Command.ECDSA_sign sign = new Command.ECDSA_sign(cardManager, CardConsts.KEYPAIR_LOCAL, cfg.ECDSAType, CardConsts.EXPORT_TRUE, data); long signTime = 0; if (cfg.time) { @@ -754,7 +750,7 @@ public class ECTesterReader { } } byte[] signature = signResp.getSignature(); - Command.ECDSA_verify verify = new Command.ECDSA_verify(cardManager, ECTesterApplet.KEYPAIR_LOCAL, cfg.ECDSAType, data, signature); + Command.ECDSA_verify verify = new Command.ECDSA_verify(cardManager, CardConsts.KEYPAIR_LOCAL, cfg.ECDSAType, data, signature); long verifyTime = 0; if (cfg.time) { verifyTime = -Command.dryRunTime(cardManager, verify, 2, respWriter); @@ -774,10 +770,10 @@ public class ECTesterReader { } if (out != null) { - String pub = ByteUtil.bytesToHex(exported.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W), false); - String priv = ByteUtil.bytesToHex(exported.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S), false); + String pub = ByteUtil.bytesToHex(exported.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W), false); + String priv = ByteUtil.bytesToHex(exported.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S), false); String dataString = (cfg.input != null) ? "" : ByteUtil.bytesToHex(data, false); - BigInteger privkey = new BigInteger(1, exported.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S)); + BigInteger privkey = new BigInteger(1, exported.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_S)); EC_Curve actualCurve = Command.findCurve(cfg, cfg.bits, keyClass); String k = ""; if (actualCurve != null) { @@ -858,9 +854,9 @@ public class ECTesterReader { public int testTo; public int generateAmount; public int ECKACount; - public byte ECKAType = KeyAgreement_ALG_EC_SVDP_DH; + public byte ECKAType = EC_Consts.KeyAgreement_ALG_EC_SVDP_DH; public int ECDSACount; - public byte ECDSAType = Signature_ALG_ECDSA_SHA; + public byte ECDSAType = EC_Consts.Signature_ALG_ECDSA_SHA; public Set<String> testOptions; /** @@ -895,7 +891,7 @@ public class ECTesterReader { fixedKey = cli.hasOption("fixed"); fixedPrivate = cli.hasOption("fixed-private"); fixedPublic = cli.hasOption("fixed-public"); - keyBuilder = cli.hasOption("key-builder") ? ECTesterApplet.BUILD_KEYBUILDER : ECTesterApplet.BUILD_KEYPAIR; + keyBuilder = cli.hasOption("key-builder") ? CardConsts.BUILD_KEYBUILDER : CardConsts.BUILD_KEYPAIR; if (cli.hasOption("log")) { log = cli.getOptionValue("log", String.format("ECTESTER_log_%d.log", System.currentTimeMillis() / 1000)); diff --git a/src/cz/crcs/ectester/reader/ISO7816_status_words.txt b/reader/src/main/java/cz/crcs/ectester/reader/ISO7816_status_words.txt index bf5af2b..bf5af2b 100644 --- a/src/cz/crcs/ectester/reader/ISO7816_status_words.txt +++ b/reader/src/main/java/cz/crcs/ectester/reader/ISO7816_status_words.txt diff --git a/src/cz/crcs/ectester/reader/command/Command.java b/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java index 61e3900..051d377 100644 --- a/src/cz/crcs/ectester/reader/command/Command.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/command/Command.java @@ -1,12 +1,12 @@ package cz.crcs.ectester.reader.command; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Params; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.util.ByteUtil; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.common.util.ECUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -173,14 +173,14 @@ public abstract class Command implements Cloneable { public static long dryRunTime(CardMngr cardManager, Command cmd, int num, ResponseWriter respWriter) throws CardException { long time = 0; - respWriter.outputResponse(new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_DRY_RUN).send()); + respWriter.outputResponse(new Command.SetDryRunMode(cardManager, CardConsts.MODE_DRY_RUN).send()); for (int i = 0; i < num; ++i) { Response dry = cmd.send(); respWriter.outputResponse(dry); time += dry.getDuration(); } time /= num; - respWriter.outputResponse(new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_NORMAL).send()); + respWriter.outputResponse(new Command.SetDryRunMode(cardManager, CardConsts.MODE_NORMAL).send()); return time; } @@ -200,7 +200,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.kaType = kaType; byte[] data = new byte[]{kaType}; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ALLOCATE_KA, 0x00, 0x00, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ALLOCATE_KA, 0x00, 0x00, data); } @Override @@ -233,7 +233,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.sigType = sigType; byte[] data = new byte[]{sigType}; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ALLOCATE_SIG, 0x00, 0x00, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ALLOCATE_SIG, 0x00, 0x00, data); } @Override @@ -277,11 +277,11 @@ public abstract class Command implements Cloneable { byte[] data = new byte[]{0, 0, keyClass}; ByteUtil.setShort(data, 0, keyLength); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ALLOCATE, keyPair, build, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ALLOCATE, keyPair, build, data); } public Allocate(CardMngr cardManager, byte keyPair, short keyLength, byte keyClass) { - this(cardManager, keyPair, (byte) (ECTesterApplet.BUILD_KEYPAIR | ECTesterApplet.BUILD_KEYBUILDER), keyLength, keyClass); + this(cardManager, keyPair, (byte) (CardConsts.BUILD_KEYPAIR | CardConsts.BUILD_KEYBUILDER), keyLength, keyClass); } @Override @@ -296,10 +296,10 @@ public abstract class Command implements Cloneable { public String getDescription() { String field = keyClass == KeyPair.ALG_EC_FP ? "ALG_EC_FP" : "ALG_EC_F2M"; String key; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { key = "both keypairs"; } else { - key = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + key = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Allocate %s %db %s", key, keyLength, field); } @@ -319,7 +319,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.keyPair = keyPair; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEAR, keyPair, 0x00, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_CLEAR, keyPair, 0x00, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -333,10 +333,10 @@ public abstract class Command implements Cloneable { @Override public String getDescription() { String key; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { key = "both keypairs"; } else { - key = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + key = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Clear %s", key); } @@ -374,7 +374,7 @@ public abstract class Command implements Cloneable { System.arraycopy(external, 0, data, 2, external.length); } - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET, keyPair, curve, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_SET, keyPair, curve, data); } @Override @@ -391,10 +391,10 @@ public abstract class Command implements Cloneable { String what = CardUtil.getParameterString(params); String pair; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { pair = "both keypairs"; } else { - pair = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + pair = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Set %s %s parameters on %s", name, what, pair); } @@ -427,7 +427,7 @@ public abstract class Command implements Cloneable { ByteUtil.setShort(data, 0, params); ByteUtil.setShort(data, 2, transformation); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_TRANSFORM, keyPair, key, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_TRANSFORM, keyPair, key, data); } @Override @@ -444,10 +444,10 @@ public abstract class Command implements Cloneable { String transform = CardUtil.getTransformation(transformation); String pair; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { pair = "both keypairs"; } else { - pair = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + pair = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Transform params %s of %s, %s", stringParams, pair, transform); } @@ -469,7 +469,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.keyPair = keyPair; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GENERATE, keyPair, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_GENERATE, keyPair, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -483,10 +483,10 @@ public abstract class Command implements Cloneable { @Override public String getDescription() { String key; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { key = "both keypairs"; } else { - key = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + key = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Generate %s", key); } @@ -517,7 +517,7 @@ public abstract class Command implements Cloneable { byte[] data = new byte[2]; ByteUtil.setShort(data, 0, params); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_EXPORT, keyPair, key, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_EXPORT, keyPair, key, data); } @Override @@ -539,10 +539,10 @@ public abstract class Command implements Cloneable { source = ((key == EC_Consts.KEY_PUBLIC) ? "public" : "private") + " key"; } String pair; - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { pair = "both keypairs"; } else { - pair = ((keyPair == ECTesterApplet.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; + pair = ((keyPair == CardConsts.KEYPAIR_LOCAL) ? "local" : "remote") + " keypair"; } return String.format("Export %s params from %s of %s", what, source, pair); } @@ -579,7 +579,7 @@ public abstract class Command implements Cloneable { byte[] data = new byte[]{export, 0, 0, type}; ByteUtil.setShort(data, 1, transformation); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ECDH, pubkey, privkey, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ECDH, pubkey, privkey, data); } @Override @@ -594,8 +594,8 @@ public abstract class Command implements Cloneable { public String getDescription() { String algo = CardUtil.getKATypeString(type); - String pub = pubkey == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; - String priv = privkey == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; + String pub = pubkey == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; + String priv = privkey == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; String validity; if (transformation == EC_Consts.TRANSFORMATION_NONE) { @@ -640,7 +640,7 @@ public abstract class Command implements Cloneable { data[2] = type; System.arraycopy(pubkey, 0, data, 3, pubkey.length); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ECDH_DIRECT, privkey, export, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ECDH_DIRECT, privkey, export, data); } @Override @@ -648,14 +648,14 @@ public abstract class Command implements Cloneable { long elapsed = -System.nanoTime(); ResponseAPDU response = cardManager.send(cmd); elapsed += System.nanoTime(); - return new Response.ECDH(response, getDescription(), elapsed, ECTesterApplet.KEYPAIR_REMOTE, privkey, export, transformation, type); + return new Response.ECDH(response, getDescription(), elapsed, CardConsts.KEYPAIR_REMOTE, privkey, export, transformation, type); } @Override public String getDescription() { String algo = CardUtil.getKATypeString(type); - String priv = privkey == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; + String priv = privkey == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; String validity; if (transformation == EC_Consts.TRANSFORMATION_NONE) { @@ -684,7 +684,7 @@ public abstract class Command implements Cloneable { */ public ECDSA(CardMngr cardManager, byte keyPair, byte sigType, byte export, byte[] raw) { super(cardManager); - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { throw new IllegalArgumentException(); } @@ -701,7 +701,7 @@ public abstract class Command implements Cloneable { System.arraycopy(raw, 0, data, 3, len); } - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ECDSA, keyPair, export, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ECDSA, keyPair, export, data); } @Override @@ -715,7 +715,7 @@ public abstract class Command implements Cloneable { @Override public String getDescription() { String algo = CardUtil.getSigTypeString(sigType); - String key = keyPair == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; + String key = keyPair == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; String data = raw == null ? "random" : "provided"; return String.format("%s with %s keypair(%s data)", algo, key, data); } @@ -738,7 +738,7 @@ public abstract class Command implements Cloneable { */ public ECDSA_sign(CardMngr cardManager, byte keyPair, byte sigType, byte export, byte[] raw) { super(cardManager); - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { throw new IllegalArgumentException(); } @@ -755,7 +755,7 @@ public abstract class Command implements Cloneable { System.arraycopy(raw, 0, data, 3, len); } - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ECDSA_SIGN, keyPair, export, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ECDSA_SIGN, keyPair, export, data); } @Override @@ -769,7 +769,7 @@ public abstract class Command implements Cloneable { @Override public String getDescription() { String algo = CardUtil.getSigTypeString(sigType); - String key = keyPair == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; + String key = keyPair == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; String data = raw == null ? "random" : "provided"; return String.format("%s signature with %s keypair(%s data)", algo, key, data); } @@ -792,7 +792,7 @@ public abstract class Command implements Cloneable { */ public ECDSA_verify(CardMngr cardManager, byte keyPair, byte sigType, byte[] raw, byte[] signature) { super(cardManager); - if (keyPair == ECTesterApplet.KEYPAIR_BOTH) { + if (keyPair == CardConsts.KEYPAIR_BOTH) { throw new IllegalArgumentException(); } if (raw == null || signature == null) { @@ -810,7 +810,7 @@ public abstract class Command implements Cloneable { ByteUtil.setShort(data, 2 + raw.length, (short) signature.length); System.arraycopy(signature, 0, data, 2 + raw.length + 2, signature.length); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_ECDSA_VERIFY, keyPair, sigType, data); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_ECDSA_VERIFY, keyPair, sigType, data); } @Override @@ -818,13 +818,13 @@ public abstract class Command implements Cloneable { long elapsed = -System.nanoTime(); ResponseAPDU response = cardManager.send(cmd); elapsed += System.nanoTime(); - return new Response.ECDSA(response, getDescription(), elapsed, keyPair, sigType, ECTesterApplet.EXPORT_FALSE, raw); + return new Response.ECDSA(response, getDescription(), elapsed, keyPair, sigType, CardConsts.EXPORT_FALSE, raw); } @Override public String getDescription() { String algo = CardUtil.getSigTypeString(sigType); - String key = keyPair == ECTesterApplet.KEYPAIR_LOCAL ? "local" : "remote"; + String key = keyPair == CardConsts.KEYPAIR_LOCAL ? "local" : "remote"; String data = raw == null ? "random" : "provided"; return String.format("%s verification with %s keypair(%s data)", algo, key, data); } @@ -841,7 +841,7 @@ public abstract class Command implements Cloneable { public Cleanup(CardMngr cardManager) { super(cardManager); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEANUP, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_CLEANUP, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -869,7 +869,7 @@ public abstract class Command implements Cloneable { public GetInfo(CardMngr cardManager) { super(cardManager); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GET_INFO, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_GET_INFO, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -900,7 +900,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.dryRunMode = dryRunMode; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET_DRY_RUN_MODE, dryRunMode, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); + this.cmd = new CommandAPDU(CardConsts.CLA_ECTESTERAPPLET, CardConsts.INS_SET_DRY_RUN_MODE, dryRunMode, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -913,7 +913,7 @@ public abstract class Command implements Cloneable { @Override public String getDescription() { - return (dryRunMode == ECTesterApplet.MODE_NORMAL ? "Disable" : "Enable") + " dry run mode"; + return (dryRunMode == CardConsts.MODE_NORMAL ? "Disable" : "Enable") + " dry run mode"; } } } diff --git a/src/cz/crcs/ectester/reader/output/FileTestWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java index 69e5f41..69e5f41 100644 --- a/src/cz/crcs/ectester/reader/output/FileTestWriter.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/output/FileTestWriter.java diff --git a/src/cz/crcs/ectester/reader/output/ResponseWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/ResponseWriter.java index 85bf79a..85bf79a 100644 --- a/src/cz/crcs/ectester/reader/output/ResponseWriter.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/output/ResponseWriter.java diff --git a/src/cz/crcs/ectester/reader/output/TextTestWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/TextTestWriter.java index 2775647..532ace5 100644 --- a/src/cz/crcs/ectester/reader/output/TextTestWriter.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/output/TextTestWriter.java @@ -1,11 +1,11 @@ package cz.crcs.ectester.reader.output; -import cz.crcs.ectester.applet.ECTesterApplet; import cz.crcs.ectester.common.cli.Colors; import cz.crcs.ectester.common.output.BaseTextTestWriter; import cz.crcs.ectester.common.test.TestSuite; import cz.crcs.ectester.common.test.Testable; import cz.crcs.ectester.common.util.ByteUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; import cz.crcs.ectester.reader.command.Command; @@ -48,7 +48,7 @@ public class TextTestWriter extends BaseTextTestWriter { try { sb.append("═══ ").append(Colors.underline("ECTester version:")).append(" ").append(ECTesterReader.VERSION).append(ECTesterReader.GIT_COMMIT).append(System.lineSeparator()); Response.GetInfo info = new Command.GetInfo(cardSuite.getCard()).send(); - sb.append("═══ ").append(Colors.underline("ECTester applet version:")).append(" ").append(info.getVersion()).append(info.getBase() == ECTesterApplet.BASE_221 ? "" : " (extended length)").append(System.lineSeparator()); + sb.append("═══ ").append(Colors.underline("ECTester applet version:")).append(" ").append(info.getVersion()).append(info.getBase() == CardConsts.BASE_221 ? "" : " (extended length)").append(System.lineSeparator()); sb.append("═══ ").append(Colors.underline("Card ATR:")).append(" ").append(ByteUtil.bytesToHex(cardSuite.getCard().getATR().getBytes(), false)).append(System.lineSeparator()); sb.append("═══ ").append(Colors.underline("JavaCard version:")).append(" ").append(info.getJavaCardVersion()).append(System.lineSeparator()); sb.append("═══ ").append(Colors.underline("Array sizes (apduBuf, ram, ram2, apduArr):")).append(" ").append(String.format("%d %d %d %d", info.getApduBufferLength(), info.getRamArrayLength(), info.getRamArray2Length(), info.getApduArrayLength())).append(System.lineSeparator()); diff --git a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/XMLTestWriter.java index fc41805..fc41805 100644 --- a/src/cz/crcs/ectester/reader/output/XMLTestWriter.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/output/XMLTestWriter.java diff --git a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java b/reader/src/main/java/cz/crcs/ectester/reader/output/YAMLTestWriter.java index 56ecb71..56ecb71 100644 --- a/src/cz/crcs/ectester/reader/output/YAMLTestWriter.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/output/YAMLTestWriter.java diff --git a/src/cz/crcs/ectester/reader/response/Response.java b/reader/src/main/java/cz/crcs/ectester/reader/response/Response.java index f36d087..8db255e 100644 --- a/src/cz/crcs/ectester/reader/response/Response.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/response/Response.java @@ -1,8 +1,8 @@ package cz.crcs.ectester.reader.response; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.util.ByteUtil; +import cz.crcs.ectester.common.util.CardConsts; import javacard.framework.ISO7816; import javax.smartcardio.ResponseAPDU; @@ -179,8 +179,8 @@ public abstract class Response { this.keyClass = keyClass; int pairs = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) pairs++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) pairs++; parse(pairs, 0); } } @@ -196,8 +196,8 @@ public abstract class Response { this.keyPair = keyPair; int pairs = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) pairs++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) pairs++; parse(pairs, 0); } } @@ -217,8 +217,8 @@ public abstract class Response { this.parameters = parameters; int pairs = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) pairs++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) pairs++; parse(pairs, 0); } @@ -241,8 +241,8 @@ public abstract class Response { this.transformation = transformation; int pairs = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) pairs++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) pairs++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) pairs++; parse(pairs, 0); } @@ -259,8 +259,8 @@ public abstract class Response { this.keyPair = keyPair; int generated = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) generated++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) generated++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) generated++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) generated++; parse(generated, 0); } } @@ -280,8 +280,8 @@ public abstract class Response { this.parameters = parameters; int exported = 0; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) exported++; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) exported++; + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) exported++; + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) exported++; int keys = 0; if ((key & EC_Consts.KEY_PUBLIC) != 0) keys++; if ((key & EC_Consts.KEY_PRIVATE) != 0) keys++; @@ -301,9 +301,9 @@ public abstract class Response { } private int getIndex(byte keyPair, short param) { - byte pair = ECTesterApplet.KEYPAIR_LOCAL; + byte pair = CardConsts.KEYPAIR_LOCAL; int index = 0; - while (pair <= ECTesterApplet.KEYPAIR_REMOTE) { + while (pair <= CardConsts.KEYPAIR_REMOTE) { short mask = EC_Consts.PARAMETER_FP; while (mask <= EC_Consts.PARAMETER_S) { if (pair == keyPair && param == mask) { @@ -374,7 +374,7 @@ public abstract class Response { this.transformation = transformation; this.type = type; - parse(1, (export == ECTesterApplet.EXPORT_TRUE) ? 1 : 0); + parse(1, (export == CardConsts.EXPORT_TRUE) ? 1 : 0); } public short getTransformation() { @@ -414,7 +414,7 @@ public abstract class Response { this.export = export; this.raw = raw; - parse(1, (export == ECTesterApplet.EXPORT_TRUE) ? 1 : 0); + parse(1, (export == CardConsts.EXPORT_TRUE) ? 1 : 0); } public boolean hasSignature() { diff --git a/src/cz/crcs/ectester/reader/test/CardCofactorSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCofactorSuite.java index d1eb2b1..01e9d02 100644 --- a/src/cz/crcs/ectester/reader/test/CardCofactorSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCofactorSuite.java @@ -1,14 +1,14 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.util.CardUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -37,18 +37,18 @@ public class CardCofactorSuite extends CardTestSuite { EC_Curve curve = e.getKey(); List<EC_Key.Public> keys = e.getValue(); - Test allocate = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS); - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS); - Test generate = setupKeypairs(curve, ExpectedValue.SUCCESS, ECTesterApplet.KEYPAIR_LOCAL); + Test allocate = CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS); + Test generate = setupKeypairs(curve, ExpectedValue.SUCCESS, CardConsts.KEYPAIR_LOCAL); Test prepare = CompoundTest.all(ExpectedValue.SUCCESS, "Prepare and generate keypair on " + curve.getId() + ".", allocate, set, generate); List<Test> ecdhTests = new LinkedList<>(); for (EC_Key.Public pub : keys) { - Test setPub = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE); + Test setPub = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE); Test objectEcdh = CompoundTest.any(Result.ExpectedValue.SUCCESS, CardUtil.getKATypeString(EC_Consts.KeyAgreement_ALG_EC_SVDP_DH) + " test with cofactor pubkey.", setPub, ecdh); - Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); + Command ecdhCommand = new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); Test rawEcdh = CommandTest.expect(ecdhCommand, ExpectedValue.FAILURE, "Card correctly rejected point on non-generator subgroup.", "Card incorrectly accepted point on non-generator subgroup."); ecdhTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, pub.getId() + " cofactor key test.", objectEcdh, rawEcdh)); } diff --git a/src/cz/crcs/ectester/reader/test/CardCompositeSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCompositeSuite.java index babe732..a28c2a7 100644 --- a/src/cz/crcs/ectester/reader/test/CardCompositeSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCompositeSuite.java @@ -1,13 +1,13 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.util.CardUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -36,13 +36,13 @@ public class CardCompositeSuite extends CardTestSuite { for (Map.Entry<EC_Curve, List<EC_Key>> curveKeys : mappedKeys.entrySet()) { EC_Curve curve = curveKeys.getKey(); List<Test> tests = new LinkedList<>(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(ExpectedValue.SUCCESS, "No support for " + curve.getBits() + "b " + CardUtil.getKeyTypeString(curve.getField()) + ".", allocate)); continue; } tests.add(allocate); - tests.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.ANY)); + tests.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.ANY)); String name; if (cfg.testOptions.contains("preset")) { @@ -50,9 +50,9 @@ public class CardCompositeSuite extends CardTestSuite { } else { name = "generated private key"; } - tests.add(setupKeypairs(curve, ExpectedValue.ANY, ECTesterApplet.KEYPAIR_LOCAL)); + tests.add(setupKeypairs(curve, ExpectedValue.ANY, CardConsts.KEYPAIR_LOCAL)); for (EC_Key key : curveKeys.getValue()) { - Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, key.flatten()); + Command ecdhCommand = new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, key.flatten()); Test ecdh = CommandTest.expect(ecdhCommand, ExpectedValue.FAILURE, "Card correctly rejected to do ECDH over a composite order curve.", "Card incorrectly does ECDH over a composite order curve, leaks bits of private key."); tests.add(CompoundTest.greedyAllTry(ExpectedValue.SUCCESS, "Composite test of " + curve.getId() + ", with " + name + ", " + key.getDesc(), ecdh)); } @@ -95,11 +95,11 @@ public class CardCompositeSuite extends CardTestSuite { private void testGroup(List<EC_Curve> curves, String testName, ExpectedValue dhValue, String ok, String nok) throws Exception { for (EC_Curve curve : curves) { - Test allocate = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS); - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.ANY); - Test generate = setupKeypairs(curve, ExpectedValue.ANY, ECTesterApplet.KEYPAIR_BOTH); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), dhValue, ok, nok); - Test ecdsa = CommandTest.expect(new Command.ECDSA_sign(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, ECTesterApplet.EXPORT_FALSE, null), dhValue, ok, nok); + Test allocate = CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.ANY); + Test generate = setupKeypairs(curve, ExpectedValue.ANY, CardConsts.KEYPAIR_BOTH); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), dhValue, ok, nok); + Test ecdsa = CommandTest.expect(new Command.ECDSA_sign(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, CardConsts.EXPORT_FALSE, null), dhValue, ok, nok); String description; if (testName == null) { diff --git a/src/cz/crcs/ectester/reader/test/CardCompressionSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCompressionSuite.java index 9eed814..ab1f46a 100644 --- a/src/cz/crcs/ectester/reader/test/CardCompressionSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardCompressionSuite.java @@ -1,9 +1,8 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; @@ -11,6 +10,7 @@ import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.util.ByteUtil; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.common.util.ECUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -71,7 +71,7 @@ public class CardCompressionSuite extends CardTestSuite { String spec = keyLength + "b " + CardUtil.getKeyTypeString(field); byte curveId = EC_Consts.getCurve(keyLength, field); - Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, keyLength, field), Result.ExpectedValue.SUCCESS)); + Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, keyLength, field), Result.ExpectedValue.SUCCESS)); if (!allocateFirst.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for compression test on " + spec + ".", allocateFirst)); continue; @@ -79,13 +79,13 @@ public class CardCompressionSuite extends CardTestSuite { List<Test> compressionTests = new LinkedList<>(); compressionTests.add(allocateFirst); - Test setCustom = runTest(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, curveId, domain, null), Result.ExpectedValue.SUCCESS)); - Test genCustom = runTest(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_BOTH), Result.ExpectedValue.SUCCESS)); + Test setCustom = runTest(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, curveId, domain, null), Result.ExpectedValue.SUCCESS)); + Test genCustom = runTest(CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_BOTH), Result.ExpectedValue.SUCCESS)); compressionTests.add(setCustom); compressionTests.add(genCustom); - Response.Export key = new Command.Export(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W).send(); - byte[] pubkey = key.getParameter(ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC); + Response.Export key = new Command.Export(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W).send(); + byte[] pubkey = key.getParameter(CardConsts.KEYPAIR_REMOTE, EC_Consts.KEY_PUBLIC); EC_Curve secgCurve = EC_Store.getInstance().getObject(EC_Curve.class, "secg", CardUtil.getCurveName(curveId)); ECPoint pub; try { @@ -100,23 +100,23 @@ public class CardCompressionSuite extends CardTestSuite { List<Test> thisTests = new LinkedList<>(); Test allocate = runTest(CommandTest.expect(new Command.AllocateKeyAgreement(this.card, kaType), Result.ExpectedValue.SUCCESS)); if (allocate.ok()) { - Test ka = runTest(CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType), Result.ExpectedValue.SUCCESS)); + Test ka = runTest(CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType), Result.ExpectedValue.SUCCESS)); thisTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, "KeyAgreement setup and basic test.", allocate, ka)); if (ka.ok()) { // tests of the good stuff - Test kaCompressed = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS, kaType), Result.ExpectedValue.SUCCESS); - Test kaHybrid = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS_HYBRID, kaType), Result.ExpectedValue.SUCCESS); + Test kaCompressed = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS, kaType), Result.ExpectedValue.SUCCESS); + Test kaHybrid = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS_HYBRID, kaType), Result.ExpectedValue.SUCCESS); thisTests.add(CompoundTest.any(Result.ExpectedValue.SUCCESS, "Tests of compressed and hybrid form.", kaCompressed, kaHybrid)); // tests the bad stuff here byte[] pubHybrid = ECUtil.toX962Hybrid(pub, keyLength); pubHybrid[pubHybrid.length - 1] ^= 1; byte[] pubHybridEncoded = ByteUtil.prependLength(pubHybrid); - Test kaBadHybrid = CommandTest.expect(new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType, pubHybridEncoded), Result.ExpectedValue.FAILURE); + Test kaBadHybrid = CommandTest.expect(new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType, pubHybridEncoded), Result.ExpectedValue.FAILURE); byte[] pubInfinityEncoded = {0x01, 0x00}; - Test kaBadInfinity = CommandTest.expect(new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType, pubInfinityEncoded), Result.ExpectedValue.FAILURE); + Test kaBadInfinity = CommandTest.expect(new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType, pubInfinityEncoded), Result.ExpectedValue.FAILURE); thisTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, "Tests of corrupted hybrid form and infinity.", kaBadHybrid, kaBadInfinity)); } kaTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, "KeyAgreement tests of " + CardUtil.getKATypeString(kaType) + ".", thisTests.toArray(new Test[0]))); @@ -138,17 +138,17 @@ public class CardCompressionSuite extends CardTestSuite { for (EC_Key.Public key : compressionKeys) { EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, key.getCurve()); List<Test> tests = new LinkedList<>(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for non-residue test on " + curve.getBits() + "b " + curve.getId() + ".", allocate)); continue; } tests.add(allocate); - tests.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS)); - tests.add(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS)); + tests.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS)); + tests.add(CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS)); byte[] pointData = ECUtil.toX962Compressed(key.getParam(EC_Consts.PARAMETER_W)); byte[] pointDataEncoded = ByteUtil.prependLength(pointData); - tests.add(CommandTest.expect(new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pointDataEncoded), Result.ExpectedValue.FAILURE)); + tests.add(CommandTest.expect(new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pointDataEncoded), Result.ExpectedValue.FAILURE)); doTest(CompoundTest.greedyAll(Result.ExpectedValue.SUCCESS, "Non-residue test of " + curve.getId() + ".", tests.toArray(new Test[0]))); } } diff --git a/src/cz/crcs/ectester/reader/test/CardDefaultSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardDefaultSuite.java index 8814c37..df46767 100644 --- a/src/cz/crcs/ectester/reader/test/CardDefaultSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardDefaultSuite.java @@ -1,11 +1,11 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -47,17 +47,17 @@ public class CardDefaultSuite extends CardTestSuite { for (short keyLength : keySizes) { List<Test> supportTests = new LinkedList<>(); - Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, keyLength, field), ExpectedValue.SUCCESS)); + Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, keyLength, field), ExpectedValue.SUCCESS)); if (!allocateFirst.ok()) { doTest(CompoundTest.all(ExpectedValue.SUCCESS, "No support for " + keyLength + "b " + CardUtil.getKeyTypeString(field) + ".", allocateFirst)); continue; } supportTests.add(allocateFirst); - Test genDefault = runTest(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); - Test allocateSecond = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, keyLength, field), ExpectedValue.SUCCESS)); - Test setCustom = runTest(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.getCurve(keyLength, field), domain, null), ExpectedValue.SUCCESS)); - Test genCustom = runTest(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); + Test genDefault = runTest(CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); + Test allocateSecond = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, keyLength, field), ExpectedValue.SUCCESS)); + Test setCustom = runTest(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.getCurve(keyLength, field), domain, null), ExpectedValue.SUCCESS)); + Test genCustom = runTest(CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); supportTests.add(genDefault); supportTests.add(allocateSecond); supportTests.add(setCustom); @@ -67,9 +67,9 @@ public class CardDefaultSuite extends CardTestSuite { for (byte kaType : EC_Consts.KA_TYPES) { Test allocate = runTest(CommandTest.expect(new Command.AllocateKeyAgreement(this.card, kaType), ExpectedValue.SUCCESS)); if (allocate.ok()) { - Command ecdh = new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType); + Command ecdh = new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType); Test ka = runTest(CommandTest.expect(ecdh, ExpectedValue.SUCCESS)); - Test kaCompressed = runTest(CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS, kaType), ExpectedValue.SUCCESS)); + Test kaCompressed = runTest(CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_COMPRESS, kaType), ExpectedValue.SUCCESS)); String kaDesc = "Test of the " + CardUtil.getKATypeString(kaType) + " KeyAgreement."; Function<Test[], Result> kaCallback = (tests) -> { @@ -101,7 +101,7 @@ public class CardDefaultSuite extends CardTestSuite { for (byte sigType : EC_Consts.SIG_TYPES) { Test allocate = runTest(CommandTest.expect(new Command.AllocateSignature(this.card, sigType), ExpectedValue.SUCCESS)); if (allocate.ok()) { - Command ecdsa = new Command.ECDSA(this.card, ECTesterApplet.KEYPAIR_LOCAL, sigType, ECTesterApplet.EXPORT_FALSE, null); + Command ecdsa = new Command.ECDSA(this.card, CardConsts.KEYPAIR_LOCAL, sigType, CardConsts.EXPORT_FALSE, null); Test expect = runTest(CommandTest.expect(ecdsa, ExpectedValue.SUCCESS)); String signDesc = "Test of the " + CardUtil.getSigTypeString(sigType) + " signature."; @@ -112,10 +112,10 @@ public class CardDefaultSuite extends CardTestSuite { Test compound; if (expect.ok()) { - Command ecdsaSign = new Command.ECDSA_sign(this.card, ECTesterApplet.KEYPAIR_LOCAL, sigType, ECTesterApplet.EXPORT_TRUE, sigData); + Command ecdsaSign = new Command.ECDSA_sign(this.card, CardConsts.KEYPAIR_LOCAL, sigType, CardConsts.EXPORT_TRUE, sigData); PerformanceTest signTest = runTest(PerformanceTest.repeat(this.card, "Sign", ecdsaSign, 10)); byte[] signature = signTest.getResponses()[0].getParam(0); - Command ecdsaVerify = new Command.ECDSA_verify(this.card, ECTesterApplet.KEYPAIR_LOCAL, sigType, sigData, signature); + Command ecdsaVerify = new Command.ECDSA_verify(this.card, CardConsts.KEYPAIR_LOCAL, sigType, sigData, signature); PerformanceTest verifyTest = runTest(PerformanceTest.repeat(this.card, "Verify", ecdsaVerify, 10)); compound = runTest(CompoundTest.all(ExpectedValue.SUCCESS, signDesc, allocate, expect, signTest, verifyTest)); } else { diff --git a/src/cz/crcs/ectester/reader/test/CardDegenerateSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardDegenerateSuite.java index f2e73b6..e2c07da 100644 --- a/src/cz/crcs/ectester/reader/test/CardDegenerateSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardDegenerateSuite.java @@ -1,13 +1,13 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; @@ -36,22 +36,22 @@ public class CardDegenerateSuite extends CardTestSuite { EC_Curve curve = e.getKey(); List<EC_Key.Public> keys = e.getValue(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for " + curve.getId() + ".", allocate)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); Test prepare = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Prepare and generate keypair on " + curve.getId() + ".", allocate, set, generate); List<Test> ecdhTests = new LinkedList<>(); for (EC_Key.Public pub : keys) { - Test setPub = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE, "Card correctly rejected point on degenerate curve.", "Card incorrectly accepted point on degenerate curve."); + Test setPub = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE, "Card correctly rejected point on degenerate curve.", "Card incorrectly accepted point on degenerate curve."); Test objectEcdh = CompoundTest.any(Result.ExpectedValue.SUCCESS, CardUtil.getKATypeString(EC_Consts.KeyAgreement_ALG_EC_SVDP_DH) + " test with degenerate pubkey.", setPub, ecdh); - Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); + Command ecdhCommand = new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); Test rawEcdh = CommandTest.expect(ecdhCommand, Result.ExpectedValue.FAILURE, "Card correctly rejected point on degenerate curve.", "Card incorrectly accepted point on degenerate curve."); ecdhTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, pub.getId() + " degenerate key test.", objectEcdh, rawEcdh)); //TODO: actually get the result of ECDH here, as well as export privkey and compare to exponentiation in Fp^*. diff --git a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java index 9257b3d..98a59bc 100644 --- a/src/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardEdgeCasesSuite.java @@ -1,17 +1,13 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; -import cz.crcs.ectester.common.ec.EC_Curve; -import cz.crcs.ectester.common.ec.EC_KAResult; -import cz.crcs.ectester.common.ec.EC_Key; -import cz.crcs.ectester.common.ec.EC_Params; +import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.test.TestCallback; import cz.crcs.ectester.common.util.ByteUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.ECUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; @@ -61,8 +57,8 @@ public class CardEdgeCasesSuite extends CardTestSuite { EC_Curve curve = c.getKey(); List<Test> curveTests = new LinkedList<>(); - Test allocate = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS); - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test allocate = CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); Test prepareCurve = CompoundTest.greedyAll(Result.ExpectedValue.SUCCESS, "Prepare curve", allocate, set); List<EC_KAResult> values = c.getValue(); @@ -74,10 +70,10 @@ public class CardEdgeCasesSuite extends CardTestSuite { EC_Key.Private privkey = EC_Store.getInstance().getObject(EC_Key.Private.class, privkeyId); EC_Key.Public pubkey = EC_Store.getInstance().getObject(EC_Key.Public.class, pubkeyId); - Test setPrivkey = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, privkey.getParams(), privkey.flatten()), Result.ExpectedValue.SUCCESS); - Test setPubkey = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pubkey.getParams(), pubkey.flatten()), Result.ExpectedValue.SUCCESS); - Test ecdhPreTest = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.SUCCESS); - Test ecdh = CommandTest.function(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, value.getJavaCardKA()), new TestCallback<CommandTestable>() { + Test setPrivkey = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, privkey.getParams(), privkey.flatten()), Result.ExpectedValue.SUCCESS); + Test setPubkey = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pubkey.getParams(), pubkey.flatten()), Result.ExpectedValue.SUCCESS); + Test ecdhPreTest = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.SUCCESS); + Test ecdh = CommandTest.function(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, value.getJavaCardKA()), new TestCallback<CommandTestable>() { @Override public Result apply(CommandTestable testable) { Response.ECDH dh = (Response.ECDH) testable.getResponse(); @@ -120,11 +116,11 @@ public class CardEdgeCasesSuite extends CardTestSuite { EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, openssl_bug.getCurve()); EC_Key.Private skey = EC_Store.getInstance().getObject(EC_Key.Private.class, openssl_bug.getOtherKey()); EC_Key.Public pkey = EC_Store.getInstance().getObject(EC_Key.Public.class, openssl_bug.getOneKey()); - Test key = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS); - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test setPrivate = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, skey.flatten(EC_Consts.PARAMETER_S)), Result.ExpectedValue.SUCCESS); - Test setPublic = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_W, pkey.flatten(EC_Consts.PARAMETER_W)), Result.ExpectedValue.SUCCESS); - Test ecdh = CommandTest.function(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, openssl_bug.getJavaCardKA()), new TestCallback<CommandTestable>() { + Test key = CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test setPrivate = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, skey.flatten(EC_Consts.PARAMETER_S)), Result.ExpectedValue.SUCCESS); + Test setPublic = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_W, pkey.flatten(EC_Consts.PARAMETER_W)), Result.ExpectedValue.SUCCESS); + Test ecdh = CommandTest.function(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, openssl_bug.getJavaCardKA()), new TestCallback<CommandTestable>() { @Override public Result apply(CommandTestable testable) { Response.ECDH dh = (Response.ECDH) testable.getResponse(); @@ -148,20 +144,20 @@ public class CardEdgeCasesSuite extends CardTestSuite { curves.add(EC_Store.getInstance().getObject(EC_Curve.class, "cofactor/cofactor160p4")); Random rand = new Random(); for (EC_Curve curve : curves) { - Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS)); + Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS)); if (!key.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.FAILURE, "No support for " + curve.getBits() + "b " + curve.getId() + ".", key)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); - CommandTest export = CommandTest.expect(new Command.Export(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); + CommandTest export = CommandTest.expect(new Command.Export(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W), Result.ExpectedValue.SUCCESS); Test setup = runTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "KeyPair setup.", key, set, generate, export)); /* byte[] pParam = curve.getParam(EC_Consts.PARAMETER_FP)[0]; BigInteger p = new BigInteger(1, pParam); - byte[] wParam = ((Response.Export) export.getResponse()).getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W); + byte[] wParam = ((Response.Export) export.getResponse()).getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W); byte[] xValue = new byte[(wParam.length - 1) / 2]; byte[] yValue = new byte[(wParam.length - 1) / 2]; System.arraycopy(wParam, 1, xValue, 0, xValue.length); @@ -171,11 +167,11 @@ public class CardEdgeCasesSuite extends CardTestSuite { byte[] newY = ECUtil.toByteArray(negY, curve.getBits()); EC_Params negYParams = new EC_Params(EC_Consts.PARAMETER_W, new byte[][]{xValue, newY}); - Test negYTest = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, negYParams.getParams(), negYParams.flatten()), "ECDH with pubkey negated.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + Test negYTest = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, negYParams.getParams(), negYParams.flatten()), "ECDH with pubkey negated.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); */ - Test zeroS = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, EC_Consts.TRANSFORMATION_ZERO), "ECDH with S = 0.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); - Test oneS = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, EC_Consts.TRANSFORMATION_ONE), "ECDH with S = 1.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + Test zeroS = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, EC_Consts.TRANSFORMATION_ZERO), "ECDH with S = 0.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + Test oneS = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, EC_Consts.TRANSFORMATION_ONE), "ECDH with S = 1.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); byte[] rParam = curve.getParam(EC_Consts.PARAMETER_R)[0]; BigInteger R = new BigInteger(1, rParam); @@ -194,31 +190,31 @@ public class CardEdgeCasesSuite extends CardTestSuite { BigInteger alternateOther = alternate.xor(full); EC_Params alternateParams = makeParams(alternate); - Test alternateS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, alternateParams.getParams(), alternateParams.flatten()), "ECDH with S = 101010101...01010.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + Test alternateS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, alternateParams.getParams(), alternateParams.flatten()), "ECDH with S = 101010101...01010.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); EC_Params alternateOtherParams = makeParams(alternateOther); - Test alternateOtherS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, alternateOtherParams.getParams(), alternateOtherParams.flatten()), "ECDH with S = 010101010...10101.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + Test alternateOtherS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, alternateOtherParams.getParams(), alternateOtherParams.flatten()), "ECDH with S = 010101010...10101.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); EC_Params fullParams = makeParams(full); - Test fullS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, fullParams.getParams(), fullParams.flatten()), "ECDH with S = 111111111...11111 (but < r).", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + Test fullS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, fullParams.getParams(), fullParams.flatten()), "ECDH with S = 111111111...11111 (but < r).", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); EC_Params smallerParams = makeParams(smaller); - Test smallerS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, smallerParams.getParams(), smallerParams.flatten()), "ECDH with S < r.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + Test smallerS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, smallerParams.getParams(), smallerParams.flatten()), "ECDH with S < r.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); EC_Params exactParams = makeParams(R); - Test exactS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, exactParams.getParams(), exactParams.flatten()), "ECDH with S = r.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + Test exactS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, exactParams.getParams(), exactParams.flatten()), "ECDH with S = r.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); EC_Params largerParams = makeParams(larger); - Test largerS = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, largerParams.getParams(), largerParams.flatten()), "ECDH with S > r.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + Test largerS = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, largerParams.getParams(), largerParams.flatten()), "ECDH with S > r.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); BigInteger rm1 = R.subtract(BigInteger.ONE); BigInteger rp1 = R.add(BigInteger.ONE); EC_Params rm1Params = makeParams(rm1); - Test rm1S = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, rm1Params.getParams(), rm1Params.flatten()), "ECDH with S = r - 1.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + Test rm1S = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, rm1Params.getParams(), rm1Params.flatten()), "ECDH with S = r - 1.", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); EC_Params rp1Params = makeParams(rp1); - Test rp1S = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, rp1Params.getParams(), rp1Params.flatten()), "ECDH with S = r + 1.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + Test rp1S = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, rp1Params.getParams(), rp1Params.flatten()), "ECDH with S = r + 1.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); byte[] k = curve.getParam(EC_Consts.PARAMETER_K)[0]; BigInteger K = new BigInteger(1, k); @@ -229,13 +225,13 @@ public class CardEdgeCasesSuite extends CardTestSuite { Result.ExpectedValue kExpected = K.equals(BigInteger.ONE) ? Result.ExpectedValue.SUCCESS : Result.ExpectedValue.FAILURE; EC_Params krParams = makeParams(kr); - Test krS /*ONE!*/ = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krParams.getParams(), krParams.flatten()), "ECDH with S = k * r.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + Test krS /*ONE!*/ = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krParams.getParams(), krParams.flatten()), "ECDH with S = k * r.", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); EC_Params krm1Params = makeParams(krm1); - Test krm1S = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krm1Params.getParams(), krm1Params.flatten()), "ECDH with S = (k * r) - 1.", kExpected, kExpected); + Test krm1S = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krm1Params.getParams(), krm1Params.flatten()), "ECDH with S = (k * r) - 1.", kExpected, kExpected); EC_Params krp1Params = makeParams(krp1); - Test krp1S = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krp1Params.getParams(), krp1Params.flatten()), "ECDH with S = (k * r) + 1.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); + Test krp1S = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, krp1Params.getParams(), krp1Params.flatten()), "ECDH with S = (k * r) + 1.", Result.ExpectedValue.ANY, Result.ExpectedValue.ANY); if (cfg.cleanup) { Test cleanup = CommandTest.expect(new Command.Cleanup(this.card), Result.ExpectedValue.ANY); @@ -273,20 +269,20 @@ public class CardEdgeCasesSuite extends CardTestSuite { Arrays.sort(ps); Arrays.sort(zeros); - Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, secp160r1.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS)); + Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, secp160r1.getBits(), KeyPair.ALG_EC_FP), Result.ExpectedValue.SUCCESS)); if (!key.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.FAILURE, "No support for " + secp160r1.getBits() + "b secp160r1.", key)); return; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, secp160r1.getParams(), secp160r1.flatten()), Result.ExpectedValue.SUCCESS); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, secp160r1.getParams(), secp160r1.flatten()), Result.ExpectedValue.SUCCESS); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); Test setup = CompoundTest.all(Result.ExpectedValue.SUCCESS, "KeyPair setup.", key, set, generate); Test[] zeroTests = new Test[n]; int i = 0; for (BigInteger nearZero : zeros) { EC_Params params = makeParams(nearZero); - zeroTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearZero.toString(16), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + zeroTests[i++] = ecdhTestBoth(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearZero.toString(16), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); } Test zeroTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Near zero.", zeroTests); @@ -294,7 +290,7 @@ public class CardEdgeCasesSuite extends CardTestSuite { i = 0; for (BigInteger nearP : ps) { EC_Params params = makeParams(nearP); - pTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearP.toString(16) + (nearP.compareTo(p) > 0 ? " (>p)" : " (<=p)"), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + pTests[i++] = ecdhTestBoth(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearP.toString(16) + (nearP.compareTo(p) > 0 ? " (>p)" : " (<=p)"), Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); } Test pTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Near p.", pTests); @@ -303,9 +299,9 @@ public class CardEdgeCasesSuite extends CardTestSuite { for (BigInteger nearR : rs) { EC_Params params = makeParams(nearR); if (nearR.compareTo(r) >= 0) { - rTests[i++] = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + " (>=r)", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); + rTests[i++] = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + " (>=r)", Result.ExpectedValue.FAILURE, Result.ExpectedValue.FAILURE); } else { - rTests[i++] = ecdhTestBoth(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + " (<r)", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); + rTests[i++] = ecdhTestBoth(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, params.getParams(), params.flatten()), nearR.toString(16) + " (<r)", Result.ExpectedValue.SUCCESS, Result.ExpectedValue.SUCCESS); } } Test rTest = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Near r.", rTests); @@ -314,14 +310,14 @@ public class CardEdgeCasesSuite extends CardTestSuite { private Test ecdhTestBoth(Command setPriv, String desc, Result.ExpectedValue setExpect, Result.ExpectedValue ecdhExpect) { Test set = CommandTest.expect(setPriv, setExpect); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ecdhExpect); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ecdhExpect); return CompoundTest.all(Result.ExpectedValue.SUCCESS, desc, set, ecdh); } private Test ecdhTest(Command setPriv, String desc, Result.ExpectedValue setExpect, Result.ExpectedValue ecdhExpect) { Test set = CommandTest.expect(setPriv, setExpect); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ecdhExpect); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ecdhExpect); return CompoundTest.any(Result.ExpectedValue.SUCCESS, desc, set, ecdh); } diff --git a/src/cz/crcs/ectester/reader/test/CardInvalidSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardInvalidSuite.java index 5df379e..4657de0 100644 --- a/src/cz/crcs/ectester/reader/test/CardInvalidSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardInvalidSuite.java @@ -1,13 +1,13 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; @@ -40,22 +40,22 @@ public class CardInvalidSuite extends CardTestSuite { EC_Curve curve = e.getKey(); List<EC_Key.Public> keys = e.getValue(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for " + curve.getId() + ".", allocate)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), ExpectedValue.SUCCESS); Test prepare = CompoundTest.all(ExpectedValue.SUCCESS, "Prepare and generate keypair on " + curve.getId() + ".", allocate, set, generate); List<Test> ecdhTests = new LinkedList<>(); for (EC_Key.Public pub : keys) { - Test setPub = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE); + Test setPub = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE); Test objectEcdh = CompoundTest.any(Result.ExpectedValue.SUCCESS, CardUtil.getKATypeString(EC_Consts.KeyAgreement_ALG_EC_SVDP_DH) + " test with invalid pubkey.", setPub, ecdh); - Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); + Command ecdhCommand = new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); Test rawEcdh = CommandTest.expect(ecdhCommand, ExpectedValue.FAILURE, "Card correctly rejected point on invalid curve.", "Card incorrectly accepted point on invalid curve."); ecdhTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, pub.getId() + " invalid key test.", objectEcdh, rawEcdh)); } diff --git a/src/cz/crcs/ectester/reader/test/CardMiscSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardMiscSuite.java index dd49708..da4c0b5 100644 --- a/src/cz/crcs/ectester/reader/test/CardMiscSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardMiscSuite.java @@ -1,12 +1,12 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -49,16 +49,16 @@ public class CardMiscSuite extends CardTestSuite { } private void testCurve(EC_Curve curve, String catName, Result.ExpectedValue expected) { - Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); + Test allocateFirst = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); if (!allocateFirst.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for " + curve.getBits() + "b " + catName + " curve: " + curve.getId() + ".", allocateFirst)); return; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test generate = setupKeypairs(curve, Result.ExpectedValue.ANY, ECTesterApplet.KEYPAIR_BOTH); - Test ka = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), expected); - Test sig = CommandTest.expect(new Command.ECDSA_sign(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, ECTesterApplet.EXPORT_FALSE, null), expected); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test generate = setupKeypairs(curve, Result.ExpectedValue.ANY, CardConsts.KEYPAIR_BOTH); + Test ka = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), expected); + Test sig = CommandTest.expect(new Command.ECDSA_sign(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, CardConsts.EXPORT_FALSE, null), expected); Test perform = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Perform ECDH and ECDSA.", ka, sig); if (cfg.cleanup) { diff --git a/src/cz/crcs/ectester/reader/test/CardSignatureSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardSignatureSuite.java index 0e4ca8e..086654a 100644 --- a/src/cz/crcs/ectester/reader/test/CardSignatureSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardSignatureSuite.java @@ -1,7 +1,6 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; import cz.crcs.ectester.common.ec.EC_SigResult; @@ -9,6 +8,7 @@ import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -52,10 +52,10 @@ public class CardSignatureSuite extends CardTestSuite { } EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, sig.getCurve()); - Test allocate = CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS); - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test setVerifyKey = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, pubkey.getParams(), pubkey.flatten()), Result.ExpectedValue.SUCCESS); - Test ecdsaVerify = CommandTest.expect(new Command.ECDSA_verify(this.card, ECTesterApplet.KEYPAIR_LOCAL, sig.getJavaCardSig(), data, sig.getData(0)), expected); + Test allocate = CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_LOCAL, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test setVerifyKey = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, pubkey.getParams(), pubkey.flatten()), Result.ExpectedValue.SUCCESS); + Test ecdsaVerify = CommandTest.expect(new Command.ECDSA_verify(this.card, CardConsts.KEYPAIR_LOCAL, sig.getJavaCardSig(), data, sig.getData(0)), expected); if (cfg.cleanup) { Test cleanup = CommandTest.expect(new Command.Cleanup(this.card), Result.ExpectedValue.ANY); diff --git a/src/cz/crcs/ectester/reader/test/CardTestSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTestSuite.java index fc60ae5..15c4469 100644 --- a/src/cz/crcs/ectester/reader/test/CardTestSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTestSuite.java @@ -1,7 +1,6 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Params; import cz.crcs.ectester.common.output.TestWriter; @@ -9,6 +8,7 @@ import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.test.TestSuite; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.ECUtil; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.ECTesterReader; @@ -50,17 +50,17 @@ public abstract class CardTestSuite extends TestSuite { public Test setupKeypairs(EC_Curve curve, Result.ExpectedValue expected, byte keyPair) { if ((Arrays.asList(options).contains("preset") && cfg.testOptions.contains("preset")) || (Arrays.asList(options).contains("random") && cfg.testOptions.contains("random"))) { Test setLocal = null; - if ((keyPair & ECTesterApplet.KEYPAIR_LOCAL) != 0) { + if ((keyPair & CardConsts.KEYPAIR_LOCAL) != 0) { EC_Params priv; if (cfg.testOptions.contains("preset")) { priv = ECUtil.fixedRandomKey(curve); } else { priv = ECUtil.fullRandomKey(curve); } - setLocal = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, priv.getParams(), priv.flatten()), expected); + setLocal = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, priv.getParams(), priv.flatten()), expected); } Test setRemote = null; - if ((keyPair & ECTesterApplet.KEYPAIR_REMOTE) != 0) { + if ((keyPair & CardConsts.KEYPAIR_REMOTE) != 0) { EC_Params pub; if (cfg.testOptions.contains("preset")) { pub = ECUtil.fixedRandomPoint(curve); @@ -68,15 +68,15 @@ public abstract class CardTestSuite extends TestSuite { pub = ECUtil.fullRandomPoint(curve); } if (pub == null) { - setRemote = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_REMOTE), expected); + setRemote = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_REMOTE), expected); } else { - setRemote = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), expected); + setRemote = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), expected); } } - if (keyPair == ECTesterApplet.KEYPAIR_LOCAL) { + if (keyPair == CardConsts.KEYPAIR_LOCAL) { return setLocal; - } else if (keyPair == ECTesterApplet.KEYPAIR_REMOTE) { + } else if (keyPair == CardConsts.KEYPAIR_REMOTE) { return setRemote; } else { String desc; diff --git a/src/cz/crcs/ectester/reader/test/CardTestVectorSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTestVectorSuite.java index d143852..056be17 100644 --- a/src/cz/crcs/ectester/reader/test/CardTestVectorSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTestVectorSuite.java @@ -1,7 +1,5 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; @@ -9,6 +7,7 @@ import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.test.TestCallback; import cz.crcs.ectester.common.util.ByteUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.common.util.ECUtil; import cz.crcs.ectester.data.EC_Store; @@ -65,17 +64,17 @@ public class CardTestVectorSuite extends CardTestSuite { throw new IOException("Test vector keys couldn't be located."); } List<Test> testVector = new LinkedList<>(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(ExpectedValue.SUCCESS, "No support for " + curve.getBits() + "b " + CardUtil.getKeyTypeString(curve.getField()) + ".", allocate)); continue; } testVector.add(allocate); - testVector.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS)); - testVector.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, onekey.flatten(EC_Consts.PARAMETER_S)), ExpectedValue.SUCCESS)); - testVector.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_W, otherkey.flatten(EC_Consts.PARAMETER_W)), ExpectedValue.SUCCESS)); - testVector.add(CommandTest.function(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, result.getJavaCardKA()), new TestCallback<CommandTestable>() { + testVector.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS)); + testVector.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.CURVE_external, EC_Consts.PARAMETER_S, onekey.flatten(EC_Consts.PARAMETER_S)), ExpectedValue.SUCCESS)); + testVector.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, EC_Consts.PARAMETER_W, otherkey.flatten(EC_Consts.PARAMETER_W)), ExpectedValue.SUCCESS)); + testVector.add(CommandTest.function(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, result.getJavaCardKA()), new TestCallback<CommandTestable>() { @Override public Result apply(CommandTestable testable) { Response.ECDH dh = (Response.ECDH) testable.getResponse(); @@ -114,21 +113,21 @@ public class CardTestVectorSuite extends CardTestSuite { testCurves.addAll(EC_Store.getInstance().getObjects(EC_Curve.class, "brainpool").values().stream().filter((curve) -> curve.getField() == KeyPair.ALG_EC_FP).collect(Collectors.toList())); for (EC_Curve curve : testCurves) { List<Test> testVector = new LinkedList<>(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(ExpectedValue.SUCCESS, "No support for " + curve.getBits() + "b " + CardUtil.getKeyTypeString(curve.getField()) + ".", allocate)); continue; } testVector.add(allocate); - testVector.add(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS)); - testVector.add(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); - CommandTest exportLocal = CommandTest.expect(new Command.Export(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W), ExpectedValue.ANY); - CommandTest exportRemote = CommandTest.expect(new Command.Export(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S), ExpectedValue.ANY); + testVector.add(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.SUCCESS)); + testVector.add(CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_BOTH), ExpectedValue.SUCCESS)); + CommandTest exportLocal = CommandTest.expect(new Command.Export(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.KEY_PUBLIC, EC_Consts.PARAMETER_W), ExpectedValue.ANY); + CommandTest exportRemote = CommandTest.expect(new Command.Export(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.KEY_PRIVATE, EC_Consts.PARAMETER_S), ExpectedValue.ANY); testVector.add(exportLocal); testVector.add(exportRemote); BiFunction<Response.Export, Response.Export, Key[]> getKeys = (localData, remoteData) -> { - byte[] pkey = localData.getParameter(ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W); - byte[] skey = remoteData.getParameter(ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.PARAMETER_S); + byte[] pkey = localData.getParameter(CardConsts.KEYPAIR_LOCAL, EC_Consts.PARAMETER_W); + byte[] skey = remoteData.getParameter(CardConsts.KEYPAIR_REMOTE, EC_Consts.PARAMETER_S); ECParameterSpec spec = curve.toSpec(); ECPrivateKeySpec privKeySpec = new ECPrivateKeySpec(new BigInteger(1, skey), spec); ECPublicKeySpec pubKeySpec = new ECPublicKeySpec(ECUtil.fromX962(pkey, curve.toCurve()), spec); @@ -191,8 +190,8 @@ public class CardTestVectorSuite extends CardTestSuite { } } }; - Test ecdhTest = CommandTest.function(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), kaCallback); - Test ecdhRawTest = CommandTest.function(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH_PLAIN), kaCallback); + Test ecdhTest = CommandTest.function(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), kaCallback); + Test ecdhRawTest = CommandTest.function(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_TRUE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH_PLAIN), kaCallback); byte[] data = new byte[32]; TestCallback<CommandTestable> sigCallback = new TestCallback<CommandTestable>() { @Override @@ -224,7 +223,7 @@ public class CardTestVectorSuite extends CardTestSuite { } } }; - Test ecdsaTest = CommandTest.function(new Command.ECDSA_sign(this.card, ECTesterApplet.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, ECTesterApplet.EXPORT_TRUE, data), sigCallback); + Test ecdsaTest = CommandTest.function(new Command.ECDSA_sign(this.card, CardConsts.KEYPAIR_LOCAL, EC_Consts.Signature_ALG_ECDSA_SHA, CardConsts.EXPORT_TRUE, data), sigCallback); testVector.add(CompoundTest.all(ExpectedValue.SUCCESS, "Test.", ecdhTest, ecdhRawTest, ecdsaTest)); if (cfg.cleanup) { testVector.add(CommandTest.expect(new Command.Cleanup(this.card), ExpectedValue.ANY)); diff --git a/src/cz/crcs/ectester/reader/test/CardTwistSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTwistSuite.java index a6bca6c..5c35be7 100644 --- a/src/cz/crcs/ectester/reader/test/CardTwistSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardTwistSuite.java @@ -1,13 +1,13 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Key; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.data.EC_Store; import cz.crcs.ectester.reader.CardMngr; @@ -34,22 +34,22 @@ public class CardTwistSuite extends CardTestSuite { EC_Curve curve = e.getKey(); List<EC_Key.Public> keys = e.getValue(); - Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); + Test allocate = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); if (!allocate.ok()) { doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "No support for " + curve.getId() + ".", allocate)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS); Test prepare = CompoundTest.all(Result.ExpectedValue.SUCCESS, "Prepare and generate keypair on " + curve.getId() + ".", allocate, set, generate); List<Test> ecdhTests = new LinkedList<>(); for (EC_Key.Public pub : keys) { - Test setPub = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE, "Card correctly rejected point on twist.", "Card incorrectly accepted point on twist."); + Test setPub = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_REMOTE, EC_Consts.CURVE_external, pub.getParams(), pub.flatten()), Result.ExpectedValue.FAILURE); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), Result.ExpectedValue.FAILURE, "Card correctly rejected point on twist.", "Card incorrectly accepted point on twist."); Test objectEcdh = CompoundTest.any(Result.ExpectedValue.SUCCESS, CardUtil.getKATypeString(EC_Consts.KeyAgreement_ALG_EC_SVDP_DH) + " test with twist pubkey.", setPub, ecdh); - Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); + Command ecdhCommand = new Command.ECDH_direct(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); Test rawEcdh = CommandTest.expect(ecdhCommand, Result.ExpectedValue.FAILURE, "Card correctly rejected point on twist.", "Card incorrectly accepted point on twist."); ecdhTests.add(CompoundTest.all(Result.ExpectedValue.SUCCESS, pub.getId() + " twist key test.", objectEcdh, rawEcdh)); } diff --git a/src/cz/crcs/ectester/reader/test/CardWrongSuite.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CardWrongSuite.java index 13a3f8b..c69396b 100644 --- a/src/cz/crcs/ectester/reader/test/CardWrongSuite.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CardWrongSuite.java @@ -1,7 +1,6 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; -import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.ec.EC_Params; import cz.crcs.ectester.common.output.TestWriter; @@ -9,6 +8,7 @@ import cz.crcs.ectester.common.test.CompoundTest; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.Test; import cz.crcs.ectester.common.util.ByteUtil; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.common.util.CardUtil; import cz.crcs.ectester.common.util.ECUtil; import cz.crcs.ectester.data.EC_Store; @@ -43,21 +43,21 @@ public class CardWrongSuite extends CardTestSuite { for (Map.Entry<String, EC_Curve> e : curves.entrySet()) { EC_Curve curve = e.getValue(); List<Test> tests = new LinkedList<>(); - Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); + Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, curve.getBits(), curve.getField()), ExpectedValue.SUCCESS)); if (!key.ok()) { doTest(CompoundTest.all(ExpectedValue.FAILURE, "No support for " + curve.getBits() + "b " + CardUtil.getKeyTypeString(curve.getField()), key)); continue; } tests.add(key); - Test set = runTest(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.FAILURE)); - Test generate = runTest(setupKeypairs(curve, ExpectedValue.SUCCESS, ECTesterApplet.KEYPAIR_BOTH)); + Test set = runTest(CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), ExpectedValue.FAILURE)); + Test generate = runTest(setupKeypairs(curve, ExpectedValue.SUCCESS, CardConsts.KEYPAIR_BOTH)); Test setup = runTest(CompoundTest.any(ExpectedValue.SUCCESS, "Set wrong curve and generate keypairs.", set, generate)); tests.add(setup); for (byte kaType : EC_Consts.KA_TYPES) { Test allocate = runTest(CommandTest.expect(new Command.AllocateKeyAgreement(this.card, kaType), ExpectedValue.SUCCESS)); if (allocate.ok()) { - Test ka = runTest(CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType), ExpectedValue.FAILURE)); + Test ka = runTest(CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_REMOTE, CardConsts.KEYPAIR_LOCAL, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, kaType), ExpectedValue.FAILURE)); Test kaTest = runTest(CompoundTest.all(ExpectedValue.SUCCESS, "Allocate and perform KA.", allocate, ka)); tests.add(kaTest); } @@ -83,38 +83,38 @@ public class CardWrongSuite extends CardTestSuite { Random r = new Random(); for (short keyLength : EC_Consts.FP_SIZES) { byte curve = EC_Consts.getCurve(keyLength, KeyPair.ALG_EC_FP); - Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, keyLength, KeyPair.ALG_EC_FP), ExpectedValue.SUCCESS)); + Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, keyLength, KeyPair.ALG_EC_FP), ExpectedValue.SUCCESS)); if (!key.ok()) { doTest(CompoundTest.all(ExpectedValue.FAILURE, "No support for " + keyLength + "b ALG_EC_FP.", key)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, curve, EC_Consts.PARAMETERS_DOMAIN_FP, null), ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, curve, EC_Consts.PARAMETERS_DOMAIN_FP, null), ExpectedValue.SUCCESS); Test setup = CompoundTest.all(ExpectedValue.SUCCESS, "KeyPair setup.", key, set); - Test prime0 = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_FP, EC_Consts.TRANSFORMATION_ZERO), "Set p = 0.", "ECDH with p = 0."); - Test prime1 = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_FP, EC_Consts.TRANSFORMATION_ONE), "Set p = 1.", "ECDH with p = 1."); + Test prime0 = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_FP, EC_Consts.TRANSFORMATION_ZERO), "Set p = 0.", "ECDH with p = 0."); + Test prime1 = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_FP, EC_Consts.TRANSFORMATION_ONE), "Set p = 1.", "ECDH with p = 1."); short keyHalf = (short) (keyLength / 2); BigInteger prime = new BigInteger(keyHalf, 50, r); BigInteger primePow = prime.pow(2); byte[] primePowBytes = ECUtil.toByteArray(primePow, keyLength); EC_Params primePowData = new EC_Params(EC_Consts.PARAMETER_FP, new byte[][]{primePowBytes}); - Test primePower = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, primePowData.getParams(), primePowData.flatten()), "Set p = square of a prime.", "ECDH with p = q^2."); + Test primePower = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, primePowData.getParams(), primePowData.flatten()), "Set p = square of a prime.", "ECDH with p = q^2."); BigInteger q = new BigInteger(keyHalf, r); BigInteger s = new BigInteger(keyHalf, r); BigInteger compositeValue = q.multiply(s); byte[] compositeBytes = ECUtil.toByteArray(compositeValue, keyLength); EC_Params compositeData = new EC_Params(EC_Consts.PARAMETER_FP, new byte[][]{compositeBytes}); - Test composite = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, compositeData.getParams(), compositeData.flatten()), "Set p = product of two primes.", "ECDH with p = q * s."); + Test composite = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, compositeData.getParams(), compositeData.flatten()), "Set p = product of two primes.", "ECDH with p = q * s."); Test wrongPrime = CompoundTest.all(ExpectedValue.SUCCESS, "Tests with corrupted prime parameter.", prime0, prime1, primePower, composite); Test resetSetup = CompoundTest.all(ExpectedValue.SUCCESS, "Reset keypair.", set.clone()); - Test randomG = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, (short) (EC_Consts.TRANSFORMATION_FULLRANDOM | EC_Consts.TRANSFORMATION_04_MASK)), "Set G = random non-point/point-like.", "ECDH with non-point G."); - Test fullRandomG = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, EC_Consts.TRANSFORMATION_FULLRANDOM), "Set G = random data.", "ECDH with G = random data."); - Test zeroG = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, EC_Consts.TRANSFORMATION_INFINITY), "Set G = inifnity.", "ECDH with G = infinity."); + Test randomG = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, (short) (EC_Consts.TRANSFORMATION_FULLRANDOM | EC_Consts.TRANSFORMATION_04_MASK)), "Set G = random non-point/point-like.", "ECDH with non-point G."); + Test fullRandomG = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, EC_Consts.TRANSFORMATION_FULLRANDOM), "Set G = random data.", "ECDH with G = random data."); + Test zeroG = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_G, EC_Consts.TRANSFORMATION_INFINITY), "Set G = inifnity.", "ECDH with G = infinity."); Test wrongG = CompoundTest.all(ExpectedValue.SUCCESS, "Tests with corrupted G parameter.", randomG, fullRandomG, zeroG); byte[] originalR = new byte[((keyLength + 7) / 8) + 1]; @@ -126,8 +126,8 @@ public class CardWrongSuite extends CardTestSuite { } BigInteger originalBigR = new BigInteger(1, originalR); - Test zeroR = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, EC_Consts.PARAMETER_R, EC_Consts.TRANSFORMATION_ZERO), "Set R = 0.", "ECDH with R = 0."); - Test oneR = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, EC_Consts.PARAMETER_R, EC_Consts.TRANSFORMATION_ONE), "Set R = 1.", "ECDH with R = 1."); + Test zeroR = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, EC_Consts.PARAMETER_R, EC_Consts.TRANSFORMATION_ZERO), "Set R = 0.", "ECDH with R = 0."); + Test oneR = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, EC_Consts.PARAMETER_R, EC_Consts.TRANSFORMATION_ONE), "Set R = 1.", "ECDH with R = 1."); BigInteger prevPrimeR; do { @@ -135,27 +135,27 @@ public class CardWrongSuite extends CardTestSuite { } while (prevPrimeR.compareTo(originalBigR) >= 0); byte[] prevRBytes = ECUtil.toByteArray(prevPrimeR, keyLength); EC_Params prevRData = new EC_Params(EC_Consts.PARAMETER_R, new byte[][]{prevRBytes}); - Test prevprimeWrongR = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, prevRData.getParams(), prevRData.flatten()), "Set R = some prime (but [r]G != infinity) smaller than original R.", "ECDH with wrong R, prevprime."); + Test prevprimeWrongR = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, prevRData.getParams(), prevRData.flatten()), "Set R = some prime (but [r]G != infinity) smaller than original R.", "ECDH with wrong R, prevprime."); BigInteger nextPrimeR = originalBigR.nextProbablePrime(); byte[] nextRBytes = ECUtil.toByteArray(nextPrimeR, keyLength); EC_Params nextRData = new EC_Params(EC_Consts.PARAMETER_R, new byte[][]{nextRBytes}); - Test nextprimeWrongR = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, nextRData.getParams(), nextRData.flatten()), "Set R = some prime (but [r]G != infinity) larger than original R.", "ECDH with wrong R, nextprime."); + Test nextprimeWrongR = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, nextRData.getParams(), nextRData.flatten()), "Set R = some prime (but [r]G != infinity) larger than original R.", "ECDH with wrong R, nextprime."); byte[] nonprimeRBytes = nextRBytes.clone(); nonprimeRBytes[nonprimeRBytes.length - 1] ^= 1; EC_Params nonprimeWrongRData = new EC_Params(EC_Consts.PARAMETER_R, new byte[][]{nonprimeRBytes}); - Test nonprimeWrongR = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, nonprimeWrongRData.getParams(), nonprimeWrongRData.flatten()), "Set R = some composite (but [r]G != infinity).", "ECDH with wrong R, composite."); + Test nonprimeWrongR = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, nonprimeWrongRData.getParams(), nonprimeWrongRData.flatten()), "Set R = some composite (but [r]G != infinity).", "ECDH with wrong R, composite."); Test wrongR = CompoundTest.all(ExpectedValue.SUCCESS, "Tests with corrupted R parameter.", zeroR, oneR, prevprimeWrongR, nextprimeWrongR, nonprimeWrongR); byte[] kRaw = new byte[]{(byte) 0xff}; EC_Params kData = new EC_Params(EC_Consts.PARAMETER_K, new byte[][]{kRaw}); - Test bigK = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, kData.getParams(), kData.flatten()), "", ""); + Test bigK = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, kData.getParams(), kData.flatten()), "", ""); byte[] kZero = new byte[]{(byte) 0}; EC_Params kZeroData = new EC_Params(EC_Consts.PARAMETER_K, new byte[][]{kZero}); - Test zeroK = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, kZeroData.getParams(), kZeroData.flatten()), "", ""); + Test zeroK = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, kZeroData.getParams(), kZeroData.flatten()), "", ""); Test wrongK = CompoundTest.all(ExpectedValue.SUCCESS, "Tests with corrupted K parameter.", bigK, zeroK); @@ -169,15 +169,15 @@ public class CardWrongSuite extends CardTestSuite { */ for (short keyLength : EC_Consts.F2M_SIZES) { byte curve = EC_Consts.getCurve(keyLength, KeyPair.ALG_EC_F2M); - Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, keyLength, KeyPair.ALG_EC_F2M), ExpectedValue.SUCCESS)); + Test key = runTest(CommandTest.expect(new Command.Allocate(this.card, CardConsts.KEYPAIR_BOTH, keyLength, KeyPair.ALG_EC_F2M), ExpectedValue.SUCCESS)); if (!key.ok()) { doTest(CompoundTest.all(ExpectedValue.FAILURE, "No support for " + keyLength + "b ALG_EC_F2M.", key)); continue; } - Test set = CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, curve, EC_Consts.PARAMETERS_DOMAIN_F2M, null), ExpectedValue.SUCCESS); + Test set = CommandTest.expect(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, curve, EC_Consts.PARAMETERS_DOMAIN_F2M, null), ExpectedValue.SUCCESS); Test setup = CompoundTest.all(ExpectedValue.SUCCESS, "KeyPair setup.", key, set); - Test coeff0 = ecdhTest(new Command.Transform(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_F2M, EC_Consts.TRANSFORMATION_ZERO), "Set e1 = e2 = e3 = 0.", "ECDH with wrong field polynomial: x^" + keyLength); + Test coeff0 = ecdhTest(new Command.Transform(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.KEY_BOTH, EC_Consts.PARAMETER_F2M, EC_Consts.TRANSFORMATION_ZERO), "Set e1 = e2 = e3 = 0.", "ECDH with wrong field polynomial: x^" + keyLength); short e1 = (short) (2 * keyLength); short e2 = (short) (3 * keyLength); @@ -188,7 +188,7 @@ public class CardWrongSuite extends CardTestSuite { ByteUtil.shortToBytes(e2), ByteUtil.shortToBytes(e3)}; EC_Params coeffParams = new EC_Params(EC_Consts.PARAMETER_F2M, coeffBytes); - Test coeffLarger = ecdhTest(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, coeffParams.getParams(), coeffParams.flatten()), "Set e1=" + e1 + ", e2=" + e2 + ", e3=" + e3, "ECDH with wrong field poly, powers larger than " + keyLength); + Test coeffLarger = ecdhTest(new Command.Set(this.card, CardConsts.KEYPAIR_BOTH, EC_Consts.CURVE_external, coeffParams.getParams(), coeffParams.flatten()), "Set e1=" + e1 + ", e2=" + e2 + ", e3=" + e3, "ECDH with wrong field poly, powers larger than " + keyLength); Test wrong = CompoundTest.all(ExpectedValue.SUCCESS, "Tests with corrupted field polynomial parameter.", coeff0, coeffLarger); doTest(CompoundTest.all(ExpectedValue.SUCCESS, "Tests of " + keyLength + "b " + CardUtil.getKeyTypeString(KeyPair.ALG_EC_F2M), setup, wrong)); @@ -205,10 +205,10 @@ public class CardWrongSuite extends CardTestSuite { private Test ecdhTest(Command setupCmd, String prepareDesc, String fullDesc) { Test setup = CommandTest.expect(setupCmd, ExpectedValue.FAILURE); - Test generate = CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_BOTH), ExpectedValue.FAILURE); + Test generate = CommandTest.expect(new Command.Generate(this.card, CardConsts.KEYPAIR_BOTH), ExpectedValue.FAILURE); Test preparePhase = CompoundTest.any(ExpectedValue.SUCCESS, prepareDesc, setup, generate); Test allocateECDH = CommandTest.expect(new Command.AllocateKeyAgreement(this.card, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ExpectedValue.SUCCESS); - Test ecdh = CommandTest.expect(new Command.ECDH(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.KEYPAIR_REMOTE, ECTesterApplet.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ExpectedValue.FAILURE); + Test ecdh = CommandTest.expect(new Command.ECDH(this.card, CardConsts.KEYPAIR_LOCAL, CardConsts.KEYPAIR_REMOTE, CardConsts.EXPORT_FALSE, EC_Consts.TRANSFORMATION_NONE, EC_Consts.KeyAgreement_ALG_EC_SVDP_DH), ExpectedValue.FAILURE); return CompoundTest.function((tests) -> { diff --git a/src/cz/crcs/ectester/reader/test/CommandTest.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CommandTest.java index b05d3e4..b05d3e4 100644 --- a/src/cz/crcs/ectester/reader/test/CommandTest.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CommandTest.java diff --git a/src/cz/crcs/ectester/reader/test/CommandTestable.java b/reader/src/main/java/cz/crcs/ectester/reader/test/CommandTestable.java index f670534..f670534 100644 --- a/src/cz/crcs/ectester/reader/test/CommandTestable.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/CommandTestable.java diff --git a/src/cz/crcs/ectester/reader/test/PerformanceTest.java b/reader/src/main/java/cz/crcs/ectester/reader/test/PerformanceTest.java index f9cba46..a725dc2 100644 --- a/src/cz/crcs/ectester/reader/test/PerformanceTest.java +++ b/reader/src/main/java/cz/crcs/ectester/reader/test/PerformanceTest.java @@ -1,10 +1,10 @@ package cz.crcs.ectester.reader.test; -import cz.crcs.ectester.applet.ECTesterApplet; import cz.crcs.ectester.common.test.Result; import cz.crcs.ectester.common.test.SimpleTest; import cz.crcs.ectester.common.test.TestCallback; import cz.crcs.ectester.common.test.TestException; +import cz.crcs.ectester.common.util.CardConsts; import cz.crcs.ectester.reader.CardMngr; import cz.crcs.ectester.reader.command.Command; import cz.crcs.ectester.reader.response.Response; @@ -56,7 +56,7 @@ public class PerformanceTest extends SimpleTest<CommandTestable> { protected void runSelf() { long baseTime; try { - new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_DRY_RUN).send(); + new Command.SetDryRunMode(cardManager, CardConsts.MODE_DRY_RUN).send(); testable.run(); baseTime = testable.getResponse().getDuration(); testable.reset(); @@ -64,7 +64,7 @@ public class PerformanceTest extends SimpleTest<CommandTestable> { baseTime += testable.getResponse().getDuration(); testable.reset(); baseTime /= 2; - new Command.SetDryRunMode(cardManager, ECTesterApplet.MODE_NORMAL).send(); + new Command.SetDryRunMode(cardManager, CardConsts.MODE_NORMAL).send(); } catch (CardException ce) { throw new TestException(ce); } diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..9e6c60e --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,12 @@ +/* + * The settings file is used to specify which projects to include in your build. + * For more detailed information on multi-project builds, please refer to https://docs.gradle.org/8.6/userguide/multi_project_builds.html in the Gradle documentation. + */ + +plugins { + // Apply the foojay-resolver plugin to allow automatic download of JDKs + id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0" +} + +rootProject.name = "ECTester" +include("common", "applet", "reader", "standalone") diff --git a/standalone/build.gradle.kts b/standalone/build.gradle.kts new file mode 100644 index 0000000..53a306c --- /dev/null +++ b/standalone/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + application +} + +repositories { + mavenCentral() +} + +dependencies { + implementation(files("$rootDir/ext/wolfcrypt-jni.jar")) + implementation(project(":common")) +} + +application { + mainClass = "cz.crcs.ectester.standalone.ECTesterStandalone" +} + +tasks.withType<JavaCompile> { + options.compilerArgs.addAll(arrayOf( + "--add-modules", "jdk.crypto.ec", + "--add-exports", "jdk.crypto.ec/sun.security.ec=ALL-UNNAMED" + )) +}
\ No newline at end of file diff --git a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java b/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java index a26cc7c..5d3bad2 100644 --- a/src/cz/crcs/ectester/standalone/ECTesterStandalone.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java @@ -23,8 +23,8 @@ */ package cz.crcs.ectester.standalone; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.cli.*; +import cz.crcs.ectester.common.ec.EC_Consts; import cz.crcs.ectester.common.ec.EC_Curve; import cz.crcs.ectester.common.output.TestWriter; import cz.crcs.ectester.common.test.TestException; @@ -598,8 +598,8 @@ public class ECTesterStandalone { timeUnit = lib.getNativeTimingUnit(); } - String hashAlgo = sigIdent.getHashAlgo() != null ? String.format("[%s]", sigIdent.getHashAlgo()) : ""; - out.println(String.format("index;signTime[%s];verifyTime[%s];data;pubW;privS;signature%s;nonce;verified", timeUnit, timeUnit, hashAlgo)); + String hashAlgoOut = sigIdent.getHashAlgo() != null ? String.format("[%s]", sigIdent.getHashAlgo()) : ""; + out.println(String.format("index;signTime[%s];verifyTime[%s];data;pubW;privS;signature%s;nonce;verified", timeUnit, timeUnit, hashAlgoOut)); ECPrivateKey privkey = (ECPrivateKey) ECUtil.loadKey(EC_Consts.PARAMETER_S, cli.getOptionValue("ecdsa.named-private"), cli.getOptionValue("ecdsa.private"), spec); ECPublicKey pubkey = (ECPublicKey) ECUtil.loadKey(EC_Consts.PARAMETER_W, cli.getOptionValue("ecdsa.named-public"), cli.getOptionValue("ecdsa.public"), spec); @@ -658,7 +658,14 @@ public class ECTesterStandalone { kSpec = privkey.getParams(); } if (kSpec != null) { - BigInteger kValue = ECUtil.recoverSignatureNonce(signature, data, privkey.getS(), kSpec, sigIdent); + // Parse the types out of SignatureIdent. + String hashAlgo = sigIdent.getHashAlgo(); + String sigType = sigIdent.getSigType(); + if (sigType == null) { + sigType = sigIdent.toString(); + } + + BigInteger kValue = ECUtil.recoverSignatureNonce(signature, data, privkey.getS(), kSpec, hashAlgo, sigType); if (kValue != null) { k = ByteUtil.bytesToHex(kValue.toByteArray(), false); } diff --git a/src/cz/crcs/ectester/standalone/consts/Ident.java b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/Ident.java index fcc811d..fcc811d 100644 --- a/src/cz/crcs/ectester/standalone/consts/Ident.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/Ident.java diff --git a/src/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java index 9b912cb..9b912cb 100644 --- a/src/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyAgreementIdent.java diff --git a/src/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java index 83eef75..83eef75 100644 --- a/src/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/KeyPairGeneratorIdent.java diff --git a/src/cz/crcs/ectester/standalone/consts/SignatureIdent.java b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/SignatureIdent.java index c3913b7..c3913b7 100644 --- a/src/cz/crcs/ectester/standalone/consts/SignatureIdent.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/consts/SignatureIdent.java diff --git a/src/cz/crcs/ectester/standalone/libs/BoringsslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java index 60ca5d9..60ca5d9 100644 --- a/src/cz/crcs/ectester/standalone/libs/BoringsslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/BotanLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java index cd28791..cd28791 100644 --- a/src/cz/crcs/ectester/standalone/libs/BotanLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java index c6600f9..c6600f9 100644 --- a/src/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BouncyCastleLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/CryptoppLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/CryptoppLib.java index 5112d7d..5112d7d 100644 --- a/src/cz/crcs/ectester/standalone/libs/CryptoppLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/CryptoppLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/ECLibrary.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ECLibrary.java index 0f81978..0f81978 100644 --- a/src/cz/crcs/ectester/standalone/libs/ECLibrary.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ECLibrary.java diff --git a/src/cz/crcs/ectester/standalone/libs/GcryptLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java index a0a7fc8..a0a7fc8 100644 --- a/src/cz/crcs/ectester/standalone/libs/GcryptLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/IppcpLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/IppcpLib.java index 0dec0a2..0dec0a2 100644 --- a/src/cz/crcs/ectester/standalone/libs/IppcpLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/IppcpLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/LibresslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java index cee4e4d..cee4e4d 100644 --- a/src/cz/crcs/ectester/standalone/libs/LibresslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/MatrixsslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MatrixsslLib.java index fcc13ea..fcc13ea 100644 --- a/src/cz/crcs/ectester/standalone/libs/MatrixsslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MatrixsslLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/MbedTLSLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MbedTLSLib.java index ace10d7..ace10d7 100644 --- a/src/cz/crcs/ectester/standalone/libs/MbedTLSLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MbedTLSLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/MscngLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MscngLib.java index 527a65b..527a65b 100644 --- a/src/cz/crcs/ectester/standalone/libs/MscngLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/MscngLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java index db85b02..db85b02 100644 --- a/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java diff --git a/src/cz/crcs/ectester/standalone/libs/NettleLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NettleLib.java index 00e3b39..00e3b39 100644 --- a/src/cz/crcs/ectester/standalone/libs/NettleLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NettleLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/OpensslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java index e558336..e558336 100644 --- a/src/cz/crcs/ectester/standalone/libs/OpensslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java index dd8e49c..dd8e49c 100644 --- a/src/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java diff --git a/src/cz/crcs/ectester/standalone/libs/SunECLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/SunECLib.java index 3aec842..3aec842 100644 --- a/src/cz/crcs/ectester/standalone/libs/SunECLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/SunECLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/TomcryptLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java index 78db00e..78db00e 100644 --- a/src/cz/crcs/ectester/standalone/libs/TomcryptLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/WolfCryptLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/WolfCryptLib.java index b58eb91..b58eb91 100644 --- a/src/cz/crcs/ectester/standalone/libs/WolfCryptLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/WolfCryptLib.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/.clang-format b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.clang-format index 0aa8562..0aa8562 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/.clang-format +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.clang-format diff --git a/src/cz/crcs/ectester/standalone/libs/jni/.gitignore b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.gitignore index 7e8075a..777d8e0 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/.gitignore +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/.gitignore @@ -1,6 +1,8 @@ libcore_s.a libcrypt_s.a matrixssl/ +*.o +*.so CMakeLists.txt cmake-build-debug
\ No newline at end of file diff --git a/src/cz/crcs/ectester/standalone/libs/jni/Makefile b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile index c3995e3..c3995e3 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/Makefile +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile diff --git a/src/cz/crcs/ectester/standalone/libs/jni/Makefile.bat b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile.bat index a8b51f4..e6c98d5 100755 --- a/src/cz/crcs/ectester/standalone/libs/jni/Makefile.bat +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/Makefile.bat @@ -1,163 +1,163 @@ -@if not defined _echo echo off
-setlocal EnableDelayedExpansion
-
-:: ENV variables respected:
-:: - JAVA_HOME
-:: - CC
-:: - USE_EXT_MSCNG
-:: - DEBUG
-
-:: See if we are cleaning.
-if "%1" == "clean" (
- echo ** cleaning
- del *.dll *.exp *.lib *.obj
- exit
-)
-
-set TAB=
-
-
-:: Determine arch.
-reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL 2>&1 && (set ARCH=32& set ARCH_S=x86& set ARCH_VS=x86) || (set ARCH=64& set ARCH_S=x64& set ARCH_VS=amd64)
-
-echo ** ARCH%TAB%%TAB%%ARCH_S%
-
-
-:: Find a working visual studio environment.
-set found=0
-set vsw_path="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
-
-set vs_path=
-for /f "usebackq delims=" %%i in (`%vsw_path% -nologo -prerelease -latest -property installationPath`) do (
- if exist "%%i\Common7\Tools\vsdevcmd.bat" (
- echo ** VsDevCmd%TAB%%TAB%%%i\Common7\Tools\vsdevcmd.bat
- call "%%i\Common7\Tools\vsdevcmd.bat" -no_logo -arch=%ARCH_VS%
- if ERRORLEVEL 1 (
- echo nope.
- ) else (
- set found=1
- set vs_path=%%i
- break
- )
- )
-)
-
-:: Test if we have a visual studio env.
-if %found% EQU 0 (
- echo Working VsDevCmd not found.
- exit /b 2
-)
-
-echo ** VS_PATH%TAB%%TAB%%vs_path%
-
-
-:: Try to find vcruntime.
-set vc_base=%vs_path%\VC\Tools\MSVC\
-if exist %vc_base% (
- set vc_version=
- for /f "delims=" %%i in ('dir /b /on "!vc_base!"') do (
- set vc_version=%%i
- )
- echo ** VC_VERSION%TAB%!vc_version!
- set vc_include=%vc_base%!vc_version!\include
- set vc_lib=%vc_base%!vc_version!\lib\%ARCH_S%
-)
-
-
-:: Get the paths to Microsoft CNG SDK.
-set root_rel=..\..\..\..\..\..\..\
-set mscng_rel_include=ext\mscng\10\Include
-set mscng_rel_lib=ext\mscng\10\Lib
-
-pushd %root_rel%
-pushd %mscng_rel_include%
-set mscng_include=%CD%
-popd
-pushd %mscng_rel_lib%
-set mscng_lib=%CD%
-popd
-popd
-
-set mscng_lib_arch=%mscng_lib%\X%ARCH%
-
-echo ** CNG_INCLUDE%TAB%%mscng_include%
-echo ** CNG_LIB%TAB%%TAB%%mscng_lib_arch%
-
-
-:: Get the paths to Java JNI.
-if not defined JAVA_HOME (
- set jva=
- for /f "delims=" %%i in ('where javac') do (
- set jva=%%~dpi
- )
- pushd !jva!\..
- set JAVA_HOME=!CD!
- popd
-)
-
-echo ** JAVA_HOME%TAB%%JAVA_HOME%
-
-set JNI_INCLUDEDIR=%JAVA_HOME%\include
-set JNI_PLATFORMINCLUDEDIR=%JNI_INCLUDEDIR%\win32
-set JNI_LIBDIR=%JAVA_HOME%\lib
-
-
-:: Setup binaries.
-if not defined CC (
- set CC=cl.exe
-)
-
-echo ** CC%TAB%%TAB%%CC%
-
-
-:: Try to find uCRT.
-set ucrt_base=%ProgramFiles(x86)%\Windows Kits\10\
-if exist %ucrt_base% (
- set ucrt_version=
- for /f "delims=" %%i in ('dir /b /on "!ucrt_base!\Include"') do (
- set ucrt_version=%%i
- )
- echo ** uCRT%TAB%%TAB%!ucrt_version!
- set ucrt_include=%ucrt_base%Include\!ucrt_version!\ucrt
- set ucrt_lib=%ucrt_base%Lib\!ucrt_version!
- set ucrt_lib_arch=!ucrt_lib!\ucrt\%ARCH_S%
-)
-
-
-:: Setup INCLUDE paths.
-set INCLUDE_CLI=/I. /I"%JNI_INCLUDEDIR%" /I"%JNI_PLATFORMINCLUDEDIR%"
-
-if defined USE_EXT_MSCNG (
- set INCLUDE_CLI=!INCLUDE_CLI! /I"%mscng_include%"
-)
-
-echo ** INCLUDE%TAB%%TAB%%INCLUDE%
-echo ** INCLUDE_CLI%TAB%%INCLUDE_CLI%
-
-
-:: Setup LIB paths.
-set LIBPATH=/LIBPATH:"%JNI_LIBDIR%"
-
-if defined USE_EXT_MSCNG (
- set LIBPATH=!LIBPATH! /LIBPATH:"%mscng_lib_arch%"
-)
-
-echo ** LIB%TAB%%TAB%%LIB%
-echo ** LIBPATH%TAB%%TAB%%LIBPATH%
-
-
-:: Setup DEBUB options.
-set OTHER_CLI=
-if defined DEBUG (
- set OTHER_CLI=/Od /Z7
-) else (
- set OTHER_CLI=/O2
-)
-
-echo ** OTHER_CLI%TAB%%OTHER_CLI%
-echo.
-
-echo ^>^> %CC% /W2 /EHsc %OTHER_CLI% %INCLUDE_CLI% mscng.c c_utils.c c_timing.c bcrypt.lib jvm.lib kernel32.lib /Femscng_provider.dll /LD /link %LIBPATH% /nologo
-echo.
-
-%CC% /W2 /EHsc %OTHER_CLI% %INCLUDE_CLI% mscng.c c_utils.c c_timing.c bcrypt.lib jvm.lib kernel32.lib /Femscng_provider.dll /LD /link %LIBPATH% /nologo
+@if not defined _echo echo off +setlocal EnableDelayedExpansion + +:: ENV variables respected: +:: - JAVA_HOME +:: - CC +:: - USE_EXT_MSCNG +:: - DEBUG + +:: See if we are cleaning. +if "%1" == "clean" ( + echo ** cleaning + del *.dll *.exp *.lib *.obj + exit +) + +set TAB= + + +:: Determine arch. +reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL 2>&1 && (set ARCH=32& set ARCH_S=x86& set ARCH_VS=x86) || (set ARCH=64& set ARCH_S=x64& set ARCH_VS=amd64) + +echo ** ARCH%TAB%%TAB%%ARCH_S% + + +:: Find a working visual studio environment. +set found=0 +set vsw_path="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" + +set vs_path= +for /f "usebackq delims=" %%i in (`%vsw_path% -nologo -prerelease -latest -property installationPath`) do ( + if exist "%%i\Common7\Tools\vsdevcmd.bat" ( + echo ** VsDevCmd%TAB%%TAB%%%i\Common7\Tools\vsdevcmd.bat + call "%%i\Common7\Tools\vsdevcmd.bat" -no_logo -arch=%ARCH_VS% + if ERRORLEVEL 1 ( + echo nope. + ) else ( + set found=1 + set vs_path=%%i + break + ) + ) +) + +:: Test if we have a visual studio env. +if %found% EQU 0 ( + echo Working VsDevCmd not found. + exit /b 2 +) + +echo ** VS_PATH%TAB%%TAB%%vs_path% + + +:: Try to find vcruntime. +set vc_base=%vs_path%\VC\Tools\MSVC\ +if exist %vc_base% ( + set vc_version= + for /f "delims=" %%i in ('dir /b /on "!vc_base!"') do ( + set vc_version=%%i + ) + echo ** VC_VERSION%TAB%!vc_version! + set vc_include=%vc_base%!vc_version!\include + set vc_lib=%vc_base%!vc_version!\lib\%ARCH_S% +) + + +:: Get the paths to Microsoft CNG SDK. +set root_rel=..\..\..\..\..\..\..\ +set mscng_rel_include=ext\mscng\10\Include +set mscng_rel_lib=ext\mscng\10\Lib + +pushd %root_rel% +pushd %mscng_rel_include% +set mscng_include=%CD% +popd +pushd %mscng_rel_lib% +set mscng_lib=%CD% +popd +popd + +set mscng_lib_arch=%mscng_lib%\X%ARCH% + +echo ** CNG_INCLUDE%TAB%%mscng_include% +echo ** CNG_LIB%TAB%%TAB%%mscng_lib_arch% + + +:: Get the paths to Java JNI. +if not defined JAVA_HOME ( + set jva= + for /f "delims=" %%i in ('where javac') do ( + set jva=%%~dpi + ) + pushd !jva!\.. + set JAVA_HOME=!CD! + popd +) + +echo ** JAVA_HOME%TAB%%JAVA_HOME% + +set JNI_INCLUDEDIR=%JAVA_HOME%\include +set JNI_PLATFORMINCLUDEDIR=%JNI_INCLUDEDIR%\win32 +set JNI_LIBDIR=%JAVA_HOME%\lib + + +:: Setup binaries. +if not defined CC ( + set CC=cl.exe +) + +echo ** CC%TAB%%TAB%%CC% + + +:: Try to find uCRT. +set ucrt_base=%ProgramFiles(x86)%\Windows Kits\10\ +if exist %ucrt_base% ( + set ucrt_version= + for /f "delims=" %%i in ('dir /b /on "!ucrt_base!\Include"') do ( + set ucrt_version=%%i + ) + echo ** uCRT%TAB%%TAB%!ucrt_version! + set ucrt_include=%ucrt_base%Include\!ucrt_version!\ucrt + set ucrt_lib=%ucrt_base%Lib\!ucrt_version! + set ucrt_lib_arch=!ucrt_lib!\ucrt\%ARCH_S% +) + + +:: Setup INCLUDE paths. +set INCLUDE_CLI=/I. /I"%JNI_INCLUDEDIR%" /I"%JNI_PLATFORMINCLUDEDIR%" + +if defined USE_EXT_MSCNG ( + set INCLUDE_CLI=!INCLUDE_CLI! /I"%mscng_include%" +) + +echo ** INCLUDE%TAB%%TAB%%INCLUDE% +echo ** INCLUDE_CLI%TAB%%INCLUDE_CLI% + + +:: Setup LIB paths. +set LIBPATH=/LIBPATH:"%JNI_LIBDIR%" + +if defined USE_EXT_MSCNG ( + set LIBPATH=!LIBPATH! /LIBPATH:"%mscng_lib_arch%" +) + +echo ** LIB%TAB%%TAB%%LIB% +echo ** LIBPATH%TAB%%TAB%%LIBPATH% + + +:: Setup DEBUB options. +set OTHER_CLI= +if defined DEBUG ( + set OTHER_CLI=/Od /Z7 +) else ( + set OTHER_CLI=/O2 +) + +echo ** OTHER_CLI%TAB%%OTHER_CLI% +echo. + +echo ^>^> %CC% /W2 /EHsc %OTHER_CLI% %INCLUDE_CLI% mscng.c c_utils.c c_timing.c bcrypt.lib jvm.lib kernel32.lib /Femscng_provider.dll /LD /link %LIBPATH% /nologo +echo. + +%CC% /W2 /EHsc %OTHER_CLI% %INCLUDE_CLI% mscng.c c_utils.c c_timing.c bcrypt.lib jvm.lib kernel32.lib /Femscng_provider.dll /LD /link %LIBPATH% /nologo diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java index 81bd387..81bd387 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java index 7a8de83..7a8de83 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java index 1e68f78..1e68f78 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java index 636f423..636f423 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java index e036937..e036937 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java index d6e814c..d6e814c 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi.java diff --git a/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/boringssl.c index bca2ead..bca2ead 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/boringssl.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/botan.cpp index c0d249c..c0d249c 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/botan.cpp diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.c index 018ceda..018ceda 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.h index e12ccdd..e12ccdd 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_timing.h diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_utils.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.c index 46286fd..46286fd 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/c_utils.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_utils.h b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.h index f2f3f2f..f2f3f2f 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/c_utils.h +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/c_utils.h diff --git a/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp index 20d9a3c..20d9a3c 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp diff --git a/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp index ed26c01..ed26c01 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cpp_utils.hpp diff --git a/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp index eb782b7..eb782b7 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp diff --git a/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/gcrypt.c index 5d29d2c..5d29d2c 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/gcrypt.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/ippcp.c index 98a4c36..98a4c36 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/ippcp.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/libressl.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/libressl.c index 79227f8..79227f8 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/libressl.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/libressl.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/matrixssl.c index 8324dd4..8324dd4 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/matrixssl.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mbedtls.c index 2cff6ff..2cff6ff 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mbedtls.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/mscng.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mscng.c index a182b98..bb27887 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/mscng.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/mscng.c @@ -1,1273 +1,1273 @@ -#include <windows.h>
-#include <bcrypt.h>
-#include "native.h"
-
-#include "c_timing.h"
-#include "c_utils.h"
-
-// BCRYPT and NT things.
-#define NT_SUCCESS(status) (((NTSTATUS)(status)) >= 0)
-#define NT_FAILURE(status) !NT_SUCCESS(status)
-
-#define STATUS_SUCCESS 0x00000000
-#define STATUS_INVALID_SIGNATURE 0xC000A000
-
-typedef struct {
- ULONG dwVersion; // Version of the structure
- ECC_CURVE_TYPE_ENUM dwCurveType; // Supported curve types.
- ECC_CURVE_ALG_ID_ENUM dwCurveGenerationAlgId; // For X.592 verification purposes, if we include Seed we will need to include the algorithm ID.
- ULONG cbFieldLength; // Byte length of the fields P, A, B, X, Y.
- ULONG cbSubgroupOrder; // Byte length of the subgroup.
- ULONG cbCofactor; // Byte length of cofactor of G in E.
- ULONG cbSeed; // Byte length of the seed used to generate the curve.
-} BCRYPT_ECC_PARAMETER_HEADER;
-
-// Provider things
-static jclass provider_class;
-
-#define KEYFLAG_IMPLICIT 0 // Mscng native key, over named curve
-#define KEYFLAG_EXPLICIT 1 // Mscng native key, over explicit ecc parameters
-#define KEYFLAG_NIST 2 // Mscng native key, over NIST parameters, custom ECDH/ECDSA_P* algo
-#define KEYFLAG_OTHER 3 // Other key, explicit ecc parameters
-
-JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_createProvider(JNIEnv *env, jobject self) {
- jclass local_provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeProvider$Mscng");
- provider_class = (*env)->NewGlobalRef(env, local_provider_class);
-
- jmethodID init = (*env)->GetMethodID(env, local_provider_class, "<init>", "(Ljava/lang/String;DLjava/lang/String;)V");
-
- jstring name = (*env)->NewStringUTF(env, "Microsoft CNG");
- double version = 1.0;
-
- return (*env)->NewObject(env, provider_class, init, name, version, name);
-}
-
-JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeProvider_00024Mscng_setup(JNIEnv *env, jobject self) {
- INIT_PROVIDER(env, provider_class);
-
- ADD_KPG(env, self, "ECDH", "MscngECDH");
- ADD_KPG(env, self, "ECDSA", "MscngECDSA");
-
- ADD_KA(env, self, "ECDHwithSHA1KDF(CNG)", "MscngECDHwithSHA1KDF");
- ADD_KA(env, self, "ECDHwithSHA256KDF(CNG)", "MscngECDHwithSHA256KDF");
- ADD_KA(env, self, "ECDHwithSHA384KDF(CNG)", "MscngECDHwithSHA384KDF");
- ADD_KA(env, self, "ECDHwithSHA512KDF(CNG)", "MscngECDHwithSHA512KDF");
-
- ADD_SIG(env, self, "SHA1withECDSA", "MscngECDSAwithSHA1");
- ADD_SIG(env, self, "SHA256withECDSA", "MscngECDSAwithSHA256");
- ADD_SIG(env, self, "SHA384withECDSA", "MscngECDSAwithSHA384");
- ADD_SIG(env, self, "SHA512withECDSA", "MscngECDSAwithSHA112");
-
- init_classes(env, "Mscng");
-}
-
-typedef struct {
- LPCSTR name;
- ULONG bits;
-} named_curve_t;
-
-static named_curve_t named_curves[] = {
- {"curve25519", 256}, {"brainpoolP160r1", 160}, {"brainpoolP160t1", 160}, {"brainpoolP192r1", 192}, {"brainpoolP192t1", 192},
- {"brainpoolP224r1", 224}, {"brainpoolP224t1", 224}, {"brainpoolP256r1", 256}, {"brainpoolP256t1", 256}, {"brainpoolP320r1", 320},
- {"brainpoolP320t1", 320}, {"brainpoolP384r1", 384}, {"brainpoolP384t1", 384}, {"brainpoolP512r1", 512}, {"brainpoolP512t1", 512},
- {"ec192wapi", 192}, {"nistP192", 192}, {"nistP224", 224}, {"nistP256", 256}, {"nistP384", 384},
- {"nistP521", 521}, {"numsP256t1", 256}, {"numsP384t1", 384}, {"numsP512t1", 512}, {"secP160k1", 160},
- {"secP160r1", 160}, {"secP160r2", 160}, {"secP192k1", 192}, {"secP192r1", 192}, {"secP224k1", 224},
- {"secP224r1", 224}, {"secP256k1", 256}, {"secP256r1", 256}, {"secP384r1", 384}, {"secP521r1", 521},
- {"wtls12", 224}, {"wtls7", 160}, {"wtls9", 160}, {"x962P192v1", 192}, {"x962P192v2", 192},
- {"x962P192v3", 192}, {"x962P239v1", 239}, {"x962P239v2", 239}, {"x962P239v3", 239}, {"x962P256v1", 256}};
-
-static const named_curve_t *lookup_curve(const char *name) {
- for (size_t i = 0; i < sizeof(named_curves) / sizeof(named_curve_t); ++i) {
- if (strcmp(name, named_curves[i].name) == 0) {
- return &named_curves[i];
- }
- }
- return NULL;
-}
-
-static ULONG utf_16to8(NPSTR *out_buf, LPCWSTR in_str) {
- INT result = WideCharToMultiByte(CP_UTF8, 0, in_str, -1, NULL, 0, NULL, NULL);
- *out_buf = calloc(result, 1);
- return WideCharToMultiByte(CP_UTF8, 0, in_str, -1, *out_buf, result, NULL, NULL);
-}
-
-static ULONG utf_8to16(NWPSTR *out_buf, LPCSTR in_str) {
- INT result = MultiByteToWideChar(CP_UTF8, 0, in_str, -1, NULL, 0);
- *out_buf = calloc(result * sizeof(WCHAR), 1);
- return MultiByteToWideChar(CP_UTF8, 0, in_str, -1, *out_buf, result);
-}
-
-/**
- * Convert Java String to UTF-16 NWPSTR null-terminated.
- * Returns: Length of NWPSTR in bytes!
- */
-static ULONG utf_strto16(NWPSTR *out_buf, JNIEnv *env, jobject str) {
- jsize len = (*env)->GetStringLength(env, str);
- *out_buf = calloc(len * sizeof(jchar) + 1, 1);
- const jchar *chars = (*env)->GetStringChars(env, str, NULL);
- memcpy(*out_buf, chars, len * sizeof(jchar));
- (*env)->ReleaseStringChars(env, str, chars);
- return len * sizeof(jchar);
-}
-
-JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getCurves(JNIEnv *env, jobject self) {
- jclass hash_set_class = (*env)->FindClass(env, "java/util/TreeSet");
-
- jmethodID hash_set_ctr = (*env)->GetMethodID(env, hash_set_class, "<init>", "()V");
- jmethodID hash_set_add = (*env)->GetMethodID(env, hash_set_class, "add", "(Ljava/lang/Object;)Z");
-
- jobject result = (*env)->NewObject(env, hash_set_class, hash_set_ctr);
-
- NTSTATUS status;
- BCRYPT_ALG_HANDLE handle;
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&handle, BCRYPT_ECDH_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- return result;
- }
-
- ULONG bufSize;
- if (NT_FAILURE(status = BCryptGetProperty(handle, BCRYPT_ECC_CURVE_NAME_LIST, NULL, 0, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptGetProperty(length only)\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- return result;
- }
-
- BCRYPT_ECC_CURVE_NAMES *curves = (BCRYPT_ECC_CURVE_NAMES *)calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptGetProperty(handle, BCRYPT_ECC_CURVE_NAME_LIST, (PBYTE)curves, bufSize, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptGetProperty(whole)\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- free(curves);
- return result;
- }
-
- for (size_t i = 0; i < curves->dwEccCurveNames; ++i) {
- NPSTR curve_name;
- ULONG len = utf_16to8(&curve_name, curves->pEccCurveNames[i]);
- jstring c_name = (*env)->NewStringUTF(env, curve_name);
- (*env)->CallBooleanMethod(env, result, hash_set_add, c_name);
- free(curve_name);
- }
-
- free(curves);
-
- BCryptCloseAlgorithmProvider(handle, 0);
- return result;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_keysizeSupported(JNIEnv *env,
- jobject self,
- jint keysize) {
- switch (keysize) {
- case 256:
- case 384:
- case 521:
- return JNI_TRUE;
- default:
- return JNI_FALSE;
- }
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_paramsSupported(JNIEnv *env,
- jobject self,
- jobject params) {
- if (params == NULL) {
- return JNI_FALSE;
- }
-
- if ((*env)->IsInstanceOf(env, params, ecgen_parameter_spec_class)) {
- jmethodID get_name = (*env)->GetMethodID(env, ecgen_parameter_spec_class, "getName", "()Ljava/lang/String;");
- jstring name = (*env)->CallObjectMethod(env, params, get_name);
- const char *utf_name = (*env)->GetStringUTFChars(env, name, NULL);
- const named_curve_t *curve = lookup_curve(utf_name);
- (*env)->ReleaseStringUTFChars(env, name, utf_name);
- return curve == NULL ? JNI_FALSE : JNI_TRUE;
- } else if ((*env)->IsInstanceOf(env, params, ec_parameter_spec_class)) {
- jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;");
- jobject curve = (*env)->CallObjectMethod(env, params, get_curve);
-
- jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;");
- jobject field = (*env)->CallObjectMethod(env, curve, get_field);
-
- if ((*env)->IsInstanceOf(env, field, fp_field_class)) {
- return JNI_TRUE;
- } else {
- return JNI_FALSE;
- }
- } else {
- return JNI_FALSE;
- }
-}
-
-static jobject bytes_to_biginteger(JNIEnv *env, PBYTE bytes, int len) {
- jmethodID biginteger_init = (*env)->GetMethodID(env, biginteger_class, "<init>", "(I[B)V");
- jbyteArray byte_array = (*env)->NewByteArray(env, len);
- jbyte *data = (*env)->GetByteArrayElements(env, byte_array, NULL);
- memcpy(data, bytes, len);
- (*env)->ReleaseByteArrayElements(env, byte_array, data, 0);
- jobject result = (*env)->NewObject(env, biginteger_class, biginteger_init, 1, byte_array);
- return result;
-}
-
-static void biginteger_to_bytes(JNIEnv *env, jobject bigint, PBYTE bytes, ULONG len) {
- jmethodID to_byte_array = (*env)->GetMethodID(env, biginteger_class, "toByteArray", "()[B");
-
- jbyteArray byte_array = (jbyteArray)(*env)->CallObjectMethod(env, bigint, to_byte_array);
- jsize byte_length = (*env)->GetArrayLength(env, byte_array);
- jbyte *byte_data = (*env)->GetByteArrayElements(env, byte_array, NULL);
- memcpy(bytes, &byte_data[byte_length - len], len);
- (*env)->ReleaseByteArrayElements(env, byte_array, byte_data, JNI_ABORT);
-}
-
-static jobject create_ec_param_spec(JNIEnv *env, PBYTE eccParams, PULONG paramLength) {
- //
- // BCRYPT_ECCFULLKEY_BLOB header
- // P[cbFieldLength] Prime specifying the base field.
- // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p
- // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p
- // Gx[cbFieldLength] X-coordinate of the base point.
- // Gy[cbFieldLength] Y-coordinate of the base point.
- // n[cbSubgroupOrder] Order of the group generated by G = (x,y)
- // h[cbCofactor] Cofactor of G in E.
- // S[cbSeed] Seed of the curve.
-
- BCRYPT_ECCFULLKEY_BLOB *header = (BCRYPT_ECCFULLKEY_BLOB *)eccParams;
- PBYTE paramsStart = &eccParams[sizeof(BCRYPT_ECCFULLKEY_BLOB)];
-
- // cbFieldLength
- PBYTE P = paramsStart;
- PBYTE A = P + header->cbFieldLength;
- PBYTE B = A + header->cbFieldLength;
- PBYTE GX = B + header->cbFieldLength;
- PBYTE GY = GX + header->cbFieldLength;
-
- // cbSubgroupOrder
- PBYTE N = GY + header->cbFieldLength;
-
- // cbCofactor
- PBYTE H = N + header->cbSubgroupOrder;
-
- // cbSeed
- PBYTE S = H + header->cbCofactor;
-
- *paramLength =
- sizeof(BCRYPT_ECCFULLKEY_BLOB) + 5 * header->cbFieldLength + header->cbSubgroupOrder + header->cbCofactor + header->cbSeed;
-
- jobject p_int = bytes_to_biginteger(env, P, header->cbFieldLength);
-
- jmethodID fp_field_init = (*env)->GetMethodID(env, fp_field_class, "<init>", "(Ljava/math/BigInteger;)V");
- jobject field = (*env)->NewObject(env, fp_field_class, fp_field_init, p_int);
-
- jobject a_int = bytes_to_biginteger(env, A, header->cbFieldLength);
- jobject b_int = bytes_to_biginteger(env, B, header->cbFieldLength);
-
- jmethodID elliptic_curve_init = (*env)->GetMethodID(env, elliptic_curve_class, "<init>",
- "(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V");
- jobject elliptic_curve = (*env)->NewObject(env, elliptic_curve_class, elliptic_curve_init, field, a_int, b_int);
-
- jobject gx_int = bytes_to_biginteger(env, GX, header->cbFieldLength);
- jobject gy_int = bytes_to_biginteger(env, GY, header->cbFieldLength);
-
- jmethodID point_init = (*env)->GetMethodID(env, point_class, "<init>", "(Ljava/math/BigInteger;Ljava/math/BigInteger;)V");
- jobject g = (*env)->NewObject(env, point_class, point_init, gx_int, gy_int);
-
- jobject n_int = bytes_to_biginteger(env, N, header->cbSubgroupOrder);
-
- jobject h_int = bytes_to_biginteger(env, H, header->cbCofactor);
- jmethodID bigint_to_int = (*env)->GetMethodID(env, biginteger_class, "intValue", "()I");
- jint cof = (*env)->CallIntMethod(env, h_int, bigint_to_int);
-
- jmethodID ec_parameter_spec_init = (*env)->GetMethodID(
- env, ec_parameter_spec_class, "<init>", "(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V");
- return (*env)->NewObject(env, ec_parameter_spec_class, ec_parameter_spec_init, elliptic_curve, g, n_int, cof);
-}
-
-static ULONG create_curve(JNIEnv *env, jobject params, PBYTE *curve) {
- jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;");
- jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve);
-
- jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;");
- jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field);
-
- jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I");
- jint bits = (*env)->CallIntMethod(env, field, get_bits);
- jint bytes = (bits + 7) / 8;
-
- jmethodID get_a = (*env)->GetMethodID(env, elliptic_curve_class, "getA", "()Ljava/math/BigInteger;");
- jobject a = (*env)->CallObjectMethod(env, elliptic_curve, get_a);
-
- jmethodID get_b = (*env)->GetMethodID(env, elliptic_curve_class, "getB", "()Ljava/math/BigInteger;");
- jobject b = (*env)->CallObjectMethod(env, elliptic_curve, get_b);
-
- jmethodID get_p = (*env)->GetMethodID(env, fp_field_class, "getP", "()Ljava/math/BigInteger;");
- jobject p = (*env)->CallObjectMethod(env, field, get_p);
-
- jmethodID get_g = (*env)->GetMethodID(env, ec_parameter_spec_class, "getGenerator", "()Ljava/security/spec/ECPoint;");
- jobject g = (*env)->CallObjectMethod(env, params, get_g);
-
- jmethodID get_x = (*env)->GetMethodID(env, point_class, "getAffineX", "()Ljava/math/BigInteger;");
- jobject gx = (*env)->CallObjectMethod(env, g, get_x);
-
- jmethodID get_y = (*env)->GetMethodID(env, point_class, "getAffineY", "()Ljava/math/BigInteger;");
- jobject gy = (*env)->CallObjectMethod(env, g, get_y);
-
- jmethodID get_n = (*env)->GetMethodID(env, ec_parameter_spec_class, "getOrder", "()Ljava/math/BigInteger;");
- jobject n = (*env)->CallObjectMethod(env, params, get_n);
-
- jmethodID get_h = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCofactor", "()I");
- jint h = (*env)->CallIntMethod(env, params, get_h);
-
- jmethodID get_bitlength = (*env)->GetMethodID(env, biginteger_class, "bitLength", "()I");
- jint order_bits = (*env)->CallIntMethod(env, n, get_bitlength);
- jint order_bytes = (order_bits + 7) / 8;
-
- // header_size + 5*bytes + order_bytes + cof_size + 0
- ULONG bufSize = sizeof(BCRYPT_ECC_PARAMETER_HEADER) + 5 * bytes + order_bytes + 1 + 0;
- *curve = calloc(bufSize, 1);
- BCRYPT_ECC_PARAMETER_HEADER *header = (BCRYPT_ECC_PARAMETER_HEADER *)*curve;
- header->dwVersion = 1;
- header->dwCurveType = 1; // 1 -> Prime short Weierstrass, 2 -> Prime Twisted Edwards, 3 -> Montgomery
- header->dwCurveGenerationAlgId = 0;
- header->cbFieldLength = bytes;
- header->cbSubgroupOrder = order_bytes;
- header->cbCofactor = 1;
- header->cbSeed = 0;
-
- PBYTE paramsStart = &(*curve)[sizeof(BCRYPT_ECC_PARAMETER_HEADER)];
-
- biginteger_to_bytes(env, p, paramsStart, bytes);
- biginteger_to_bytes(env, a, paramsStart + bytes, bytes);
- biginteger_to_bytes(env, b, paramsStart + 2 * bytes, bytes);
- biginteger_to_bytes(env, gx, paramsStart + 3 * bytes, bytes);
- biginteger_to_bytes(env, gy, paramsStart + 4 * bytes, bytes);
- biginteger_to_bytes(env, n, paramsStart + 5 * bytes, order_bytes);
- PBYTE cof_ptr = (PBYTE)(paramsStart + 5 * bytes + order_bytes);
- *cof_ptr = (BYTE)h;
- return bufSize;
-}
-
-static ULONG init_algo(JNIEnv *env, BCRYPT_ALG_HANDLE *handle, jint *keyflag, NWPSTR *curve_name, LPCWSTR algo, jobject params) {
- NTSTATUS status;
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(handle, algo, MS_PRIMITIVE_PROVIDER, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- return 0;
- }
- ULONG result = 0;
- if ((*env)->IsInstanceOf(env, params, ecgen_parameter_spec_class)) {
- jmethodID get_name = (*env)->GetMethodID(env, ecgen_parameter_spec_class, "getName", "()Ljava/lang/String;");
- jstring name = (*env)->CallObjectMethod(env, params, get_name);
- jint utf_length = (*env)->GetStringUTFLength(env, name);
- PUCHAR chars = calloc(utf_length + 1, 1);
- (*env)->GetStringUTFRegion(env, name, 0, utf_length, chars);
- const named_curve_t *curve = lookup_curve(chars);
- ULONG ret = utf_8to16(curve_name, chars);
- if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_CURVE_NAME, (PUCHAR)*curve_name, ret * sizeof(WCHAR), 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptSetProperty\n", status);
- return 0;
- }
- free(chars);
- result = curve->bits;
- *keyflag = KEYFLAG_IMPLICIT;
- } else if ((*env)->IsInstanceOf(env, params, ec_parameter_spec_class)) {
- PBYTE curve;
- ULONG curveLen = create_curve(env, params, &curve);
- if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_PARAMETERS, curve, curveLen, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptSetProperty\n", status);
- return 0;
- }
- free(curve);
-
- jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;");
- jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve);
-
- jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;");
- jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field);
-
- jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I");
- jint bits = (*env)->CallIntMethod(env, field, get_bits);
- result = bits;
- *keyflag = KEYFLAG_EXPLICIT;
- *curve_name = NULL;
- }
- return result;
-}
-
-static jobject key_to_privkey(JNIEnv *env, BCRYPT_KEY_HANDLE key, jint flag, LPCWSTR curve) {
- NTSTATUS status;
- ULONG bufSize = 0;
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, NULL, 0, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, length only)\n", status);
- return NULL;
- }
- if (bufSize == 0) {
- printf("buf 0\n");
- return NULL;
- }
-
- PBYTE fullBuf = calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, fullBuf, bufSize, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, whole)\n", status);
- free(fullBuf);
- return NULL;
- }
-
- ULONG paramLength;
- jobject ec_priv_param_spec = create_ec_param_spec(env, fullBuf, ¶mLength);
-
- // fullBuf looks like:
- // BCRYPT_ECCFULLKEY_BLOB header
- // P[cbFieldLength] Prime specifying the base field.
- // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p
- // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p
- // Gx[cbFieldLength] X-coordinate of the base point.
- // Gy[cbFieldLength] Y-coordinate of the base point.
- // n[cbSubgroupOrder] Order of the group generated by G = (x,y)
- // h[cbCofactor] Cofactor of G in E.
- // S[cbSeed] Seed of the curve.
- // Qx[cbFieldLength] X-coordinate of the public point.
- // Qy[cbFieldLength] Y-coordinate of the public point.
- // d[cbSubgroupOrder] Private key.
- BCRYPT_ECCFULLKEY_BLOB *privHeader = (BCRYPT_ECCFULLKEY_BLOB *)fullBuf;
- PBYTE priv_x = &fullBuf[paramLength];
- PBYTE priv_y = priv_x + privHeader->cbFieldLength;
- PBYTE priv = priv_y + privHeader->cbFieldLength;
-
- jbyteArray meta_bytes = NULL;
- jbyteArray header_bytes = NULL;
- switch (flag) {
- case 0: {
- // meta = curve
- jint meta_len = (wcslen(curve) + 1) * sizeof(WCHAR);
- meta_bytes = (*env)->NewByteArray(env, meta_len);
- jbyte *meta_data = (*env)->GetByteArrayElements(env, meta_bytes, NULL);
- memcpy(meta_data, curve, meta_len);
- (*env)->ReleaseByteArrayElements(env, meta_bytes, meta_data, 0);
- }
- case 1:
- case 2: {
- // meta = null
- // header = full
- header_bytes = (*env)->NewByteArray(env, paramLength);
- jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL);
- memcpy(header_data, fullBuf, paramLength);
- (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0);
- break;
- }
- default:
- // header = small
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPRIVATE_BLOB, NULL, 0, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, length only)\n", status);
- free(fullBuf);
- return NULL;
- }
- if (bufSize == 0) {
- printf("buf 0\n");
- free(fullBuf);
- return NULL;
- }
- PBYTE smallBuf = calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPRIVATE_BLOB, smallBuf, bufSize, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, whole)\n", status);
- free(fullBuf);
- free(smallBuf);
- return NULL;
- }
- // smallBuf looks like:
- // BCRYPT_ECCKEY_BLOB header
- // Qx[cbFieldLength] X-coordinate of the public point.
- // Qy[cbFieldLength] Y-coordinate of the public point.
- // d[cbSubgroupOrder] Private key.
- header_bytes = (*env)->NewByteArray(env, sizeof(BCRYPT_ECCKEY_BLOB));
- jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL);
- memcpy(header_data, smallBuf, sizeof(BCRYPT_ECCKEY_BLOB));
- (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0);
- free(smallBuf);
- break;
- }
-
- jbyteArray x_bytes = (*env)->NewByteArray(env, privHeader->cbFieldLength);
- jbyte *x_data = (*env)->GetByteArrayElements(env, x_bytes, NULL);
- memcpy(x_data, priv_x, privHeader->cbFieldLength);
- (*env)->ReleaseByteArrayElements(env, x_bytes, x_data, 0);
-
- jbyteArray y_bytes = (*env)->NewByteArray(env, privHeader->cbFieldLength);
- jbyte *y_data = (*env)->GetByteArrayElements(env, y_bytes, NULL);
- memcpy(y_data, priv_y, privHeader->cbFieldLength);
- (*env)->ReleaseByteArrayElements(env, y_bytes, y_data, 0);
-
- jbyteArray priv_bytes = (*env)->NewByteArray(env, privHeader->cbSubgroupOrder);
- jbyte *key_priv = (*env)->GetByteArrayElements(env, priv_bytes, NULL);
- memcpy(key_priv, priv, privHeader->cbSubgroupOrder);
- (*env)->ReleaseByteArrayElements(env, priv_bytes, key_priv, 0);
-
- free(fullBuf);
-
- jmethodID ec_priv_init = (*env)->GetMethodID(env, privkey_class, "<init>", "(I[B[B[B[B[BLjava/security/spec/ECParameterSpec;)V");
- return (*env)->NewObject(env, privkey_class, ec_priv_init, flag, meta_bytes, header_bytes, x_bytes, y_bytes, priv_bytes,
- ec_priv_param_spec);
-}
-
-static jobject key_to_pubkey(JNIEnv *env, BCRYPT_KEY_HANDLE key, jint flag, LPCWSTR curve) {
- NTSTATUS status;
- ULONG bufSize = 0;
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, NULL, 0, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, length only)\n", status);
- return NULL;
- }
- if (bufSize == 0) {
- printf("err0\n");
- return NULL;
- }
-
- PBYTE fullBuf = calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, fullBuf, bufSize, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, whole)\n", status);
- return NULL;
- }
-
- ULONG paramLength;
- jobject ec_pub_param_spec = create_ec_param_spec(env, fullBuf, ¶mLength);
-
- // fullBuf looks like:
- // BCRYPT_ECCFULLKEY_BLOB header
- // P[cbFieldLength] Prime specifying the base field.
- // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p
- // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p
- // Gx[cbFieldLength] X-coordinate of the base point.
- // Gy[cbFieldLength] Y-coordinate of the base point.
- // n[cbSubgroupOrder] Order of the group generated by G = (x,y)
- // h[cbCofactor] Cofactor of G in E.
- // S[cbSeed] Seed of the curve.
- // Qx[cbFieldLength] X-coordinate of the public point.
- // Qy[cbFieldLength] Y-coordinate of the public point.
- BCRYPT_ECCFULLKEY_BLOB *pubHeader = (BCRYPT_ECCFULLKEY_BLOB *)fullBuf;
- PBYTE pub_x = &fullBuf[paramLength];
- PBYTE pub_y = pub_x + pubHeader->cbFieldLength;
-
- jbyteArray meta_bytes = NULL;
- jbyteArray header_bytes = NULL;
- switch (flag) {
- case 0: {
- // meta = curve
- jint meta_len = (wcslen(curve) + 1) * sizeof(WCHAR);
- meta_bytes = (*env)->NewByteArray(env, meta_len);
- jbyte *meta_data = (*env)->GetByteArrayElements(env, meta_bytes, NULL);
- memcpy(meta_data, curve, meta_len);
- (*env)->ReleaseByteArrayElements(env, meta_bytes, meta_data, 0);
- }
- case 1:
- case 2: {
- header_bytes = (*env)->NewByteArray(env, paramLength);
- jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL);
- memcpy(header_data, pubHeader, paramLength);
- (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0);
- break;
- }
- default:
- // header = small
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPUBLIC_BLOB, NULL, 0, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, length only)\n", status);
- free(fullBuf);
- return NULL;
- }
- if (bufSize == 0) {
- printf("buf 0\n");
- free(fullBuf);
- return NULL;
- }
- PBYTE smallBuf = calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPUBLIC_BLOB, smallBuf, bufSize, &bufSize, 0))) {
- wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, whole)\n", status);
- free(fullBuf);
- free(smallBuf);
- return NULL;
- }
- // smallBuf looks like:
- // BCRYPT_ECCKEY_BLOB header
- // Qx[cbFieldLength] X-coordinate of the public point.
- // Qy[cbFieldLength] Y-coordinate of the public point.
- header_bytes = (*env)->NewByteArray(env, sizeof(BCRYPT_ECCKEY_BLOB));
- jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL);
- memcpy(header_data, smallBuf, sizeof(BCRYPT_ECCKEY_BLOB));
- (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0);
- free(smallBuf);
- break;
- }
-
- jbyteArray x_bytes = (*env)->NewByteArray(env, pubHeader->cbFieldLength);
- jbyte *x_data = (*env)->GetByteArrayElements(env, x_bytes, NULL);
- memcpy(x_data, pub_x, pubHeader->cbFieldLength);
- (*env)->ReleaseByteArrayElements(env, x_bytes, x_data, 0);
-
- jbyteArray y_bytes = (*env)->NewByteArray(env, pubHeader->cbFieldLength);
- jbyte *y_data = (*env)->GetByteArrayElements(env, y_bytes, NULL);
- memcpy(y_data, pub_y, pubHeader->cbFieldLength);
- (*env)->ReleaseByteArrayElements(env, y_bytes, y_data, 0);
-
- free(fullBuf);
-
- jmethodID ec_pub_init = (*env)->GetMethodID(env, pubkey_class, "<init>", "(I[B[B[B[BLjava/security/spec/ECParameterSpec;)V");
- return (*env)->NewObject(env, pubkey_class, ec_pub_init, flag, meta_bytes, header_bytes, x_bytes, y_bytes, ec_pub_param_spec);
-}
-
-JNIEXPORT jobject JNICALL
-Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_generate__ILjava_security_SecureRandom_2(JNIEnv *env,
- jobject self,
- jint keysize,
- jobject random) {
- NTSTATUS status;
- BCRYPT_ALG_HANDLE handle = NULL;
-
- jclass mscng_kpg_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi$Mscng");
- jfieldID type_id = (*env)->GetFieldID(env, mscng_kpg_class, "type", "Ljava/lang/String;");
- jstring type = (jstring)(*env)->GetObjectField(env, self, type_id);
- const char *type_data = (*env)->GetStringUTFChars(env, type, NULL);
- LPCWSTR algo;
- if (strcmp(type_data, "ECDH") == 0) {
- switch (keysize) {
- case 256:
- algo = BCRYPT_ECDH_P256_ALGORITHM;
- break;
- case 384:
- algo = BCRYPT_ECDH_P384_ALGORITHM;
- break;
- case 521:
- algo = BCRYPT_ECDH_P521_ALGORITHM;
- break;
- default:
- // unreachable
- return NULL;
- }
- } else if (strcmp(type_data, "ECDSA") == 0) {
- switch (keysize) {
- case 256:
- algo = BCRYPT_ECDSA_P256_ALGORITHM;
- break;
- case 384:
- algo = BCRYPT_ECDSA_P384_ALGORITHM;
- break;
- case 521:
- algo = BCRYPT_ECDSA_P521_ALGORITHM;
- break;
- default:
- // unreachable
- return NULL;
- }
- } else {
- // unreachable
- return NULL;
- }
- (*env)->ReleaseStringUTFChars(env, type, type_data);
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&handle, algo, MS_PRIMITIVE_PROVIDER, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider", status);
- return NULL;
- }
-
- BCRYPT_KEY_HANDLE key = NULL;
-
- native_timing_start();
- status = BCryptGenerateKeyPair(handle, &key, keysize, 0);
- native_timing_pause();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGenerateKeyPair\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- return NULL;
- }
-
- native_timing_restart();
- status = BCryptFinalizeKeyPair(key, 0);
- native_timing_stop();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptFinalizeKeyPair\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- return NULL;
- }
-
- jobject privkey = key_to_privkey(env, key, KEYFLAG_NIST, NULL);
- jobject pubkey = key_to_pubkey(env, key, KEYFLAG_NIST, NULL);
-
- jmethodID keypair_init = (*env)->GetMethodID(env, keypair_class, "<init>", "(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V");
-
- BCryptDestroyKey(key);
- BCryptCloseAlgorithmProvider(handle, 0);
- return (*env)->NewObject(env, keypair_class, keypair_init, pubkey, privkey);
-}
-
-JNIEXPORT jobject JNICALL
-Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_generate__Ljava_security_spec_AlgorithmParameterSpec_2Ljava_security_SecureRandom_2(
- JNIEnv *env, jobject self, jobject params, jobject random) {
- NTSTATUS status;
- BCRYPT_ALG_HANDLE handle = NULL;
- BCRYPT_KEY_HANDLE key = NULL;
-
- jclass mscng_kpg_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi$Mscng");
- jfieldID type_id = (*env)->GetFieldID(env, mscng_kpg_class, "type", "Ljava/lang/String;");
- jstring type = (jstring)(*env)->GetObjectField(env, self, type_id);
- const char *type_data = (*env)->GetStringUTFChars(env, type, NULL);
- LPCWSTR algo;
- if (strcmp(type_data, "ECDH") == 0) {
- algo = BCRYPT_ECDH_ALGORITHM;
- } else if (strcmp(type_data, "ECDSA") == 0) {
- algo = BCRYPT_ECDSA_ALGORITHM;
- } else {
- // unreachable
- return NULL;
- }
- (*env)->ReleaseStringUTFChars(env, type, type_data);
-
- jint keyflag;
- NWPSTR curveName;
- ULONG bits = init_algo(env, &handle, &keyflag, &curveName, algo, params);
- if (bits == 0) {
- throw_new(env, "java/security/GeneralSecurityException", "Couldn't initialize algo.");
- return NULL;
- }
-
- native_timing_start();
- status = BCryptGenerateKeyPair(handle, &key, bits, 0);
- native_timing_pause();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGenerateKeyPair\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- return NULL;
- }
-
- native_timing_restart();
- status = BCryptFinalizeKeyPair(key, 0);
- native_timing_stop();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptFinalizeKeyPair\n", status);
- BCryptCloseAlgorithmProvider(handle, 0);
- return NULL;
- }
-
- jobject privkey = key_to_privkey(env, key, keyflag, curveName);
- jobject pubkey = key_to_pubkey(env, key, keyflag, curveName);
-
- if (curveName) {
- free(curveName);
- }
-
- jmethodID keypair_init = (*env)->GetMethodID(env, keypair_class, "<init>", "(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V");
-
- BCryptDestroyKey(key);
- BCryptCloseAlgorithmProvider(handle, 0);
- return (*env)->NewObject(env, keypair_class, keypair_init, pubkey, privkey);
-}
-
-static NTSTATUS init_use_algo(JNIEnv *env, BCRYPT_ALG_HANDLE *handle, LPCWSTR type, jint keyflag, jbyteArray meta, jobject params) {
- LPCWSTR ecdh_algos[] = {BCRYPT_ECDH_ALGORITHM, BCRYPT_ECDH_P256_ALGORITHM, BCRYPT_ECDH_P384_ALGORITHM, BCRYPT_ECDH_P521_ALGORITHM};
- LPCWSTR ecdsa_algos[] = {BCRYPT_ECDSA_ALGORITHM, BCRYPT_ECDSA_P256_ALGORITHM, BCRYPT_ECDSA_P384_ALGORITHM, BCRYPT_ECDSA_P521_ALGORITHM};
-
- LPCWSTR *algos;
- LPCWSTR algo;
- if (lstrcmpW(type, BCRYPT_ECDH_ALGORITHM) == 0) {
- algos = ecdh_algos;
- } else if (lstrcmpW(type, BCRYPT_ECDSA_ALGORITHM) == 0) {
- algos = ecdsa_algos;
- } else {
- // unreachable
- return STATUS_INVALID_PARAMETER;
- }
-
- switch (keyflag) {
- case KEYFLAG_IMPLICIT:
- case KEYFLAG_EXPLICIT:
- case KEYFLAG_OTHER:
- algo = algos[0];
- break;
- case KEYFLAG_NIST: {
- jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;");
- jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve);
-
- jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;");
- jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field);
-
- jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I");
- jint bits = (*env)->CallIntMethod(env, field, get_bits);
- switch (bits) {
- case 256:
- algo = algos[1];
- break;
- case 384:
- algo = algos[2];
- break;
- case 521:
- algo = algos[3];
- break;
- default:
- return STATUS_INVALID_PARAMETER;
- }
- break;
- }
- }
- NTSTATUS status;
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(handle, algo, MS_PRIMITIVE_PROVIDER, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- return status;
- }
-
- switch (keyflag) {
- case KEYFLAG_IMPLICIT: {
- jint meta_len = (*env)->GetArrayLength(env, meta);
- jbyte *meta_data = (*env)->GetByteArrayElements(env, meta, NULL);
- // if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_CURVE_NAME, meta_data, meta_len, 0))) {
- // throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSetProperty(curve name)\n",
- //status);
- // (*env)->ReleaseByteArrayElements(env, meta, meta_data, JNI_ABORT);
- // return status;
- //}
- (*env)->ReleaseByteArrayElements(env, meta, meta_data, JNI_ABORT);
- break;
- }
- case KEYFLAG_EXPLICIT:
- case KEYFLAG_OTHER: {
- PBYTE curve;
- ULONG curve_len = create_curve(env, params, &curve);
- if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_PARAMETERS, curve, curve_len, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSetProperty(parameters)\n",
- status);
- free(curve);
- return status;
- }
- free(curve);
- break;
- }
- }
- return STATUS_SUCCESS;
-}
-
-static jint get_keyflag(JNIEnv *env, jobject key) {
- if ((*env)->IsInstanceOf(env, key, pubkey_class) || (*env)->IsInstanceOf(env, key, privkey_class)) {
- jclass key_class = (*env)->GetObjectClass(env, key);
- jmethodID get_flag = (*env)->GetMethodID(env, key_class, "getFlag", "()I");
- return (*env)->CallIntMethod(env, key, get_flag);
- } else {
- return KEYFLAG_OTHER;
- }
-}
-
-static jbyteArray get_meta(JNIEnv *env, jobject key) {
- if ((*env)->IsInstanceOf(env, key, pubkey_class) || (*env)->IsInstanceOf(env, key, privkey_class)) {
- jclass key_class = (*env)->GetObjectClass(env, key);
- jmethodID get_meta = (*env)->GetMethodID(env, key_class, "getMeta", "()[B");
- return (jbyteArray)(*env)->CallObjectMethod(env, key, get_meta);
- } else {
- return NULL;
- }
-}
-
-JNIEXPORT jbyteArray JNICALL
-Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyAgreementSpi_00024Mscng_generateSecret__Ljava_security_interfaces_ECPublicKey_2Ljava_security_interfaces_ECPrivateKey_2Ljava_security_spec_AlgorithmParameterSpec_2(
- JNIEnv *env, jobject self, jobject pubkey, jobject privkey, jobject params) {
- NTSTATUS status;
-
- jclass mscng_ka_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi$Mscng");
- jfieldID type_id = (*env)->GetFieldID(env, mscng_ka_class, "type", "Ljava/lang/String;");
- jstring type = (jstring)(*env)->GetObjectField(env, self, type_id);
- const char *type_data = (*env)->GetStringUTFChars(env, type, NULL);
- LPCWSTR kdf_algo;
- if (strcmp(type_data, "ECDHwithSHA1KDF(CNG)") == 0) {
- kdf_algo = BCRYPT_SHA1_ALGORITHM;
- } else if (strcmp(type_data, "ECDHwithSHA256KDF(CNG)") == 0) {
- kdf_algo = BCRYPT_SHA256_ALGORITHM;
- } else if (strcmp(type_data, "ECDHwithSHA384KDF(CNG)") == 0) {
- kdf_algo = BCRYPT_SHA384_ALGORITHM;
- } else if (strcmp(type_data, "ECDHwithSHA512KDF(CNG)") == 0) {
- kdf_algo = BCRYPT_SHA512_ALGORITHM;
- } else {
- // unreachable
- return NULL;
- }
- (*env)->ReleaseStringUTFChars(env, type, type_data);
-
- BCRYPT_ALG_HANDLE kaHandle = NULL;
-
- jint pub_flag = get_keyflag(env, pubkey);
- if (pub_flag == KEYFLAG_OTHER) {
- throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native public key.");
- return NULL;
- }
- jbyteArray meta = get_meta(env, pubkey);
-
- if (NT_FAILURE(status = init_use_algo(env, &kaHandle, BCRYPT_ECDH_ALGORITHM, pub_flag, meta, params))) {
- return NULL;
- }
-
- BCRYPT_KEY_HANDLE pkey = NULL;
- BCRYPT_KEY_HANDLE skey = NULL;
-
- jmethodID get_data_priv = (*env)->GetMethodID(env, pubkey_class, "getData", "()[B");
- jbyteArray pubkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, pubkey, get_data_priv);
-
- jint pub_length = (*env)->GetArrayLength(env, pubkey_barray);
- jbyte *pub_data = (*env)->GetByteArrayElements(env, pubkey_barray, NULL);
- if (NT_FAILURE(status = BCryptImportKeyPair(kaHandle, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, &pkey, pub_data, pub_length, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair(pub)\n", status);
- BCryptCloseAlgorithmProvider(kaHandle, 0);
- (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT);
- return NULL;
- }
- (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT);
-
- jint priv_flag = get_keyflag(env, privkey);
- if (priv_flag == KEYFLAG_OTHER) {
- throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native private key.");
- return NULL;
- }
-
- jmethodID get_data_pub = (*env)->GetMethodID(env, privkey_class, "getData", "()[B");
- jbyteArray privkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, privkey, get_data_pub);
-
- jint priv_length = (*env)->GetArrayLength(env, privkey_barray);
- jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey_barray, NULL);
- if (NT_FAILURE(status = BCryptImportKeyPair(kaHandle, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, &skey, priv_data, priv_length, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair(priv)\n", status);
- BCryptCloseAlgorithmProvider(kaHandle, 0);
- BCryptDestroyKey(pkey);
- (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT);
- return NULL;
- }
- (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT);
-
- BCRYPT_SECRET_HANDLE ka = NULL;
-
- native_timing_start();
- status = BCryptSecretAgreement(skey, pkey, &ka, 0);
- native_timing_stop();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSecretAgreement\n", status);
- BCryptCloseAlgorithmProvider(kaHandle, 0);
- BCryptDestroyKey(pkey);
- BCryptDestroyKey(skey);
- return NULL;
- }
-
- BCryptBufferDesc paramList = {0};
- BCryptBuffer kdfParams[1] = {0};
- kdfParams[0].BufferType = KDF_HASH_ALGORITHM;
- kdfParams[0].cbBuffer = (DWORD)((wcslen(kdf_algo) + 1) * sizeof(WCHAR));
- kdfParams[0].pvBuffer = (PVOID)kdf_algo;
- paramList.cBuffers = 1;
- paramList.pBuffers = kdfParams;
- paramList.ulVersion = BCRYPTBUFFER_VERSION;
-
- ULONG bufSize = 0;
- if (NT_FAILURE(status = BCryptDeriveKey(ka, BCRYPT_KDF_HASH, ¶mList, NULL, 0, &bufSize, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptDeriveKey(length only)\n", status);
- return NULL;
- }
-
- PBYTE derived = calloc(bufSize, 1);
- if (NT_FAILURE(status = BCryptDeriveKey(ka, BCRYPT_KDF_HASH, ¶mList, derived, bufSize, &bufSize, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptDeriveKey(whole)\n", status);
- return NULL;
- }
-
- jbyteArray result = (*env)->NewByteArray(env, bufSize);
- jbyte *result_data = (*env)->GetByteArrayElements(env, result, NULL);
- memcpy(result_data, derived, bufSize);
- (*env)->ReleaseByteArrayElements(env, result, result_data, 0);
-
- free(derived);
- BCryptDestroyKey(pkey);
- BCryptDestroyKey(skey);
- BCryptDestroySecret(ka);
- BCryptCloseAlgorithmProvider(kaHandle, 0);
- return result;
-}
-
-JNIEXPORT jobject JNICALL
-Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyAgreementSpi_00024Mscng_generateSecret__Ljava_security_interfaces_ECPublicKey_2Ljava_security_interfaces_ECPrivateKey_2Ljava_security_spec_AlgorithmParameterSpec_2Ljava_lang_String_2(
- JNIEnv *env, jobject self, jobject pubkey, jobject privkey, jobject params, jstring algorithm) {
- throw_new(env, "java/lang/UnsupportedOperationException", "Not supported.");
- return NULL;
-}
-
-static LPCWSTR get_sighash_algo(JNIEnv *env, jobject self) {
- jclass mscng_sig_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi$Mscng");
- jfieldID type_id = (*env)->GetFieldID(env, mscng_sig_class, "type", "Ljava/lang/String;");
- jstring type = (jstring)(*env)->GetObjectField(env, self, type_id);
- const char *type_data = (*env)->GetStringUTFChars(env, type, NULL);
- LPCWSTR hash_algo;
- if (strcmp(type_data, "SHA1withECDSA") == 0) {
- hash_algo = BCRYPT_SHA1_ALGORITHM;
- } else if (strcmp(type_data, "SHA256withECDSA") == 0) {
- hash_algo = BCRYPT_SHA256_ALGORITHM;
- } else if (strcmp(type_data, "SHA384withECDSA") == 0) {
- hash_algo = BCRYPT_SHA384_ALGORITHM;
- } else if (strcmp(type_data, "SHA512withECDSA") == 0) {
- hash_algo = BCRYPT_SHA512_ALGORITHM;
- } else {
- // unreachable
- return NULL;
- }
- (*env)->ReleaseStringUTFChars(env, type, type_data);
- return hash_algo;
-}
-
-JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSignatureSpi_00024Mscng_sign(JNIEnv *env, jobject self,
- jbyteArray data, jobject privkey,
- jobject params) {
- NTSTATUS status;
- LPCWSTR hash_algo = get_sighash_algo(env, self);
-
- BCRYPT_ALG_HANDLE sigHandle = NULL;
-
- jint keyflag = get_keyflag(env, privkey);
- if (keyflag == KEYFLAG_OTHER) {
- throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native private key.");
- return NULL;
- }
- jbyteArray meta = get_meta(env, privkey);
-
- if (NT_FAILURE(status = init_use_algo(env, &sigHandle, BCRYPT_ECDSA_ALGORITHM, keyflag, meta, params))) {
- return NULL;
- }
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&sigHandle, BCRYPT_ECDSA_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- return NULL;
- }
-
- BCRYPT_ALG_HANDLE hashHandle = NULL;
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&hashHandle, hash_algo, NULL, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- return NULL;
- }
-
- DWORD dummy = 0;
- DWORD hash_len = 0;
- if (NT_FAILURE(status = BCryptGetProperty(hashHandle, BCRYPT_HASH_LENGTH, (PBYTE)&hash_len, sizeof(DWORD), &dummy, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGetProperty(hash len)\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- return NULL;
- }
-
- PBYTE hash = calloc(hash_len, 1);
-
- jint data_len = (*env)->GetArrayLength(env, data);
- jbyte *data_bytes = (*env)->GetByteArrayElements(env, data, NULL);
- native_timing_start();
- status = BCryptHash(hashHandle, NULL, 0, data_bytes, data_len, hash, hash_len);
- native_timing_pause();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptHash\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT);
- return NULL;
- }
- (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT);
-
- BCRYPT_KEY_HANDLE skey = NULL;
-
- jmethodID get_data = (*env)->GetMethodID(env, privkey_class, "getData", "()[B");
- jbyteArray privkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, privkey, get_data);
-
- jint priv_length = (*env)->GetArrayLength(env, privkey_barray);
- jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey_barray, NULL);
- if (NT_FAILURE(status = BCryptImportKeyPair(sigHandle, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, &skey, priv_data, priv_length, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT);
- return NULL;
- }
- (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT);
-
- DWORD sig_len = 0;
- native_timing_restart();
- status = BCryptSignHash(skey, NULL, hash, hash_len, NULL, 0, &sig_len, 0);
- native_timing_pause();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSignHash(len only)\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- return NULL;
- }
-
- PBYTE sig_buf = calloc(sig_len, 1);
-
- native_timing_restart();
- status = BCryptSignHash(skey, NULL, hash, hash_len, sig_buf, sig_len, &sig_len, 0);
- native_timing_stop();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSignHash(do)\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- free(sig_buf);
- return NULL;
- }
-
- DWORD half_len = sig_len / 2;
- jobject sig = asn1_der_encode(env, sig_buf, half_len, sig_buf + half_len, half_len);
-
- free(hash);
- free(sig_buf);
- BCryptDestroyKey(skey);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
-
- return sig;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSignatureSpi_00024Mscng_verify(JNIEnv *env, jobject self,
- jbyteArray sig, jbyteArray data,
- jobject pubkey, jobject params) {
- NTSTATUS status;
- LPCWSTR hash_algo = get_sighash_algo(env, self);
-
- BCRYPT_ALG_HANDLE sigHandle = NULL;
-
- jint keyflag = get_keyflag(env, pubkey);
- if (keyflag == KEYFLAG_OTHER) { // TODO: This is not necessary
- throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native public key.");
- return JNI_FALSE;
- }
- jbyteArray meta = get_meta(env, pubkey);
-
- if (NT_FAILURE(status = init_use_algo(env, &sigHandle, BCRYPT_ECDSA_ALGORITHM, keyflag, meta, params))) {
- return JNI_FALSE;
- }
-
- BCRYPT_ALG_HANDLE hashHandle = NULL;
-
- if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&hashHandle, hash_algo, NULL, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- return JNI_FALSE;
- }
-
- DWORD dummy = 0;
- DWORD hash_len = 0;
- if (NT_FAILURE(status = BCryptGetProperty(hashHandle, BCRYPT_HASH_LENGTH, (PBYTE)&hash_len, sizeof(DWORD), &dummy, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGetProperty(hash len)\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- return JNI_FALSE;
- }
-
- PBYTE hash = calloc(hash_len, 1);
-
- jint data_len = (*env)->GetArrayLength(env, data);
- jbyte *data_bytes = (*env)->GetByteArrayElements(env, data, NULL);
- native_timing_start();
- status = BCryptHash(hashHandle, NULL, 0, data_bytes, data_len, hash, hash_len);
- native_timing_pause();
-
- if (NT_FAILURE(status)) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptHash\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT);
- return JNI_FALSE;
- }
- (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT);
-
- BCRYPT_KEY_HANDLE pkey = NULL;
-
- jmethodID get_data = (*env)->GetMethodID(env, pubkey_class, "getData", "()[B");
- jbyteArray pubkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, pubkey, get_data);
-
- jint pub_length = (*env)->GetArrayLength(env, pubkey_barray);
- jbyte *pub_data = (*env)->GetByteArrayElements(env, pubkey_barray, NULL);
- if (NT_FAILURE(status = BCryptImportKeyPair(sigHandle, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, &pkey, pub_data, pub_length, 0))) {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair\n", status);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT);
- return JNI_FALSE;
- }
- (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT);
-
- jmethodID get_n = (*env)->GetMethodID(env, ec_parameter_spec_class, "getOrder", "()Ljava/math/BigInteger;");
- jobject n = (*env)->CallObjectMethod(env, params, get_n);
- jmethodID get_bitlength = (*env)->GetMethodID(env, biginteger_class, "bitLength", "()I");
- jint ord_bits = (*env)->CallIntMethod(env, n, get_bitlength);
- jint ord_bytes = (ord_bits + 7) / 8;
-
- jint sig_len = (*env)->GetArrayLength(env, sig);
- jbyte *sig_data = (*env)->GetByteArrayElements(env, sig, NULL);
- jbyte *r;
- size_t rlen;
- jbyte *s;
- size_t slen;
- bool decode = asn1_der_decode(env, sig, &r, &rlen, &s, &slen);
- (*env)->ReleaseByteArrayElements(env, sig, sig_data, JNI_ABORT);
-
- if (!decode) {
- throw_new(env, "java/security/GeneralSecurityException", "Error decoding sig.");
- BCryptDestroyKey(pkey);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- free(hash);
- return JNI_FALSE;
- }
-
- jbyte *r_cpy = r;
- jbyte *s_cpy = s;
- if (rlen > ord_bytes) {
- r_cpy += ord_bytes - rlen;
- }
- if (slen > ord_bytes) {
- s_cpy += ord_bytes - slen;
- }
- if (rlen < ord_bytes) {
- r_cpy = _alloca(ord_bytes);
- memset(r_cpy, 0, ord_bytes);
- memcpy(r_cpy, r + (ord_bytes - rlen), ord_bytes);
- }
- if (slen < ord_bytes) {
- s_cpy = _alloca(ord_bytes);
- memset(s_cpy, 0, ord_bytes);
- memcpy(s_cpy, s + (ord_bytes - slen), ord_bytes);
- }
- rlen = ord_bytes;
- slen = ord_bytes;
-
- UCHAR *sig_full = calloc(rlen + slen, 1);
- memcpy(sig_full, r_cpy, rlen);
- memcpy(sig_full + rlen, s_cpy, slen);
- free(r);
- free(s);
-
- native_timing_restart();
- NTSTATUS result = BCryptVerifySignature(pkey, NULL, hash, hash_len, sig_full, rlen + slen, 0);
- native_timing_stop();
-
- free(hash);
- free(sig_full);
- BCryptDestroyKey(pkey);
- BCryptCloseAlgorithmProvider(hashHandle, 0);
- BCryptCloseAlgorithmProvider(sigHandle, 0);
-
- if (result == STATUS_SUCCESS) {
- return JNI_TRUE;
- } else if (result == STATUS_INVALID_SIGNATURE) {
- return JNI_FALSE;
- } else {
- throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptVerifySignature\n", status);
- return JNI_FALSE;
- }
+#include <windows.h> +#include <bcrypt.h> +#include "native.h" + +#include "c_timing.h" +#include "c_utils.h" + +// BCRYPT and NT things. +#define NT_SUCCESS(status) (((NTSTATUS)(status)) >= 0) +#define NT_FAILURE(status) !NT_SUCCESS(status) + +#define STATUS_SUCCESS 0x00000000 +#define STATUS_INVALID_SIGNATURE 0xC000A000 + +typedef struct { + ULONG dwVersion; // Version of the structure + ECC_CURVE_TYPE_ENUM dwCurveType; // Supported curve types. + ECC_CURVE_ALG_ID_ENUM dwCurveGenerationAlgId; // For X.592 verification purposes, if we include Seed we will need to include the algorithm ID. + ULONG cbFieldLength; // Byte length of the fields P, A, B, X, Y. + ULONG cbSubgroupOrder; // Byte length of the subgroup. + ULONG cbCofactor; // Byte length of cofactor of G in E. + ULONG cbSeed; // Byte length of the seed used to generate the curve. +} BCRYPT_ECC_PARAMETER_HEADER; + +// Provider things +static jclass provider_class; + +#define KEYFLAG_IMPLICIT 0 // Mscng native key, over named curve +#define KEYFLAG_EXPLICIT 1 // Mscng native key, over explicit ecc parameters +#define KEYFLAG_NIST 2 // Mscng native key, over NIST parameters, custom ECDH/ECDSA_P* algo +#define KEYFLAG_OTHER 3 // Other key, explicit ecc parameters + +JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_createProvider(JNIEnv *env, jobject self) { + jclass local_provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeProvider$Mscng"); + provider_class = (*env)->NewGlobalRef(env, local_provider_class); + + jmethodID init = (*env)->GetMethodID(env, local_provider_class, "<init>", "(Ljava/lang/String;DLjava/lang/String;)V"); + + jstring name = (*env)->NewStringUTF(env, "Microsoft CNG"); + double version = 1.0; + + return (*env)->NewObject(env, provider_class, init, name, version, name); +} + +JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeProvider_00024Mscng_setup(JNIEnv *env, jobject self) { + INIT_PROVIDER(env, provider_class); + + ADD_KPG(env, self, "ECDH", "MscngECDH"); + ADD_KPG(env, self, "ECDSA", "MscngECDSA"); + + ADD_KA(env, self, "ECDHwithSHA1KDF(CNG)", "MscngECDHwithSHA1KDF"); + ADD_KA(env, self, "ECDHwithSHA256KDF(CNG)", "MscngECDHwithSHA256KDF"); + ADD_KA(env, self, "ECDHwithSHA384KDF(CNG)", "MscngECDHwithSHA384KDF"); + ADD_KA(env, self, "ECDHwithSHA512KDF(CNG)", "MscngECDHwithSHA512KDF"); + + ADD_SIG(env, self, "SHA1withECDSA", "MscngECDSAwithSHA1"); + ADD_SIG(env, self, "SHA256withECDSA", "MscngECDSAwithSHA256"); + ADD_SIG(env, self, "SHA384withECDSA", "MscngECDSAwithSHA384"); + ADD_SIG(env, self, "SHA512withECDSA", "MscngECDSAwithSHA112"); + + init_classes(env, "Mscng"); +} + +typedef struct { + LPCSTR name; + ULONG bits; +} named_curve_t; + +static named_curve_t named_curves[] = { + {"curve25519", 256}, {"brainpoolP160r1", 160}, {"brainpoolP160t1", 160}, {"brainpoolP192r1", 192}, {"brainpoolP192t1", 192}, + {"brainpoolP224r1", 224}, {"brainpoolP224t1", 224}, {"brainpoolP256r1", 256}, {"brainpoolP256t1", 256}, {"brainpoolP320r1", 320}, + {"brainpoolP320t1", 320}, {"brainpoolP384r1", 384}, {"brainpoolP384t1", 384}, {"brainpoolP512r1", 512}, {"brainpoolP512t1", 512}, + {"ec192wapi", 192}, {"nistP192", 192}, {"nistP224", 224}, {"nistP256", 256}, {"nistP384", 384}, + {"nistP521", 521}, {"numsP256t1", 256}, {"numsP384t1", 384}, {"numsP512t1", 512}, {"secP160k1", 160}, + {"secP160r1", 160}, {"secP160r2", 160}, {"secP192k1", 192}, {"secP192r1", 192}, {"secP224k1", 224}, + {"secP224r1", 224}, {"secP256k1", 256}, {"secP256r1", 256}, {"secP384r1", 384}, {"secP521r1", 521}, + {"wtls12", 224}, {"wtls7", 160}, {"wtls9", 160}, {"x962P192v1", 192}, {"x962P192v2", 192}, + {"x962P192v3", 192}, {"x962P239v1", 239}, {"x962P239v2", 239}, {"x962P239v3", 239}, {"x962P256v1", 256}}; + +static const named_curve_t *lookup_curve(const char *name) { + for (size_t i = 0; i < sizeof(named_curves) / sizeof(named_curve_t); ++i) { + if (strcmp(name, named_curves[i].name) == 0) { + return &named_curves[i]; + } + } + return NULL; +} + +static ULONG utf_16to8(NPSTR *out_buf, LPCWSTR in_str) { + INT result = WideCharToMultiByte(CP_UTF8, 0, in_str, -1, NULL, 0, NULL, NULL); + *out_buf = calloc(result, 1); + return WideCharToMultiByte(CP_UTF8, 0, in_str, -1, *out_buf, result, NULL, NULL); +} + +static ULONG utf_8to16(NWPSTR *out_buf, LPCSTR in_str) { + INT result = MultiByteToWideChar(CP_UTF8, 0, in_str, -1, NULL, 0); + *out_buf = calloc(result * sizeof(WCHAR), 1); + return MultiByteToWideChar(CP_UTF8, 0, in_str, -1, *out_buf, result); +} + +/** + * Convert Java String to UTF-16 NWPSTR null-terminated. + * Returns: Length of NWPSTR in bytes! + */ +static ULONG utf_strto16(NWPSTR *out_buf, JNIEnv *env, jobject str) { + jsize len = (*env)->GetStringLength(env, str); + *out_buf = calloc(len * sizeof(jchar) + 1, 1); + const jchar *chars = (*env)->GetStringChars(env, str, NULL); + memcpy(*out_buf, chars, len * sizeof(jchar)); + (*env)->ReleaseStringChars(env, str, chars); + return len * sizeof(jchar); +} + +JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getCurves(JNIEnv *env, jobject self) { + jclass hash_set_class = (*env)->FindClass(env, "java/util/TreeSet"); + + jmethodID hash_set_ctr = (*env)->GetMethodID(env, hash_set_class, "<init>", "()V"); + jmethodID hash_set_add = (*env)->GetMethodID(env, hash_set_class, "add", "(Ljava/lang/Object;)Z"); + + jobject result = (*env)->NewObject(env, hash_set_class, hash_set_ctr); + + NTSTATUS status; + BCRYPT_ALG_HANDLE handle; + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&handle, BCRYPT_ECDH_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + return result; + } + + ULONG bufSize; + if (NT_FAILURE(status = BCryptGetProperty(handle, BCRYPT_ECC_CURVE_NAME_LIST, NULL, 0, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptGetProperty(length only)\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + return result; + } + + BCRYPT_ECC_CURVE_NAMES *curves = (BCRYPT_ECC_CURVE_NAMES *)calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptGetProperty(handle, BCRYPT_ECC_CURVE_NAME_LIST, (PBYTE)curves, bufSize, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptGetProperty(whole)\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + free(curves); + return result; + } + + for (size_t i = 0; i < curves->dwEccCurveNames; ++i) { + NPSTR curve_name; + ULONG len = utf_16to8(&curve_name, curves->pEccCurveNames[i]); + jstring c_name = (*env)->NewStringUTF(env, curve_name); + (*env)->CallBooleanMethod(env, result, hash_set_add, c_name); + free(curve_name); + } + + free(curves); + + BCryptCloseAlgorithmProvider(handle, 0); + return result; +} + +JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_keysizeSupported(JNIEnv *env, + jobject self, + jint keysize) { + switch (keysize) { + case 256: + case 384: + case 521: + return JNI_TRUE; + default: + return JNI_FALSE; + } +} + +JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_paramsSupported(JNIEnv *env, + jobject self, + jobject params) { + if (params == NULL) { + return JNI_FALSE; + } + + if ((*env)->IsInstanceOf(env, params, ecgen_parameter_spec_class)) { + jmethodID get_name = (*env)->GetMethodID(env, ecgen_parameter_spec_class, "getName", "()Ljava/lang/String;"); + jstring name = (*env)->CallObjectMethod(env, params, get_name); + const char *utf_name = (*env)->GetStringUTFChars(env, name, NULL); + const named_curve_t *curve = lookup_curve(utf_name); + (*env)->ReleaseStringUTFChars(env, name, utf_name); + return curve == NULL ? JNI_FALSE : JNI_TRUE; + } else if ((*env)->IsInstanceOf(env, params, ec_parameter_spec_class)) { + jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;"); + jobject curve = (*env)->CallObjectMethod(env, params, get_curve); + + jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;"); + jobject field = (*env)->CallObjectMethod(env, curve, get_field); + + if ((*env)->IsInstanceOf(env, field, fp_field_class)) { + return JNI_TRUE; + } else { + return JNI_FALSE; + } + } else { + return JNI_FALSE; + } +} + +static jobject bytes_to_biginteger(JNIEnv *env, PBYTE bytes, int len) { + jmethodID biginteger_init = (*env)->GetMethodID(env, biginteger_class, "<init>", "(I[B)V"); + jbyteArray byte_array = (*env)->NewByteArray(env, len); + jbyte *data = (*env)->GetByteArrayElements(env, byte_array, NULL); + memcpy(data, bytes, len); + (*env)->ReleaseByteArrayElements(env, byte_array, data, 0); + jobject result = (*env)->NewObject(env, biginteger_class, biginteger_init, 1, byte_array); + return result; +} + +static void biginteger_to_bytes(JNIEnv *env, jobject bigint, PBYTE bytes, ULONG len) { + jmethodID to_byte_array = (*env)->GetMethodID(env, biginteger_class, "toByteArray", "()[B"); + + jbyteArray byte_array = (jbyteArray)(*env)->CallObjectMethod(env, bigint, to_byte_array); + jsize byte_length = (*env)->GetArrayLength(env, byte_array); + jbyte *byte_data = (*env)->GetByteArrayElements(env, byte_array, NULL); + memcpy(bytes, &byte_data[byte_length - len], len); + (*env)->ReleaseByteArrayElements(env, byte_array, byte_data, JNI_ABORT); +} + +static jobject create_ec_param_spec(JNIEnv *env, PBYTE eccParams, PULONG paramLength) { + // + // BCRYPT_ECCFULLKEY_BLOB header + // P[cbFieldLength] Prime specifying the base field. + // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p + // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p + // Gx[cbFieldLength] X-coordinate of the base point. + // Gy[cbFieldLength] Y-coordinate of the base point. + // n[cbSubgroupOrder] Order of the group generated by G = (x,y) + // h[cbCofactor] Cofactor of G in E. + // S[cbSeed] Seed of the curve. + + BCRYPT_ECCFULLKEY_BLOB *header = (BCRYPT_ECCFULLKEY_BLOB *)eccParams; + PBYTE paramsStart = &eccParams[sizeof(BCRYPT_ECCFULLKEY_BLOB)]; + + // cbFieldLength + PBYTE P = paramsStart; + PBYTE A = P + header->cbFieldLength; + PBYTE B = A + header->cbFieldLength; + PBYTE GX = B + header->cbFieldLength; + PBYTE GY = GX + header->cbFieldLength; + + // cbSubgroupOrder + PBYTE N = GY + header->cbFieldLength; + + // cbCofactor + PBYTE H = N + header->cbSubgroupOrder; + + // cbSeed + PBYTE S = H + header->cbCofactor; + + *paramLength = + sizeof(BCRYPT_ECCFULLKEY_BLOB) + 5 * header->cbFieldLength + header->cbSubgroupOrder + header->cbCofactor + header->cbSeed; + + jobject p_int = bytes_to_biginteger(env, P, header->cbFieldLength); + + jmethodID fp_field_init = (*env)->GetMethodID(env, fp_field_class, "<init>", "(Ljava/math/BigInteger;)V"); + jobject field = (*env)->NewObject(env, fp_field_class, fp_field_init, p_int); + + jobject a_int = bytes_to_biginteger(env, A, header->cbFieldLength); + jobject b_int = bytes_to_biginteger(env, B, header->cbFieldLength); + + jmethodID elliptic_curve_init = (*env)->GetMethodID(env, elliptic_curve_class, "<init>", + "(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V"); + jobject elliptic_curve = (*env)->NewObject(env, elliptic_curve_class, elliptic_curve_init, field, a_int, b_int); + + jobject gx_int = bytes_to_biginteger(env, GX, header->cbFieldLength); + jobject gy_int = bytes_to_biginteger(env, GY, header->cbFieldLength); + + jmethodID point_init = (*env)->GetMethodID(env, point_class, "<init>", "(Ljava/math/BigInteger;Ljava/math/BigInteger;)V"); + jobject g = (*env)->NewObject(env, point_class, point_init, gx_int, gy_int); + + jobject n_int = bytes_to_biginteger(env, N, header->cbSubgroupOrder); + + jobject h_int = bytes_to_biginteger(env, H, header->cbCofactor); + jmethodID bigint_to_int = (*env)->GetMethodID(env, biginteger_class, "intValue", "()I"); + jint cof = (*env)->CallIntMethod(env, h_int, bigint_to_int); + + jmethodID ec_parameter_spec_init = (*env)->GetMethodID( + env, ec_parameter_spec_class, "<init>", "(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V"); + return (*env)->NewObject(env, ec_parameter_spec_class, ec_parameter_spec_init, elliptic_curve, g, n_int, cof); +} + +static ULONG create_curve(JNIEnv *env, jobject params, PBYTE *curve) { + jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;"); + jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve); + + jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;"); + jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field); + + jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I"); + jint bits = (*env)->CallIntMethod(env, field, get_bits); + jint bytes = (bits + 7) / 8; + + jmethodID get_a = (*env)->GetMethodID(env, elliptic_curve_class, "getA", "()Ljava/math/BigInteger;"); + jobject a = (*env)->CallObjectMethod(env, elliptic_curve, get_a); + + jmethodID get_b = (*env)->GetMethodID(env, elliptic_curve_class, "getB", "()Ljava/math/BigInteger;"); + jobject b = (*env)->CallObjectMethod(env, elliptic_curve, get_b); + + jmethodID get_p = (*env)->GetMethodID(env, fp_field_class, "getP", "()Ljava/math/BigInteger;"); + jobject p = (*env)->CallObjectMethod(env, field, get_p); + + jmethodID get_g = (*env)->GetMethodID(env, ec_parameter_spec_class, "getGenerator", "()Ljava/security/spec/ECPoint;"); + jobject g = (*env)->CallObjectMethod(env, params, get_g); + + jmethodID get_x = (*env)->GetMethodID(env, point_class, "getAffineX", "()Ljava/math/BigInteger;"); + jobject gx = (*env)->CallObjectMethod(env, g, get_x); + + jmethodID get_y = (*env)->GetMethodID(env, point_class, "getAffineY", "()Ljava/math/BigInteger;"); + jobject gy = (*env)->CallObjectMethod(env, g, get_y); + + jmethodID get_n = (*env)->GetMethodID(env, ec_parameter_spec_class, "getOrder", "()Ljava/math/BigInteger;"); + jobject n = (*env)->CallObjectMethod(env, params, get_n); + + jmethodID get_h = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCofactor", "()I"); + jint h = (*env)->CallIntMethod(env, params, get_h); + + jmethodID get_bitlength = (*env)->GetMethodID(env, biginteger_class, "bitLength", "()I"); + jint order_bits = (*env)->CallIntMethod(env, n, get_bitlength); + jint order_bytes = (order_bits + 7) / 8; + + // header_size + 5*bytes + order_bytes + cof_size + 0 + ULONG bufSize = sizeof(BCRYPT_ECC_PARAMETER_HEADER) + 5 * bytes + order_bytes + 1 + 0; + *curve = calloc(bufSize, 1); + BCRYPT_ECC_PARAMETER_HEADER *header = (BCRYPT_ECC_PARAMETER_HEADER *)*curve; + header->dwVersion = 1; + header->dwCurveType = 1; // 1 -> Prime short Weierstrass, 2 -> Prime Twisted Edwards, 3 -> Montgomery + header->dwCurveGenerationAlgId = 0; + header->cbFieldLength = bytes; + header->cbSubgroupOrder = order_bytes; + header->cbCofactor = 1; + header->cbSeed = 0; + + PBYTE paramsStart = &(*curve)[sizeof(BCRYPT_ECC_PARAMETER_HEADER)]; + + biginteger_to_bytes(env, p, paramsStart, bytes); + biginteger_to_bytes(env, a, paramsStart + bytes, bytes); + biginteger_to_bytes(env, b, paramsStart + 2 * bytes, bytes); + biginteger_to_bytes(env, gx, paramsStart + 3 * bytes, bytes); + biginteger_to_bytes(env, gy, paramsStart + 4 * bytes, bytes); + biginteger_to_bytes(env, n, paramsStart + 5 * bytes, order_bytes); + PBYTE cof_ptr = (PBYTE)(paramsStart + 5 * bytes + order_bytes); + *cof_ptr = (BYTE)h; + return bufSize; +} + +static ULONG init_algo(JNIEnv *env, BCRYPT_ALG_HANDLE *handle, jint *keyflag, NWPSTR *curve_name, LPCWSTR algo, jobject params) { + NTSTATUS status; + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(handle, algo, MS_PRIMITIVE_PROVIDER, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + return 0; + } + ULONG result = 0; + if ((*env)->IsInstanceOf(env, params, ecgen_parameter_spec_class)) { + jmethodID get_name = (*env)->GetMethodID(env, ecgen_parameter_spec_class, "getName", "()Ljava/lang/String;"); + jstring name = (*env)->CallObjectMethod(env, params, get_name); + jint utf_length = (*env)->GetStringUTFLength(env, name); + PUCHAR chars = calloc(utf_length + 1, 1); + (*env)->GetStringUTFRegion(env, name, 0, utf_length, chars); + const named_curve_t *curve = lookup_curve(chars); + ULONG ret = utf_8to16(curve_name, chars); + if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_CURVE_NAME, (PUCHAR)*curve_name, ret * sizeof(WCHAR), 0))) { + wprintf(L"**** Error 0x%x returned by BCryptSetProperty\n", status); + return 0; + } + free(chars); + result = curve->bits; + *keyflag = KEYFLAG_IMPLICIT; + } else if ((*env)->IsInstanceOf(env, params, ec_parameter_spec_class)) { + PBYTE curve; + ULONG curveLen = create_curve(env, params, &curve); + if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_PARAMETERS, curve, curveLen, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptSetProperty\n", status); + return 0; + } + free(curve); + + jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;"); + jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve); + + jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;"); + jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field); + + jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I"); + jint bits = (*env)->CallIntMethod(env, field, get_bits); + result = bits; + *keyflag = KEYFLAG_EXPLICIT; + *curve_name = NULL; + } + return result; +} + +static jobject key_to_privkey(JNIEnv *env, BCRYPT_KEY_HANDLE key, jint flag, LPCWSTR curve) { + NTSTATUS status; + ULONG bufSize = 0; + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, NULL, 0, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, length only)\n", status); + return NULL; + } + if (bufSize == 0) { + printf("buf 0\n"); + return NULL; + } + + PBYTE fullBuf = calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, fullBuf, bufSize, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, whole)\n", status); + free(fullBuf); + return NULL; + } + + ULONG paramLength; + jobject ec_priv_param_spec = create_ec_param_spec(env, fullBuf, ¶mLength); + + // fullBuf looks like: + // BCRYPT_ECCFULLKEY_BLOB header + // P[cbFieldLength] Prime specifying the base field. + // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p + // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p + // Gx[cbFieldLength] X-coordinate of the base point. + // Gy[cbFieldLength] Y-coordinate of the base point. + // n[cbSubgroupOrder] Order of the group generated by G = (x,y) + // h[cbCofactor] Cofactor of G in E. + // S[cbSeed] Seed of the curve. + // Qx[cbFieldLength] X-coordinate of the public point. + // Qy[cbFieldLength] Y-coordinate of the public point. + // d[cbSubgroupOrder] Private key. + BCRYPT_ECCFULLKEY_BLOB *privHeader = (BCRYPT_ECCFULLKEY_BLOB *)fullBuf; + PBYTE priv_x = &fullBuf[paramLength]; + PBYTE priv_y = priv_x + privHeader->cbFieldLength; + PBYTE priv = priv_y + privHeader->cbFieldLength; + + jbyteArray meta_bytes = NULL; + jbyteArray header_bytes = NULL; + switch (flag) { + case 0: { + // meta = curve + jint meta_len = (wcslen(curve) + 1) * sizeof(WCHAR); + meta_bytes = (*env)->NewByteArray(env, meta_len); + jbyte *meta_data = (*env)->GetByteArrayElements(env, meta_bytes, NULL); + memcpy(meta_data, curve, meta_len); + (*env)->ReleaseByteArrayElements(env, meta_bytes, meta_data, 0); + } + case 1: + case 2: { + // meta = null + // header = full + header_bytes = (*env)->NewByteArray(env, paramLength); + jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL); + memcpy(header_data, fullBuf, paramLength); + (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0); + break; + } + default: + // header = small + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPRIVATE_BLOB, NULL, 0, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, length only)\n", status); + free(fullBuf); + return NULL; + } + if (bufSize == 0) { + printf("buf 0\n"); + free(fullBuf); + return NULL; + } + PBYTE smallBuf = calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPRIVATE_BLOB, smallBuf, bufSize, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, whole)\n", status); + free(fullBuf); + free(smallBuf); + return NULL; + } + // smallBuf looks like: + // BCRYPT_ECCKEY_BLOB header + // Qx[cbFieldLength] X-coordinate of the public point. + // Qy[cbFieldLength] Y-coordinate of the public point. + // d[cbSubgroupOrder] Private key. + header_bytes = (*env)->NewByteArray(env, sizeof(BCRYPT_ECCKEY_BLOB)); + jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL); + memcpy(header_data, smallBuf, sizeof(BCRYPT_ECCKEY_BLOB)); + (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0); + free(smallBuf); + break; + } + + jbyteArray x_bytes = (*env)->NewByteArray(env, privHeader->cbFieldLength); + jbyte *x_data = (*env)->GetByteArrayElements(env, x_bytes, NULL); + memcpy(x_data, priv_x, privHeader->cbFieldLength); + (*env)->ReleaseByteArrayElements(env, x_bytes, x_data, 0); + + jbyteArray y_bytes = (*env)->NewByteArray(env, privHeader->cbFieldLength); + jbyte *y_data = (*env)->GetByteArrayElements(env, y_bytes, NULL); + memcpy(y_data, priv_y, privHeader->cbFieldLength); + (*env)->ReleaseByteArrayElements(env, y_bytes, y_data, 0); + + jbyteArray priv_bytes = (*env)->NewByteArray(env, privHeader->cbSubgroupOrder); + jbyte *key_priv = (*env)->GetByteArrayElements(env, priv_bytes, NULL); + memcpy(key_priv, priv, privHeader->cbSubgroupOrder); + (*env)->ReleaseByteArrayElements(env, priv_bytes, key_priv, 0); + + free(fullBuf); + + jmethodID ec_priv_init = (*env)->GetMethodID(env, privkey_class, "<init>", "(I[B[B[B[B[BLjava/security/spec/ECParameterSpec;)V"); + return (*env)->NewObject(env, privkey_class, ec_priv_init, flag, meta_bytes, header_bytes, x_bytes, y_bytes, priv_bytes, + ec_priv_param_spec); +} + +static jobject key_to_pubkey(JNIEnv *env, BCRYPT_KEY_HANDLE key, jint flag, LPCWSTR curve) { + NTSTATUS status; + ULONG bufSize = 0; + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, NULL, 0, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, length only)\n", status); + return NULL; + } + if (bufSize == 0) { + printf("err0\n"); + return NULL; + } + + PBYTE fullBuf = calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, fullBuf, bufSize, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(full, whole)\n", status); + return NULL; + } + + ULONG paramLength; + jobject ec_pub_param_spec = create_ec_param_spec(env, fullBuf, ¶mLength); + + // fullBuf looks like: + // BCRYPT_ECCFULLKEY_BLOB header + // P[cbFieldLength] Prime specifying the base field. + // A[cbFieldLength] Coefficient A of the equation y^2 = x^3 + A*x + B mod p + // B[cbFieldLength] Coefficient B of the equation y^2 = x^3 + A*x + B mod p + // Gx[cbFieldLength] X-coordinate of the base point. + // Gy[cbFieldLength] Y-coordinate of the base point. + // n[cbSubgroupOrder] Order of the group generated by G = (x,y) + // h[cbCofactor] Cofactor of G in E. + // S[cbSeed] Seed of the curve. + // Qx[cbFieldLength] X-coordinate of the public point. + // Qy[cbFieldLength] Y-coordinate of the public point. + BCRYPT_ECCFULLKEY_BLOB *pubHeader = (BCRYPT_ECCFULLKEY_BLOB *)fullBuf; + PBYTE pub_x = &fullBuf[paramLength]; + PBYTE pub_y = pub_x + pubHeader->cbFieldLength; + + jbyteArray meta_bytes = NULL; + jbyteArray header_bytes = NULL; + switch (flag) { + case 0: { + // meta = curve + jint meta_len = (wcslen(curve) + 1) * sizeof(WCHAR); + meta_bytes = (*env)->NewByteArray(env, meta_len); + jbyte *meta_data = (*env)->GetByteArrayElements(env, meta_bytes, NULL); + memcpy(meta_data, curve, meta_len); + (*env)->ReleaseByteArrayElements(env, meta_bytes, meta_data, 0); + } + case 1: + case 2: { + header_bytes = (*env)->NewByteArray(env, paramLength); + jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL); + memcpy(header_data, pubHeader, paramLength); + (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0); + break; + } + default: + // header = small + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPUBLIC_BLOB, NULL, 0, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, length only)\n", status); + free(fullBuf); + return NULL; + } + if (bufSize == 0) { + printf("buf 0\n"); + free(fullBuf); + return NULL; + } + PBYTE smallBuf = calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptExportKey(key, NULL, BCRYPT_ECCPUBLIC_BLOB, smallBuf, bufSize, &bufSize, 0))) { + wprintf(L"**** Error 0x%x returned by BCryptExportKey(small, whole)\n", status); + free(fullBuf); + free(smallBuf); + return NULL; + } + // smallBuf looks like: + // BCRYPT_ECCKEY_BLOB header + // Qx[cbFieldLength] X-coordinate of the public point. + // Qy[cbFieldLength] Y-coordinate of the public point. + header_bytes = (*env)->NewByteArray(env, sizeof(BCRYPT_ECCKEY_BLOB)); + jbyte *header_data = (*env)->GetByteArrayElements(env, header_bytes, NULL); + memcpy(header_data, smallBuf, sizeof(BCRYPT_ECCKEY_BLOB)); + (*env)->ReleaseByteArrayElements(env, header_bytes, header_data, 0); + free(smallBuf); + break; + } + + jbyteArray x_bytes = (*env)->NewByteArray(env, pubHeader->cbFieldLength); + jbyte *x_data = (*env)->GetByteArrayElements(env, x_bytes, NULL); + memcpy(x_data, pub_x, pubHeader->cbFieldLength); + (*env)->ReleaseByteArrayElements(env, x_bytes, x_data, 0); + + jbyteArray y_bytes = (*env)->NewByteArray(env, pubHeader->cbFieldLength); + jbyte *y_data = (*env)->GetByteArrayElements(env, y_bytes, NULL); + memcpy(y_data, pub_y, pubHeader->cbFieldLength); + (*env)->ReleaseByteArrayElements(env, y_bytes, y_data, 0); + + free(fullBuf); + + jmethodID ec_pub_init = (*env)->GetMethodID(env, pubkey_class, "<init>", "(I[B[B[B[BLjava/security/spec/ECParameterSpec;)V"); + return (*env)->NewObject(env, pubkey_class, ec_pub_init, flag, meta_bytes, header_bytes, x_bytes, y_bytes, ec_pub_param_spec); +} + +JNIEXPORT jobject JNICALL +Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_generate__ILjava_security_SecureRandom_2(JNIEnv *env, + jobject self, + jint keysize, + jobject random) { + NTSTATUS status; + BCRYPT_ALG_HANDLE handle = NULL; + + jclass mscng_kpg_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi$Mscng"); + jfieldID type_id = (*env)->GetFieldID(env, mscng_kpg_class, "type", "Ljava/lang/String;"); + jstring type = (jstring)(*env)->GetObjectField(env, self, type_id); + const char *type_data = (*env)->GetStringUTFChars(env, type, NULL); + LPCWSTR algo; + if (strcmp(type_data, "ECDH") == 0) { + switch (keysize) { + case 256: + algo = BCRYPT_ECDH_P256_ALGORITHM; + break; + case 384: + algo = BCRYPT_ECDH_P384_ALGORITHM; + break; + case 521: + algo = BCRYPT_ECDH_P521_ALGORITHM; + break; + default: + // unreachable + return NULL; + } + } else if (strcmp(type_data, "ECDSA") == 0) { + switch (keysize) { + case 256: + algo = BCRYPT_ECDSA_P256_ALGORITHM; + break; + case 384: + algo = BCRYPT_ECDSA_P384_ALGORITHM; + break; + case 521: + algo = BCRYPT_ECDSA_P521_ALGORITHM; + break; + default: + // unreachable + return NULL; + } + } else { + // unreachable + return NULL; + } + (*env)->ReleaseStringUTFChars(env, type, type_data); + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&handle, algo, MS_PRIMITIVE_PROVIDER, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider", status); + return NULL; + } + + BCRYPT_KEY_HANDLE key = NULL; + + native_timing_start(); + status = BCryptGenerateKeyPair(handle, &key, keysize, 0); + native_timing_pause(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGenerateKeyPair\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + return NULL; + } + + native_timing_restart(); + status = BCryptFinalizeKeyPair(key, 0); + native_timing_stop(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptFinalizeKeyPair\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + return NULL; + } + + jobject privkey = key_to_privkey(env, key, KEYFLAG_NIST, NULL); + jobject pubkey = key_to_pubkey(env, key, KEYFLAG_NIST, NULL); + + jmethodID keypair_init = (*env)->GetMethodID(env, keypair_class, "<init>", "(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V"); + + BCryptDestroyKey(key); + BCryptCloseAlgorithmProvider(handle, 0); + return (*env)->NewObject(env, keypair_class, keypair_init, pubkey, privkey); +} + +JNIEXPORT jobject JNICALL +Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyPairGeneratorSpi_00024Mscng_generate__Ljava_security_spec_AlgorithmParameterSpec_2Ljava_security_SecureRandom_2( + JNIEnv *env, jobject self, jobject params, jobject random) { + NTSTATUS status; + BCRYPT_ALG_HANDLE handle = NULL; + BCRYPT_KEY_HANDLE key = NULL; + + jclass mscng_kpg_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyPairGeneratorSpi$Mscng"); + jfieldID type_id = (*env)->GetFieldID(env, mscng_kpg_class, "type", "Ljava/lang/String;"); + jstring type = (jstring)(*env)->GetObjectField(env, self, type_id); + const char *type_data = (*env)->GetStringUTFChars(env, type, NULL); + LPCWSTR algo; + if (strcmp(type_data, "ECDH") == 0) { + algo = BCRYPT_ECDH_ALGORITHM; + } else if (strcmp(type_data, "ECDSA") == 0) { + algo = BCRYPT_ECDSA_ALGORITHM; + } else { + // unreachable + return NULL; + } + (*env)->ReleaseStringUTFChars(env, type, type_data); + + jint keyflag; + NWPSTR curveName; + ULONG bits = init_algo(env, &handle, &keyflag, &curveName, algo, params); + if (bits == 0) { + throw_new(env, "java/security/GeneralSecurityException", "Couldn't initialize algo."); + return NULL; + } + + native_timing_start(); + status = BCryptGenerateKeyPair(handle, &key, bits, 0); + native_timing_pause(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGenerateKeyPair\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + return NULL; + } + + native_timing_restart(); + status = BCryptFinalizeKeyPair(key, 0); + native_timing_stop(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptFinalizeKeyPair\n", status); + BCryptCloseAlgorithmProvider(handle, 0); + return NULL; + } + + jobject privkey = key_to_privkey(env, key, keyflag, curveName); + jobject pubkey = key_to_pubkey(env, key, keyflag, curveName); + + if (curveName) { + free(curveName); + } + + jmethodID keypair_init = (*env)->GetMethodID(env, keypair_class, "<init>", "(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V"); + + BCryptDestroyKey(key); + BCryptCloseAlgorithmProvider(handle, 0); + return (*env)->NewObject(env, keypair_class, keypair_init, pubkey, privkey); +} + +static NTSTATUS init_use_algo(JNIEnv *env, BCRYPT_ALG_HANDLE *handle, LPCWSTR type, jint keyflag, jbyteArray meta, jobject params) { + LPCWSTR ecdh_algos[] = {BCRYPT_ECDH_ALGORITHM, BCRYPT_ECDH_P256_ALGORITHM, BCRYPT_ECDH_P384_ALGORITHM, BCRYPT_ECDH_P521_ALGORITHM}; + LPCWSTR ecdsa_algos[] = {BCRYPT_ECDSA_ALGORITHM, BCRYPT_ECDSA_P256_ALGORITHM, BCRYPT_ECDSA_P384_ALGORITHM, BCRYPT_ECDSA_P521_ALGORITHM}; + + LPCWSTR *algos; + LPCWSTR algo; + if (lstrcmpW(type, BCRYPT_ECDH_ALGORITHM) == 0) { + algos = ecdh_algos; + } else if (lstrcmpW(type, BCRYPT_ECDSA_ALGORITHM) == 0) { + algos = ecdsa_algos; + } else { + // unreachable + return STATUS_INVALID_PARAMETER; + } + + switch (keyflag) { + case KEYFLAG_IMPLICIT: + case KEYFLAG_EXPLICIT: + case KEYFLAG_OTHER: + algo = algos[0]; + break; + case KEYFLAG_NIST: { + jmethodID get_curve = (*env)->GetMethodID(env, ec_parameter_spec_class, "getCurve", "()Ljava/security/spec/EllipticCurve;"); + jobject elliptic_curve = (*env)->CallObjectMethod(env, params, get_curve); + + jmethodID get_field = (*env)->GetMethodID(env, elliptic_curve_class, "getField", "()Ljava/security/spec/ECField;"); + jobject field = (*env)->CallObjectMethod(env, elliptic_curve, get_field); + + jmethodID get_bits = (*env)->GetMethodID(env, fp_field_class, "getFieldSize", "()I"); + jint bits = (*env)->CallIntMethod(env, field, get_bits); + switch (bits) { + case 256: + algo = algos[1]; + break; + case 384: + algo = algos[2]; + break; + case 521: + algo = algos[3]; + break; + default: + return STATUS_INVALID_PARAMETER; + } + break; + } + } + NTSTATUS status; + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(handle, algo, MS_PRIMITIVE_PROVIDER, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + return status; + } + + switch (keyflag) { + case KEYFLAG_IMPLICIT: { + jint meta_len = (*env)->GetArrayLength(env, meta); + jbyte *meta_data = (*env)->GetByteArrayElements(env, meta, NULL); + // if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_CURVE_NAME, meta_data, meta_len, 0))) { + // throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSetProperty(curve name)\n", + //status); + // (*env)->ReleaseByteArrayElements(env, meta, meta_data, JNI_ABORT); + // return status; + //} + (*env)->ReleaseByteArrayElements(env, meta, meta_data, JNI_ABORT); + break; + } + case KEYFLAG_EXPLICIT: + case KEYFLAG_OTHER: { + PBYTE curve; + ULONG curve_len = create_curve(env, params, &curve); + if (NT_FAILURE(status = BCryptSetProperty(*handle, BCRYPT_ECC_PARAMETERS, curve, curve_len, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSetProperty(parameters)\n", + status); + free(curve); + return status; + } + free(curve); + break; + } + } + return STATUS_SUCCESS; +} + +static jint get_keyflag(JNIEnv *env, jobject key) { + if ((*env)->IsInstanceOf(env, key, pubkey_class) || (*env)->IsInstanceOf(env, key, privkey_class)) { + jclass key_class = (*env)->GetObjectClass(env, key); + jmethodID get_flag = (*env)->GetMethodID(env, key_class, "getFlag", "()I"); + return (*env)->CallIntMethod(env, key, get_flag); + } else { + return KEYFLAG_OTHER; + } +} + +static jbyteArray get_meta(JNIEnv *env, jobject key) { + if ((*env)->IsInstanceOf(env, key, pubkey_class) || (*env)->IsInstanceOf(env, key, privkey_class)) { + jclass key_class = (*env)->GetObjectClass(env, key); + jmethodID get_meta = (*env)->GetMethodID(env, key_class, "getMeta", "()[B"); + return (jbyteArray)(*env)->CallObjectMethod(env, key, get_meta); + } else { + return NULL; + } +} + +JNIEXPORT jbyteArray JNICALL +Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyAgreementSpi_00024Mscng_generateSecret__Ljava_security_interfaces_ECPublicKey_2Ljava_security_interfaces_ECPrivateKey_2Ljava_security_spec_AlgorithmParameterSpec_2( + JNIEnv *env, jobject self, jobject pubkey, jobject privkey, jobject params) { + NTSTATUS status; + + jclass mscng_ka_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeKeyAgreementSpi$Mscng"); + jfieldID type_id = (*env)->GetFieldID(env, mscng_ka_class, "type", "Ljava/lang/String;"); + jstring type = (jstring)(*env)->GetObjectField(env, self, type_id); + const char *type_data = (*env)->GetStringUTFChars(env, type, NULL); + LPCWSTR kdf_algo; + if (strcmp(type_data, "ECDHwithSHA1KDF(CNG)") == 0) { + kdf_algo = BCRYPT_SHA1_ALGORITHM; + } else if (strcmp(type_data, "ECDHwithSHA256KDF(CNG)") == 0) { + kdf_algo = BCRYPT_SHA256_ALGORITHM; + } else if (strcmp(type_data, "ECDHwithSHA384KDF(CNG)") == 0) { + kdf_algo = BCRYPT_SHA384_ALGORITHM; + } else if (strcmp(type_data, "ECDHwithSHA512KDF(CNG)") == 0) { + kdf_algo = BCRYPT_SHA512_ALGORITHM; + } else { + // unreachable + return NULL; + } + (*env)->ReleaseStringUTFChars(env, type, type_data); + + BCRYPT_ALG_HANDLE kaHandle = NULL; + + jint pub_flag = get_keyflag(env, pubkey); + if (pub_flag == KEYFLAG_OTHER) { + throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native public key."); + return NULL; + } + jbyteArray meta = get_meta(env, pubkey); + + if (NT_FAILURE(status = init_use_algo(env, &kaHandle, BCRYPT_ECDH_ALGORITHM, pub_flag, meta, params))) { + return NULL; + } + + BCRYPT_KEY_HANDLE pkey = NULL; + BCRYPT_KEY_HANDLE skey = NULL; + + jmethodID get_data_priv = (*env)->GetMethodID(env, pubkey_class, "getData", "()[B"); + jbyteArray pubkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, pubkey, get_data_priv); + + jint pub_length = (*env)->GetArrayLength(env, pubkey_barray); + jbyte *pub_data = (*env)->GetByteArrayElements(env, pubkey_barray, NULL); + if (NT_FAILURE(status = BCryptImportKeyPair(kaHandle, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, &pkey, pub_data, pub_length, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair(pub)\n", status); + BCryptCloseAlgorithmProvider(kaHandle, 0); + (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT); + return NULL; + } + (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT); + + jint priv_flag = get_keyflag(env, privkey); + if (priv_flag == KEYFLAG_OTHER) { + throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native private key."); + return NULL; + } + + jmethodID get_data_pub = (*env)->GetMethodID(env, privkey_class, "getData", "()[B"); + jbyteArray privkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, privkey, get_data_pub); + + jint priv_length = (*env)->GetArrayLength(env, privkey_barray); + jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey_barray, NULL); + if (NT_FAILURE(status = BCryptImportKeyPair(kaHandle, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, &skey, priv_data, priv_length, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair(priv)\n", status); + BCryptCloseAlgorithmProvider(kaHandle, 0); + BCryptDestroyKey(pkey); + (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT); + return NULL; + } + (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT); + + BCRYPT_SECRET_HANDLE ka = NULL; + + native_timing_start(); + status = BCryptSecretAgreement(skey, pkey, &ka, 0); + native_timing_stop(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSecretAgreement\n", status); + BCryptCloseAlgorithmProvider(kaHandle, 0); + BCryptDestroyKey(pkey); + BCryptDestroyKey(skey); + return NULL; + } + + BCryptBufferDesc paramList = {0}; + BCryptBuffer kdfParams[1] = {0}; + kdfParams[0].BufferType = KDF_HASH_ALGORITHM; + kdfParams[0].cbBuffer = (DWORD)((wcslen(kdf_algo) + 1) * sizeof(WCHAR)); + kdfParams[0].pvBuffer = (PVOID)kdf_algo; + paramList.cBuffers = 1; + paramList.pBuffers = kdfParams; + paramList.ulVersion = BCRYPTBUFFER_VERSION; + + ULONG bufSize = 0; + if (NT_FAILURE(status = BCryptDeriveKey(ka, BCRYPT_KDF_HASH, ¶mList, NULL, 0, &bufSize, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptDeriveKey(length only)\n", status); + return NULL; + } + + PBYTE derived = calloc(bufSize, 1); + if (NT_FAILURE(status = BCryptDeriveKey(ka, BCRYPT_KDF_HASH, ¶mList, derived, bufSize, &bufSize, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptDeriveKey(whole)\n", status); + return NULL; + } + + jbyteArray result = (*env)->NewByteArray(env, bufSize); + jbyte *result_data = (*env)->GetByteArrayElements(env, result, NULL); + memcpy(result_data, derived, bufSize); + (*env)->ReleaseByteArrayElements(env, result, result_data, 0); + + free(derived); + BCryptDestroyKey(pkey); + BCryptDestroyKey(skey); + BCryptDestroySecret(ka); + BCryptCloseAlgorithmProvider(kaHandle, 0); + return result; +} + +JNIEXPORT jobject JNICALL +Java_cz_crcs_ectester_standalone_libs_jni_NativeKeyAgreementSpi_00024Mscng_generateSecret__Ljava_security_interfaces_ECPublicKey_2Ljava_security_interfaces_ECPrivateKey_2Ljava_security_spec_AlgorithmParameterSpec_2Ljava_lang_String_2( + JNIEnv *env, jobject self, jobject pubkey, jobject privkey, jobject params, jstring algorithm) { + throw_new(env, "java/lang/UnsupportedOperationException", "Not supported."); + return NULL; +} + +static LPCWSTR get_sighash_algo(JNIEnv *env, jobject self) { + jclass mscng_sig_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeSignatureSpi$Mscng"); + jfieldID type_id = (*env)->GetFieldID(env, mscng_sig_class, "type", "Ljava/lang/String;"); + jstring type = (jstring)(*env)->GetObjectField(env, self, type_id); + const char *type_data = (*env)->GetStringUTFChars(env, type, NULL); + LPCWSTR hash_algo; + if (strcmp(type_data, "SHA1withECDSA") == 0) { + hash_algo = BCRYPT_SHA1_ALGORITHM; + } else if (strcmp(type_data, "SHA256withECDSA") == 0) { + hash_algo = BCRYPT_SHA256_ALGORITHM; + } else if (strcmp(type_data, "SHA384withECDSA") == 0) { + hash_algo = BCRYPT_SHA384_ALGORITHM; + } else if (strcmp(type_data, "SHA512withECDSA") == 0) { + hash_algo = BCRYPT_SHA512_ALGORITHM; + } else { + // unreachable + return NULL; + } + (*env)->ReleaseStringUTFChars(env, type, type_data); + return hash_algo; +} + +JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSignatureSpi_00024Mscng_sign(JNIEnv *env, jobject self, + jbyteArray data, jobject privkey, + jobject params) { + NTSTATUS status; + LPCWSTR hash_algo = get_sighash_algo(env, self); + + BCRYPT_ALG_HANDLE sigHandle = NULL; + + jint keyflag = get_keyflag(env, privkey); + if (keyflag == KEYFLAG_OTHER) { + throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native private key."); + return NULL; + } + jbyteArray meta = get_meta(env, privkey); + + if (NT_FAILURE(status = init_use_algo(env, &sigHandle, BCRYPT_ECDSA_ALGORITHM, keyflag, meta, params))) { + return NULL; + } + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&sigHandle, BCRYPT_ECDSA_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + return NULL; + } + + BCRYPT_ALG_HANDLE hashHandle = NULL; + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&hashHandle, hash_algo, NULL, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + return NULL; + } + + DWORD dummy = 0; + DWORD hash_len = 0; + if (NT_FAILURE(status = BCryptGetProperty(hashHandle, BCRYPT_HASH_LENGTH, (PBYTE)&hash_len, sizeof(DWORD), &dummy, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGetProperty(hash len)\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + return NULL; + } + + PBYTE hash = calloc(hash_len, 1); + + jint data_len = (*env)->GetArrayLength(env, data); + jbyte *data_bytes = (*env)->GetByteArrayElements(env, data, NULL); + native_timing_start(); + status = BCryptHash(hashHandle, NULL, 0, data_bytes, data_len, hash, hash_len); + native_timing_pause(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptHash\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT); + return NULL; + } + (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT); + + BCRYPT_KEY_HANDLE skey = NULL; + + jmethodID get_data = (*env)->GetMethodID(env, privkey_class, "getData", "()[B"); + jbyteArray privkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, privkey, get_data); + + jint priv_length = (*env)->GetArrayLength(env, privkey_barray); + jbyte *priv_data = (*env)->GetByteArrayElements(env, privkey_barray, NULL); + if (NT_FAILURE(status = BCryptImportKeyPair(sigHandle, NULL, BCRYPT_ECCFULLPRIVATE_BLOB, &skey, priv_data, priv_length, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT); + return NULL; + } + (*env)->ReleaseByteArrayElements(env, privkey_barray, priv_data, JNI_ABORT); + + DWORD sig_len = 0; + native_timing_restart(); + status = BCryptSignHash(skey, NULL, hash, hash_len, NULL, 0, &sig_len, 0); + native_timing_pause(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSignHash(len only)\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + return NULL; + } + + PBYTE sig_buf = calloc(sig_len, 1); + + native_timing_restart(); + status = BCryptSignHash(skey, NULL, hash, hash_len, sig_buf, sig_len, &sig_len, 0); + native_timing_stop(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptSignHash(do)\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + free(sig_buf); + return NULL; + } + + DWORD half_len = sig_len / 2; + jobject sig = asn1_der_encode(env, sig_buf, half_len, sig_buf + half_len, half_len); + + free(hash); + free(sig_buf); + BCryptDestroyKey(skey); + BCryptCloseAlgorithmProvider(hashHandle, 0); + BCryptCloseAlgorithmProvider(sigHandle, 0); + + return sig; +} + +JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSignatureSpi_00024Mscng_verify(JNIEnv *env, jobject self, + jbyteArray sig, jbyteArray data, + jobject pubkey, jobject params) { + NTSTATUS status; + LPCWSTR hash_algo = get_sighash_algo(env, self); + + BCRYPT_ALG_HANDLE sigHandle = NULL; + + jint keyflag = get_keyflag(env, pubkey); + if (keyflag == KEYFLAG_OTHER) { // TODO: This is not necessary + throw_new(env, "java/security/InvalidAlgorithmParameterException", "Cannot import non-native public key."); + return JNI_FALSE; + } + jbyteArray meta = get_meta(env, pubkey); + + if (NT_FAILURE(status = init_use_algo(env, &sigHandle, BCRYPT_ECDSA_ALGORITHM, keyflag, meta, params))) { + return JNI_FALSE; + } + + BCRYPT_ALG_HANDLE hashHandle = NULL; + + if (NT_FAILURE(status = BCryptOpenAlgorithmProvider(&hashHandle, hash_algo, NULL, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptOpenAlgorithmProvider\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + return JNI_FALSE; + } + + DWORD dummy = 0; + DWORD hash_len = 0; + if (NT_FAILURE(status = BCryptGetProperty(hashHandle, BCRYPT_HASH_LENGTH, (PBYTE)&hash_len, sizeof(DWORD), &dummy, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptGetProperty(hash len)\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + return JNI_FALSE; + } + + PBYTE hash = calloc(hash_len, 1); + + jint data_len = (*env)->GetArrayLength(env, data); + jbyte *data_bytes = (*env)->GetByteArrayElements(env, data, NULL); + native_timing_start(); + status = BCryptHash(hashHandle, NULL, 0, data_bytes, data_len, hash, hash_len); + native_timing_pause(); + + if (NT_FAILURE(status)) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptHash\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT); + return JNI_FALSE; + } + (*env)->ReleaseByteArrayElements(env, data, data_bytes, JNI_ABORT); + + BCRYPT_KEY_HANDLE pkey = NULL; + + jmethodID get_data = (*env)->GetMethodID(env, pubkey_class, "getData", "()[B"); + jbyteArray pubkey_barray = (jbyteArray)(*env)->CallObjectMethod(env, pubkey, get_data); + + jint pub_length = (*env)->GetArrayLength(env, pubkey_barray); + jbyte *pub_data = (*env)->GetByteArrayElements(env, pubkey_barray, NULL); + if (NT_FAILURE(status = BCryptImportKeyPair(sigHandle, NULL, BCRYPT_ECCFULLPUBLIC_BLOB, &pkey, pub_data, pub_length, 0))) { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptImportKeyPair\n", status); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT); + return JNI_FALSE; + } + (*env)->ReleaseByteArrayElements(env, pubkey_barray, pub_data, JNI_ABORT); + + jmethodID get_n = (*env)->GetMethodID(env, ec_parameter_spec_class, "getOrder", "()Ljava/math/BigInteger;"); + jobject n = (*env)->CallObjectMethod(env, params, get_n); + jmethodID get_bitlength = (*env)->GetMethodID(env, biginteger_class, "bitLength", "()I"); + jint ord_bits = (*env)->CallIntMethod(env, n, get_bitlength); + jint ord_bytes = (ord_bits + 7) / 8; + + jint sig_len = (*env)->GetArrayLength(env, sig); + jbyte *sig_data = (*env)->GetByteArrayElements(env, sig, NULL); + jbyte *r; + size_t rlen; + jbyte *s; + size_t slen; + bool decode = asn1_der_decode(env, sig, &r, &rlen, &s, &slen); + (*env)->ReleaseByteArrayElements(env, sig, sig_data, JNI_ABORT); + + if (!decode) { + throw_new(env, "java/security/GeneralSecurityException", "Error decoding sig."); + BCryptDestroyKey(pkey); + BCryptCloseAlgorithmProvider(sigHandle, 0); + BCryptCloseAlgorithmProvider(hashHandle, 0); + free(hash); + return JNI_FALSE; + } + + jbyte *r_cpy = r; + jbyte *s_cpy = s; + if (rlen > ord_bytes) { + r_cpy += ord_bytes - rlen; + } + if (slen > ord_bytes) { + s_cpy += ord_bytes - slen; + } + if (rlen < ord_bytes) { + r_cpy = _alloca(ord_bytes); + memset(r_cpy, 0, ord_bytes); + memcpy(r_cpy, r + (ord_bytes - rlen), ord_bytes); + } + if (slen < ord_bytes) { + s_cpy = _alloca(ord_bytes); + memset(s_cpy, 0, ord_bytes); + memcpy(s_cpy, s + (ord_bytes - slen), ord_bytes); + } + rlen = ord_bytes; + slen = ord_bytes; + + UCHAR *sig_full = calloc(rlen + slen, 1); + memcpy(sig_full, r_cpy, rlen); + memcpy(sig_full + rlen, s_cpy, slen); + free(r); + free(s); + + native_timing_restart(); + NTSTATUS result = BCryptVerifySignature(pkey, NULL, hash, hash_len, sig_full, rlen + slen, 0); + native_timing_stop(); + + free(hash); + free(sig_full); + BCryptDestroyKey(pkey); + BCryptCloseAlgorithmProvider(hashHandle, 0); + BCryptCloseAlgorithmProvider(sigHandle, 0); + + if (result == STATUS_SUCCESS) { + return JNI_TRUE; + } else if (result == STATUS_INVALID_SIGNATURE) { + return JNI_FALSE; + } else { + throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptVerifySignature\n", status); + return JNI_FALSE; + } }
\ No newline at end of file diff --git a/src/cz/crcs/ectester/standalone/libs/jni/native.h b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/native.h index 8f5b521..8f5b521 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/native.h +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/native.h diff --git a/src/cz/crcs/ectester/standalone/libs/jni/nettle.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/nettle.c index e8d874a..e8d874a 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/nettle.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/nettle.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/openssl.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/openssl.c index 1739420..1739420 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/openssl.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/openssl.c diff --git a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c index 82592f1..82592f1 100644 --- a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c diff --git a/src/cz/crcs/ectester/standalone/output/TextTestWriter.java b/standalone/src/main/java/cz/crcs/ectester/standalone/output/TextTestWriter.java index d7be4dc..d7be4dc 100644 --- a/src/cz/crcs/ectester/standalone/output/TextTestWriter.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/output/TextTestWriter.java diff --git a/src/cz/crcs/ectester/standalone/output/XMLTestWriter.java b/standalone/src/main/java/cz/crcs/ectester/standalone/output/XMLTestWriter.java index 812634f..812634f 100644 --- a/src/cz/crcs/ectester/standalone/output/XMLTestWriter.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/output/XMLTestWriter.java diff --git a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java b/standalone/src/main/java/cz/crcs/ectester/standalone/output/YAMLTestWriter.java index ee8a199..ee8a199 100644 --- a/src/cz/crcs/ectester/standalone/output/YAMLTestWriter.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/output/YAMLTestWriter.java diff --git a/src/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java index fd48212..fd48212 100644 --- a/src/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTest.java diff --git a/src/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java index 7fd1c5a..7fd1c5a 100644 --- a/src/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyAgreementTestable.java diff --git a/src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java index 32f82cb..32f82cb 100644 --- a/src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTest.java diff --git a/src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java index c05d6e3..c05d6e3 100644 --- a/src/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java diff --git a/src/cz/crcs/ectester/standalone/test/base/PerformanceTest.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java index 258ca12..258ca12 100644 --- a/src/cz/crcs/ectester/standalone/test/base/PerformanceTest.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/PerformanceTest.java diff --git a/src/cz/crcs/ectester/standalone/test/base/SignatureTest.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTest.java index a817691..a817691 100644 --- a/src/cz/crcs/ectester/standalone/test/base/SignatureTest.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTest.java diff --git a/src/cz/crcs/ectester/standalone/test/base/SignatureTestable.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTestable.java index fe81b10..fe81b10 100644 --- a/src/cz/crcs/ectester/standalone/test/base/SignatureTestable.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/SignatureTestable.java diff --git a/src/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java index 47bffc1..47bffc1 100644 --- a/src/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/StandaloneTestable.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java index 52b0fbf..52b0fbf 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCofactorSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java index c59d864..c59d864 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneCompositeSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java index 1c14ecc..1c14ecc 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java index 9ab8a39..9ab8a39 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDegenerateSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java index 3624aaa..1900bea 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java @@ -1,6 +1,5 @@ package cz.crcs.ectester.standalone.test.suites; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.cli.TreeCommandLine; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.common.output.TestWriter; diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java index ace8945..ace8945 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneInvalidSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java index f3a10eb..f3a10eb 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java index dd50862..dd50862 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java index 94e810e..94e810e 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneSignatureSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java index e4e0013..e4e0013 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java index 1e1889c..1e1889c 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTestVectorSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java index f182952..f182952 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneTwistSuite.java diff --git a/src/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java index 79b0b7d..c061da6 100644 --- a/src/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java @@ -1,6 +1,5 @@ package cz.crcs.ectester.standalone.test.suites; -import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.cli.TreeCommandLine; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.common.output.TestWriter; diff --git a/applet/GPPcScConnectionPlugin.dll b/util/applet/GPPcScConnectionPlugin.dll Binary files differindex 3b27f6b..3b27f6b 100644 --- a/applet/GPPcScConnectionPlugin.dll +++ b/util/applet/GPPcScConnectionPlugin.dll diff --git a/applet/GPShell.exe b/util/applet/GPShell.exe Binary files differindex 091eece..091eece 100644 --- a/applet/GPShell.exe +++ b/util/applet/GPShell.exe diff --git a/applet/GlobalPlatform.dll b/util/applet/GlobalPlatform.dll Binary files differindex 6dca172..6dca172 100644 --- a/applet/GlobalPlatform.dll +++ b/util/applet/GlobalPlatform.dll diff --git a/applet/gp.exe b/util/applet/gp.exe Binary files differindex 6478bf2..6478bf2 100644 --- a/applet/gp.exe +++ b/util/applet/gp.exe diff --git a/applet/gp.jar b/util/applet/gp.jar Binary files differindex 774d81a..774d81a 100644 --- a/applet/gp.jar +++ b/util/applet/gp.jar diff --git a/applet/gppro_upload.bat b/util/applet/gppro_upload.bat index 50a41d7..50a41d7 100644 --- a/applet/gppro_upload.bat +++ b/util/applet/gppro_upload.bat diff --git a/applet/gppro_upload.sh b/util/applet/gppro_upload.sh index 055d51d..055d51d 100755 --- a/applet/gppro_upload.sh +++ b/util/applet/gppro_upload.sh diff --git a/applet/gppro_upload_emv.bat b/util/applet/gppro_upload_emv.bat index 4094623..4094623 100644 --- a/applet/gppro_upload_emv.bat +++ b/util/applet/gppro_upload_emv.bat diff --git a/applet/gppro_upload_emv.sh b/util/applet/gppro_upload_emv.sh index 9e1a62e..9e1a62e 100755 --- a/applet/gppro_upload_emv.sh +++ b/util/applet/gppro_upload_emv.sh diff --git a/applet/libeay32.dll b/util/applet/libeay32.dll Binary files differindex b59a6b4..b59a6b4 100644 --- a/applet/libeay32.dll +++ b/util/applet/libeay32.dll diff --git a/applet/openkms-gp.jar b/util/applet/openkms-gp.jar Binary files differindex 9cd5de5..9cd5de5 100644 --- a/applet/openkms-gp.jar +++ b/util/applet/openkms-gp.jar diff --git a/applet/ssleay32.dll b/util/applet/ssleay32.dll Binary files differindex e8fabb6..e8fabb6 100644 --- a/applet/ssleay32.dll +++ b/util/applet/ssleay32.dll diff --git a/applet/zlib1.dll b/util/applet/zlib1.dll Binary files differindex 31996cd..31996cd 100644 --- a/applet/zlib1.dll +++ b/util/applet/zlib1.dll |
