diff options
| author | J08nY | 2017-02-20 20:46:59 +0100 |
|---|---|---|
| committer | J08nY | 2017-02-21 15:25:19 +0100 |
| commit | 66bd8469e56cbe7c6bed823b376229a02ecdd37d (patch) | |
| tree | 58854c07799445dc998c951a464897089e62a80f | |
| parent | abe9f00e15993d55a71b8b328f430421f2f2f151 (diff) | |
| download | ECTester-66bd8469e56cbe7c6bed823b376229a02ecdd37d.tar.gz ECTester-66bd8469e56cbe7c6bed823b376229a02ecdd37d.tar.zst ECTester-66bd8469e56cbe7c6bed823b376229a02ecdd37d.zip | |
135 files changed, 785 insertions, 855 deletions
diff --git a/!uploader/ectester.cap b/!uploader/ectester.cap Binary files differindex f570b6f..56b2e2e 100644 --- a/!uploader/ectester.cap +++ b/!uploader/ectester.cap diff --git a/dist/ECTester.jar b/dist/ECTester.jar Binary files differindex a3429fe..421b6ea 100644 --- a/dist/ECTester.jar +++ b/dist/ECTester.jar diff --git a/nbproject/project.properties b/nbproject/project.properties index b9bfb7d..2c8b861 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -28,8 +28,7 @@ dist.dir=dist dist.jar=${dist.dir}/ECTester.jar dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= -#TODO remove SimpleAPDU when replaced with ECtester.java -excludes=**/SimpleAPDU.java +excludes= includes=** jar.compress=false javac.classpath=\ diff --git a/src/cz/crcs/ectester/applet/ECKeyGenerator.java b/src/cz/crcs/ectester/applet/ECKeyGenerator.java index 1a17d3c..8c9c38e 100644 --- a/src/cz/crcs/ectester/applet/ECKeyGenerator.java +++ b/src/cz/crcs/ectester/applet/ECKeyGenerator.java @@ -172,14 +172,14 @@ public class ECKeyGenerator { if ((key & EC_Consts.KEY_PRIVATE) != 0) ecPrivateKey.setFieldFP(data, offset, length); break; case EC_Consts.PARAMETER_F2M: - if (length == 2) { - short i = Util.makeShort(data[offset], data[(short) (offset + 1)]); + if (length == 4) { + short i = Util.makeShort(data[(short) (offset + 2)], data[(short) (offset + 3)]); if ((key & EC_Consts.KEY_PUBLIC) != 0) ecPublicKey.setFieldF2M(i); if ((key & EC_Consts.KEY_PRIVATE) != 0) ecPrivateKey.setFieldF2M(i); - } else if (length == 6) { - short i1 = Util.makeShort(data[offset], data[(short) (offset + 1)]); - short i2 = Util.makeShort(data[(short) (offset + 2)], data[(short) (offset + 3)]); - short i3 = Util.makeShort(data[(short) (offset + 4)], data[(short) (offset + 5)]); + } else if (length == 8){ + short i1 = Util.makeShort(data[(short) (offset + 2)], data[(short) (offset + 3)]); + short i2 = Util.makeShort(data[(short) (offset + 4)], data[(short) (offset + 5)]); + short i3 = Util.makeShort(data[(short) (offset + 6)], data[(short) (offset + 7)]); if ((key & EC_Consts.KEY_PUBLIC) != 0) ecPublicKey.setFieldF2M(i1, i2, i3); if ((key & EC_Consts.KEY_PRIVATE) != 0) ecPrivateKey.setFieldF2M(i1, i2, i3); } else { @@ -276,7 +276,7 @@ public class ECKeyGenerator { * Exports a selected parameter from a given keyPairs key. * * @param keypair keypair to export from - * @param key key to export from (KEY_PUBLIC | KEY_PRIVATE) + * @param key key to export from (KEY_PUBLIC || KEY_PRIVATE) * @param param parameter to export (EC_Consts.PARAMETER_* || ...) * @param outputBuffer buffer to write to * @param outputOffset offset to start writing in buffer @@ -291,10 +291,21 @@ public class ECKeyGenerator { try { switch (param) { case EC_Consts.PARAMETER_FP: - case EC_Consts.PARAMETER_F2M: if ((key & EC_Consts.KEY_PUBLIC) != 0) length = ecPublicKey.getField(outputBuffer, outputOffset); if ((key & EC_Consts.KEY_PRIVATE) != 0) length = ecPrivateKey.getField(outputBuffer, outputOffset); break; + case EC_Consts.PARAMETER_F2M: + if ((key & EC_Consts.KEY_PUBLIC) != 0) { + Util.setShort(outputBuffer, outputOffset, ecPublicKey.getSize()); + length = 2; + length += ecPublicKey.getField(outputBuffer, (short) (outputOffset + 2)); + } + if ((key & EC_Consts.KEY_PRIVATE) != 0) { + Util.setShort(outputBuffer, outputOffset, ecPrivateKey.getSize()); + length = 2; + length += ecPrivateKey.getField(outputBuffer, (short) (outputOffset + 2)); + } + break; case EC_Consts.PARAMETER_A: if ((key & EC_Consts.KEY_PUBLIC) != 0) length = ecPublicKey.getA(outputBuffer, outputOffset); if ((key & EC_Consts.KEY_PRIVATE) != 0) length = ecPrivateKey.getA(outputBuffer, outputOffset); diff --git a/src/cz/crcs/ectester/data/anomalous/curves.xml b/src/cz/crcs/ectester/data/anomalous/curves.xml new file mode 100644 index 0000000..8ac0238 --- /dev/null +++ b/src/cz/crcs/ectester/data/anomalous/curves.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>anomalousp128</id> + <bits>128</bits> + <field>prime</field> + <file>anomalousp128.csv</file> + </curve> + <curve> + <id>anomalousp160</id> + <bits>160</bits> + <field>prime</field> + <file>anomalousp160.csv</file> + </curve> + <curve> + <id>anomalousp192</id> + <bits>192</bits> + <field>prime</field> + <file>anomalousp192.csv</file> + </curve> + <curve> + <id>anomalousp224</id> + <bits>224</bits> + <field>prime</field> + <file>anomalousp224.csv</file> + </curve> + <curve> + <id>anomalousp256</id> + <bits>256</bits> + <field>prime</field> + <file>anomalousp256.csv</file> + </curve> + <curve> + <id>anomalousp384</id> + <bits>384</bits> + <field>prime</field> + <file>anomalousp384.csv</file> + </curve> + <curve> + <id>anomalousp521</id> + <bits>521</bits> + <field>prime</field> + <file>anomalousp521.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv new file mode 100644 index 0000000..859424e --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.csv @@ -0,0 +1 @@ +E95E4A5F737059DC60DFC7AD95B3D8139515620F,340E7BE2A280EB74E2BE61BADA745D97E8F7C300,1E589A8595423412134FAA2DBDEC95C8D8675E58,BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3,1667CB477A1A8EC338F94741669C976316DA6321,E95E4A5F737059DC60DF5991D45029409E60FC09,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.txt deleted file mode 100644 index 69abf52..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP160r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -E95E4A5F737059DC60DFC7AD95B3D8139515620F, -340E7BE2A280EB74E2BE61BADA745D97E8F7C300, -1E589A8595423412134FAA2DBDEC95C8D8675E58, -BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3, -1667CB477A1A8EC338F94741669C976316DA6321, -E95E4A5F737059DC60DF5991D45029409E60FC09, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv new file mode 100644 index 0000000..7e2f428 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.csv @@ -0,0 +1 @@ +24DBFF5DEC9B986BBFE5295A29BFBAE45E0F5D0B,E95E4A5F737059DC60DFC7AD95B3D8139515620C,7A556B6DAE535B7B51ED2C4D7DAA7A0B5C55F380,B199B13B9B34EFC1397E64BAEB05ACC265FF2378,ADD6718B7C7C1961F0991B842443772152C9E0AD,E95E4A5F737059DC60DF5991D45029409E60FC09,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.txt deleted file mode 100644 index fadafdf..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP160t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -24DBFF5DEC9B986BBFE5295A29BFBAE45E0F5D0B, -E95E4A5F737059DC60DFC7AD95B3D8139515620C, -7A556B6DAE535B7B51ED2C4D7DAA7A0B5C55F380, -B199B13B9B34EFC1397E64BAEB05ACC265FF2378, -ADD6718B7C7C1961F0991B842443772152C9E0AD, -E95E4A5F737059DC60DF5991D45029409E60FC09, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv new file mode 100644 index 0000000..c4f1999 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.csv @@ -0,0 +1 @@ +C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297,6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF,469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9,C0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6,14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F,C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.txt deleted file mode 100644 index 3e6bed8..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP192r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297, -6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF, -469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9, -C0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6, -14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F, -C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv new file mode 100644 index 0000000..8236331 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.csv @@ -0,0 +1 @@ +1B6F5CC8DB4DC7AF19458A9CB80DC2295E5EB9C3732104CB,C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86294,13D56FFAEC78681E68F9DEB43B35BEC2FB68542E27897B79,3AE9E58C82F63C30282E1FE7BBF43FA72C446AF6F4618129,97E2C5667C2223A902AB5CA449D0084B7E5B3DE7CCC01C9,C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.txt deleted file mode 100644 index cd52697..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP192t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -1B6F5CC8DB4DC7AF19458A9CB80DC2295E5EB9C3732104CB, -C302F41D932A36CDA7A3463093D18DB78FCE476DE1A86294, -13D56FFAEC78681E68F9DEB43B35BEC2FB68542E27897B79, -3AE9E58C82F63C30282E1FE7BBF43FA72C446AF6F4618129, -97E2C5667C2223A902AB5CA449D0084B7E5B3DE7CCC01C9, -C302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv new file mode 100644 index 0000000..6839e31 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.csv @@ -0,0 +1 @@ +D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FF,68A5E62CA9CE6C1C299803A6C1530B514E182AD8B0042A59CAD29F43,2580F63CCFE44138870713B1A92369E33E2135D266DBB372386C400B,D9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C1E6EFDEE12C07D,58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D3761402CD,D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.txt deleted file mode 100644 index 12e536c..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP224r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FF, -68A5E62CA9CE6C1C299803A6C1530B514E182AD8B0042A59CAD29F43, -2580F63CCFE44138870713B1A92369E33E2135D266DBB372386C400B, -D9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C1E6EFDEE12C07D, -58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D3761402CD, -D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv new file mode 100644 index 0000000..480f7c2 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.csv @@ -0,0 +1 @@ +2DF271E14427A346910CF7A2E6CFA7B3F484E5C2CCE1C8B730E28B3F,D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FC,4B337D934104CD7BEF271BF60CED1ED20DA14C08B3BB64F18A60888D,6AB1E344CE25FF3896424E7FFE14762ECB49F8928AC0C76029B4D580,374E9F5143E568CD23F3F4D7C0D4B1E41C8CC0D1C6ABD5F1A46DB4C,D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.txt deleted file mode 100644 index 522d09e..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP224t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -2DF271E14427A346910CF7A2E6CFA7B3F484E5C2CCE1C8B730E28B3F, -D7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FC, -4B337D934104CD7BEF271BF60CED1ED20DA14C08B3BB64F18A60888D, -6AB1E344CE25FF3896424E7FFE14762ECB49F8928AC0C76029B4D580, -374E9F5143E568CD23F3F4D7C0D4B1E41C8CC0D1C6ABD5F1A46DB4C, -D7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv new file mode 100644 index 0000000..f30cf91 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.csv @@ -0,0 +1 @@ +A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377,7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9,26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6,8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262,547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997,A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.txt deleted file mode 100644 index e0e50ad..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP256r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377, -7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9, -26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6, -8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262, -547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997, -A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv new file mode 100644 index 0000000..7070064 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.csv @@ -0,0 +1 @@ +3E2D4BD9597B58639AE7AA669CAB9837CF5CF20A2C852D10F655668DFC150EF0,A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5374,662C61C430D84EA4FE66A7733D0B76B7BF93EBC4AF2F49256AE58101FEE92B04,A3E8EB3CC1CFE7B7732213B23A656149AFA142C47AAFBC2B79A191562E1305F4,2D996C823439C56D7F7B22E14644417E69BCB6DE39D027001DABE8F35B25C9BE,A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.txt deleted file mode 100644 index f5bb2d6..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP256t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -3E2D4BD9597B58639AE7AA669CAB9837CF5CF20A2C852D10F655668DFC150EF0, -A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5374, -662C61C430D84EA4FE66A7733D0B76B7BF93EBC4AF2F49256AE58101FEE92B04, -A3E8EB3CC1CFE7B7732213B23A656149AFA142C47AAFBC2B79A191562E1305F4, -2D996C823439C56D7F7B22E14644417E69BCB6DE39D027001DABE8F35B25C9BE, -A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv new file mode 100644 index 0000000..128cfb0 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.csv @@ -0,0 +1 @@ +D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28FCD412B1F1B32E27,3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9F492F375A97D860EB4,520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD884539816F5EB4AC8FB1F1A6,43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599C710AF8D0D39E20611,14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6AC7D35245D1692E8EE1,D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.txt deleted file mode 100644 index 474fa9d..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP320r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28FCD412B1F1B32E27, -3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9F492F375A97D860EB4, -520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD884539816F5EB4AC8FB1F1A6, -43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599C710AF8D0D39E20611, -14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6AC7D35245D1692E8EE1, -D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv new file mode 100644 index 0000000..6d776de --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.csv @@ -0,0 +1 @@ +15F75CAF668077F7E85B42EB01F0A81FF56ECD6191D55CB82B7D861458A18FEFC3E5AB7496F3C7B1,D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28FCD412B1F1B32E24,A7F561E038EB1ED560B3D147DB782013064C19F27ED27C6780AAF77FB8A547CEB5B4FEF422340353,925BE9FB01AFC6FB4D3E7D4990010F813408AB106C4F09CB7EE07868CC136FFF3357F624A21BED52,63BA3A7A27483EBF6671DBEF7ABB30EBEE084E58A0B077AD42A5A0989D1EE71B1B9BC0455FB0D2C3,D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.txt deleted file mode 100644 index d92d52b..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP320t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -15F75CAF668077F7E85B42EB01F0A81FF56ECD6191D55CB82B7D861458A18FEFC3E5AB7496F3C7B1, -D35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28FCD412B1F1B32E24, -A7F561E038EB1ED560B3D147DB782013064C19F27ED27C6780AAF77FB8A547CEB5B4FEF422340353, -925BE9FB01AFC6FB4D3E7D4990010F813408AB106C4F09CB7EE07868CC136FFF3357F624A21BED52, -63BA3A7A27483EBF6671DBEF7ABB30EBEE084E58A0B077AD42A5A0989D1EE71B1B9BC0455FB0D2C3, -D35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv new file mode 100644 index 0000000..9b333f0 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.csv @@ -0,0 +1 @@ +8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC53,7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F90F8AA5814A503AD4EB04A8C7DD22CE2826,4A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62D57CB4390295DBC9943AB78696FA504C11,1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E,8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315,8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.txt deleted file mode 100644 index 34ed1fc..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP384r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC53, -7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F90F8AA5814A503AD4EB04A8C7DD22CE2826, -4A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62D57CB4390295DBC9943AB78696FA504C11, -1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E, -8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315, -8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv new file mode 100644 index 0000000..60c4ffb --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.csv @@ -0,0 +1 @@ +41DFE8DD399331F7166A66076734A89CD0D2BCDB7D068E44E1F378F41ECBAE97D2D63DBC87BCCDDCCC5DA39E8589291C,8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC50,7F519EADA7BDA81BD826DBA647910F8C4B9346ED8CCDC64E4B1ABD11756DCE1D2074AA263B88805CED70355A33B471EE,18DE98B02DB9A306F2AFCD7235F72A819B80AB12EBD653172476FECD462AABFFC4FF191B946A5F54D8D0AA2F418808CC,25AB056962D30651A114AFD2755AD336747F93475B7A1FCA3B88F2B6A208CCFE469408584DC2B2912675BF5B9E582928,8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.txt deleted file mode 100644 index 6bb42c9..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP384t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -41DFE8DD399331F7166A66076734A89CD0D2BCDB7D068E44E1F378F41ECBAE97D2D63DBC87BCCDDCCC5DA39E8589291C, -8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC50, -7F519EADA7BDA81BD826DBA647910F8C4B9346ED8CCDC64E4B1ABD11756DCE1D2074AA263B88805CED70355A33B471EE, -18DE98B02DB9A306F2AFCD7235F72A819B80AB12EBD653172476FECD462AABFFC4FF191B946A5F54D8D0AA2F418808CC, -25AB056962D30651A114AFD2755AD336747F93475B7A1FCA3B88F2B6A208CCFE469408584DC2B2912675BF5B9E582928, -8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv new file mode 100644 index 0000000..0c2f051 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.csv @@ -0,0 +1 @@ +AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3,7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA,3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723,81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822,7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892,AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.txt deleted file mode 100644 index 39e205e..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP512r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3, -7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA, -3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723, -81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822, -7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892, -AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv b/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv new file mode 100644 index 0000000..1274943 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.csv @@ -0,0 +1 @@ +12EE58E6764838B69782136F0F2D3BA06E27695716054092E60A80BEDB212B64E585D90BCE13761F85C3F1D2A64E3BE8FEA2220F01EBA5EEB0F35DBD29D922AB,AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F0,7CBBBCF9441CFAB76E1890E46884EAE321F70C0BCB4981527897504BEC3E36A62BCDFA2304976540F6450085F2DAE145C22553B465763689180EA2571867423E,640ECE5C12788717B9C1BA06CBC2A6FEBA85842458C56DDE9DB1758D39C0313D82BA51735CDB3EA499AA77A7D6943A64F7A3F25FE26F06B51BAA2696FA9035DA,5B534BD595F5AF0FA2C892376C84ACE1BB4E3019B71634C01131159CAE03CEE9D9932184BEEF216BD71DF2DADF86A627306ECFF96DBB8BACE198B61E00F8B332,AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.txt b/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.txt deleted file mode 100644 index 288c2c1..0000000 --- a/src/cz/crcs/ectester/data/brainpool/brainpoolP512t1.txt +++ /dev/null @@ -1,7 +0,0 @@ -12EE58E6764838B69782136F0F2D3BA06E27695716054092E60A80BEDB212B64E585D90BCE13761F85C3F1D2A64E3BE8FEA2220F01EBA5EEB0F35DBD29D922AB, -AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F0, -7CBBBCF9441CFAB76E1890E46884EAE321F70C0BCB4981527897504BEC3E36A62BCDFA2304976540F6450085F2DAE145C22553B465763689180EA2571867423E, -640ECE5C12788717B9C1BA06CBC2A6FEBA85842458C56DDE9DB1758D39C0313D82BA51735CDB3EA499AA77A7D6943A64F7A3F25FE26F06B51BAA2696FA9035DA, -5B534BD595F5AF0FA2C892376C84ACE1BB4E3019B71634C01131159CAE03CEE9D9932184BEEF216BD71DF2DADF86A627306ECFF96DBB8BACE198B61E00F8B332, -AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069, -1 diff --git a/src/cz/crcs/ectester/data/brainpool/curves.xml b/src/cz/crcs/ectester/data/brainpool/curves.xml new file mode 100644 index 0000000..0395ba1 --- /dev/null +++ b/src/cz/crcs/ectester/data/brainpool/curves.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>brainpoolP160r1</id> + <bits>160</bits> + <field>prime</field> + <file>brainpoolP160r1.csv</file> + </curve> + <curve> + <id>brainpoolP160t1</id> + <bits>160</bits> + <field>prime</field> + <file>brainpoolP160t1.csv</file> + </curve> + <curve> + <id>brainpoolP192r1</id> + <bits>192</bits> + <field>prime</field> + <file>brainpoolP192r1.csv</file> + </curve> + <curve> + <id>brainpoolP192t1</id> + <bits>192</bits> + <field>prime</field> + <file>brainpoolP192t1.csv</file> + </curve> + <curve> + <id>brainpoolP224r1</id> + <bits>224</bits> + <field>prime</field> + <file>brainpoolP224r1.csv</file> + </curve> + <curve> + <id>brainpoolP224t1</id> + <bits>224</bits> + <field>prime</field> + <file>brainpoolP224t1.csv</file> + </curve> + <curve> + <id>brainpoolP256r1</id> + <bits>256</bits> + <field>prime</field> + <file>brainpoolP256r1.csv</file> + </curve> + <curve> + <id>brainpoolP256t1</id> + <bits>256</bits> + <field>prime</field> + <file>brainpoolP256t1.csv</file> + </curve> + <curve> + <id>brainpoolP320r1</id> + <bits>320</bits> + <field>prime</field> + <file>brainpoolP320r1.csv</file> + </curve> + <curve> + <id>brainpoolP320t1</id> + <bits>320</bits> + <field>prime</field> + <file>brainpoolP320t1.csv</file> + </curve> + <curve> + <id>brainpoolP384r1</id> + <bits>384</bits> + <field>prime</field> + <file>brainpoolP384r1.csv</file> + </curve> + <curve> + <id>brainpoolP384t1</id> + <bits>384</bits> + <field>prime</field> + <file>brainpoolP384t1.csv</file> + </curve> + <curve> + <id>brainpoolP512r1</id> + <bits>512</bits> + <field>prime</field> + <file>brainpoolP512r1.csv</file> + </curve> + <curve> + <id>brainpoolP512t1</id> + <bits>512</bits> + <field>prime</field> + <file>brainpoolP512t1.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/categories.xml b/src/cz/crcs/ectester/data/categories.xml new file mode 100644 index 0000000..5537c98 --- /dev/null +++ b/src/cz/crcs/ectester/data/categories.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<categories xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves schema.xsd"> + <category> + <name>anomalous</name> + <directory>anomalous</directory> + <desc>These prime field curves have the same order as the field order, and are susceptible to attacks reducing ECDLP over a multiplicative group of the curve, to DLP over an additive group of the underlying field, which is easy.</desc> + </category> + <category> + <name>brainpool</name> + <directory>brainpool</directory> + <desc>ECC Brainpool Standard Curves and Curve Generation v. 1.0 19.10.2005"</desc> + </category> + <category> + <name>nist</name> + <directory>nist</directory> + <desc>RECOMMENDED ELLIPTIC CURVES FOR FEDERAL GOVERNMENT USE July 1999"</desc> + </category> + <category> + <name>secg</name> + <directory>secg</directory> + <desc>SEC 2: Recommended Elliptic Curve Domain Parameters version 2.0 January 27, 2010 </desc> + </category> + <category> + <name>smallpub</name> + <directory>smallpub</directory> + <desc>Non-prime order curves, with points of very small order pregenerated. Useful for testing in ECDH.</desc> + </category> + <category> + <name>wrong</name> + <directory>wrong</directory> + <desc>Wrong field curves. These should definitely give an error when used. Since the "prime" used for the field are not prime, and the field polynomials are also not irreducible. Simply put these parameters don't specify a valid elliptic curve.</desc> + </category> +</categories>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/curves.xml b/src/cz/crcs/ectester/data/nist/curves.xml new file mode 100644 index 0000000..d9c1717 --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/curves.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>P-192</id> + <bits>192</bits> + <field>prime</field> + <file>p192.csv</file> + </curve> + <curve> + <id>P-224</id> + <bits>224</bits> + <field>prime</field> + <file>p224.csv</file> + </curve> + <curve> + <id>P-256</id> + <bits>256</bits> + <field>prime</field> + <file>p256.csv</file> + </curve> + <curve> + <id>P-384</id> + <bits>384</bits> + <field>prime</field> + <file>p384.csv</file> + </curve> + <curve> + <id>P-521</id> + <bits>521</bits> + <field>prime</field> + <file>p521.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p192.csv b/src/cz/crcs/ectester/data/nist/p192.csv new file mode 100644 index 0000000..a1f8724 --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/p192.csv @@ -0,0 +1 @@ +fffffffffffffffffffffffffffffffeffffffffffffffff,fffffffffffffffffffffffffffffffefffffffffffffffc,64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1,188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012,07192b95ffc8da78631011ed6b24cdd573f977a11e794811,ffffffffffffffffffffffff99def836146bc9b1b4d22831,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p192.txt b/src/cz/crcs/ectester/data/nist/p192.txt deleted file mode 100644 index 0402da7..0000000 --- a/src/cz/crcs/ectester/data/nist/p192.txt +++ /dev/null @@ -1,7 +0,0 @@ -fffffffffffffffffffffffffffffffeffffffffffffffff, -fffffffffffffffffffffffffffffffefffffffffffffffc, -64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1, -188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012, -07192b95ffc8da78631011ed6b24cdd573f977a11e794811, -ffffffffffffffffffffffff99def836146bc9b1b4d22831, -1 diff --git a/src/cz/crcs/ectester/data/nist/p224.csv b/src/cz/crcs/ectester/data/nist/p224.csv new file mode 100644 index 0000000..d694633 --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/p224.csv @@ -0,0 +1 @@ +ffffffffffffffffffffffffffffffff000000000000000000000001,fffffffffffffffffffffffffffffffefffffffffffffffffffffffe,b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4,b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21,bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34,ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p224.txt b/src/cz/crcs/ectester/data/nist/p224.txt deleted file mode 100644 index 8dca9fe..0000000 --- a/src/cz/crcs/ectester/data/nist/p224.txt +++ /dev/null @@ -1,7 +0,0 @@ -ffffffffffffffffffffffffffffffff000000000000000000000001, -fffffffffffffffffffffffffffffffefffffffffffffffffffffffe, -b4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4, -b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21, -bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34, -ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d, -1 diff --git a/src/cz/crcs/ectester/data/nist/p256.csv b/src/cz/crcs/ectester/data/nist/p256.csv new file mode 100644 index 0000000..9f2f213 --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/p256.csv @@ -0,0 +1 @@ +ffffffff00000001000000000000000000000000ffffffffffffffffffffffff,ffffffff00000001000000000000000000000000fffffffffffffffffffffffc,5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b,6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296,4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5,ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p256.txt b/src/cz/crcs/ectester/data/nist/p256.txt deleted file mode 100644 index bc67187..0000000 --- a/src/cz/crcs/ectester/data/nist/p256.txt +++ /dev/null @@ -1,7 +0,0 @@ -ffffffff00000001000000000000000000000000ffffffffffffffffffffffff, -ffffffff00000001000000000000000000000000fffffffffffffffffffffffc, -5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b, -6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296, -4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5, -ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551, -1 diff --git a/src/cz/crcs/ectester/data/nist/p384.csv b/src/cz/crcs/ectester/data/nist/p384.csv new file mode 100644 index 0000000..ac3bf7c --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/p384.csv @@ -0,0 +1 @@ +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff,fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc,b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef,aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7,3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f,ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p384.txt b/src/cz/crcs/ectester/data/nist/p384.txt deleted file mode 100644 index 7808451..0000000 --- a/src/cz/crcs/ectester/data/nist/p384.txt +++ /dev/null @@ -1,7 +0,0 @@ -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff, -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc, -b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef, -aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7, -3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f, -ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973, -1 diff --git a/src/cz/crcs/ectester/data/nist/p521.csv b/src/cz/crcs/ectester/data/nist/p521.csv new file mode 100644 index 0000000..fee50ce --- /dev/null +++ b/src/cz/crcs/ectester/data/nist/p521.csv @@ -0,0 +1 @@ +1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff,1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc,051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00,c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66,11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650,1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/nist/p521.txt b/src/cz/crcs/ectester/data/nist/p521.txt deleted file mode 100644 index df7c46d..0000000 --- a/src/cz/crcs/ectester/data/nist/p521.txt +++ /dev/null @@ -1,7 +0,0 @@ -1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, -1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, -051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00, -c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66, -11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650, -1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409, -1 diff --git a/src/cz/crcs/ectester/data/schema.xsd b/src/cz/crcs/ectester/data/schema.xsd new file mode 100644 index 0000000..d2bc85c --- /dev/null +++ b/src/cz/crcs/ectester/data/schema.xsd @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://crcs.cz/ectester/curves" + xmlns="http://crcs.cz/ectester/curves" + elementFormDefault="qualified"> + + <xs:element name="id" type="xs:string"/> + <xs:element name="desc" type="xs:string"/> + <xs:element name="bits" type="xs:positiveInteger"/> + <xs:element name="field"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="prime"/> + <xs:enumeration value="binary"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="file" type="xs:string"/> + + <xs:element name="curve"> + <xs:complexType> + <xs:sequence> + <xs:element ref="id"/> + <xs:element ref="desc" minOccurs="0"/> + <xs:element ref="bits"/> + <xs:element ref="field"/> + <xs:element ref="file"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="curves"> + <xs:complexType> + <xs:sequence> + <xs:element ref="curve" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="privkey"> + <xs:complexType> + <xs:sequence> + <xs:element ref="file"/> + <xs:element name="curve" type="xs:string"/> + <xs:element ref="desc" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="pubkey"> + <xs:complexType> + <xs:sequence> + <xs:element ref="file"/> + <xs:element name="curve" type="xs:string"/> + <xs:element ref="desc" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="keypair"> + <xs:complexType> + <xs:sequence> + <xs:element ref="pubkey"/> + <xs:element ref="privkey"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="keys"> + <xs:complexType> + <xs:sequence> + <xs:element ref="keypair" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="privkey" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="pubkey" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="category" type="xs:string"/> + <xs:attribute name="desc" type="xs:string"/> + </xs:complexType> + </xs:element> + + <xs:element name="category"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" type="xs:string"/> + <xs:element name="directory" type="xs:string"/> + <xs:element name="desc" minOccurs="0" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="categories"> + <xs:complexType> + <xs:sequence> + <xs:element ref="category" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/curves.xml b/src/cz/crcs/ectester/data/secg/curves.xml new file mode 100644 index 0000000..d3295cb --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/curves.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>secp192k1</id> + <bits>192</bits> + <field>prime</field> + <file>secp192k1.csv</file> + </curve> + <curve> + <id>secp192r1</id> + <bits>192</bits> + <field>prime</field> + <file>secp192r1.csv</file> + </curve> + <curve> + <id>secp224r1</id> + <bits>224</bits> + <field>prime</field> + <file>secp224r1.csv</file> + </curve> + <curve> + <id>secp256k1</id> + <bits>256</bits> + <field>prime</field> + <file>secp256k1.csv</file> + </curve> + <curve> + <id>secp256r1</id> + <bits>256</bits> + <field>prime</field> + <file>secp256r1.csv</file> + </curve> + <curve> + <id>secp384r1</id> + <bits>384</bits> + <field>prime</field> + <file>secp384r1.csv</file> + </curve> + <curve> + <id>secp521r1</id> + <bits>521</bits> + <field>prime</field> + <file>secp521r.csv</file> + </curve> + + <curve> + <id>sect163k1</id> + <bits>163</bits> + <field>binary</field> + <file>sect163k1.csv</file> + </curve> + <curve> + <id>sect163r1</id> + <bits>163</bits> + <field>binary</field> + <file>sect163r1.csv</file> + </curve> + <curve> + <id>sect163r2</id> + <bits>163</bits> + <field>binary</field> + <file>sect163r2.csv</file> + </curve> + <curve> + <id>sect233k1</id> + <bits>233</bits> + <field>binary</field> + <file>sect233k1.csv</file> + </curve> + <curve> + <id>sect233r1</id> + <bits>233</bits> + <field>binary</field> + <file>sect233r1.csv</file> + </curve> + <curve> + <id>sect239k1</id> + <bits>233</bits> + <field>binary</field> + <file>sect239k1.csv</file> + </curve> + <curve> + <id>sect283k1</id> + <bits>283</bits> + <field>binary</field> + <file>sect283k1.csv</file> + </curve> + <curve> + <id>sect283r1</id> + <bits>283</bits> + <field>binary</field> + <file>sect283r1.csv</file> + </curve> + <curve> + <id>sect409k1</id> + <bits>409</bits> + <field>binary</field> + <file>sect409k1.csv</file> + </curve> + <curve> + <id>sect409r1</id> + <bits>409</bits> + <field>binary</field> + <file>sect409r1.csv</file> + </curve> + <curve> + <id>sect571k1</id> + <bits>571</bits> + <field>binary</field> + <file>sect571k1.csv</file> + </curve> + <curve> + <id>sect571r1</id> + <bits>571</bits> + <field>binary</field> + <file>sect571r1.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp192k1.csv b/src/cz/crcs/ectester/data/secg/secp192k1.csv new file mode 100644 index 0000000..be97a85 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp192k1.csv @@ -0,0 +1 @@ +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37,000000000000000000000000000000000000000000000000,000000000000000000000000000000000000000000000003,DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D,9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D,FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp192k1.txt b/src/cz/crcs/ectester/data/secg/secp192k1.txt deleted file mode 100644 index c408b5e..0000000 --- a/src/cz/crcs/ectester/data/secg/secp192k1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFEE37, -00000000 00000000 00000000 00000000 00000000 00000000, -00000000 00000000 00000000 00000000 00000000 00000003, -DB4FF10E C057E9AE 26B07D02 80B7F434 1DA5D1B1 EAE06C7D, -9B2F2F6D 9C5628A7 844163D0 15BE8634 4082AA88 D95E2F9D, -FFFFFFFF FFFFFFFF FFFFFFFE 26F2FC17 0F69466A 74DEFD8D, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp192r1.csv b/src/cz/crcs/ectester/data/secg/secp192r1.csv new file mode 100644 index 0000000..bc67efd --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp192r1.csv @@ -0,0 +1 @@ +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC,64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1,188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012,07192B95FFC8DA78631011ED6B24CDD573F977A11E794811,FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp192r1.txt b/src/cz/crcs/ectester/data/secg/secp192r1.txt deleted file mode 100644 index 29305b0..0000000 --- a/src/cz/crcs/ectester/data/secg/secp192r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF, -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFC, -64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1, -188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012, -07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811, -FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp224r1.csv b/src/cz/crcs/ectester/data/secg/secp224r1.csv new file mode 100644 index 0000000..4a1223c --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp224r1.csv @@ -0,0 +1 @@ +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE,B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4,B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21,BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34,FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp224r1.txt b/src/cz/crcs/ectester/data/secg/secp224r1.txt deleted file mode 100644 index f8f592e..0000000 --- a/src/cz/crcs/ectester/data/secg/secp224r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 00000000 00000001, -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFE, -B4050A85 0C04B3AB F5413256 5044B0B7 D7BFD8BA 270B3943 2355FFB4, -B70E0CBD 6BB4BF7F 321390B9 4A03C1D3 56C21122 343280D6 115C1D21, -BD376388 B5F723FB 4C22DFE6 CD4375A0 5A074764 44D58199 85007E34, -FFFFFFFF FFFFFFFF FFFFFFFF FFFF16A2 E0B8F03E 13DD2945 5C5C2A3D, -1 diff --git a/src/cz/crcs/ectester/data/secg/secp256k1.csv b/src/cz/crcs/ectester/data/secg/secp256k1.csv new file mode 100644 index 0000000..f0c9290 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp256k1.csv @@ -0,0 +1 @@ +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F,0000000000000000000000000000000000000000000000000000000000000000,0000000000000000000000000000000000000000000000000000000000000007,79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp256k1.txt b/src/cz/crcs/ectester/data/secg/secp256k1.txt deleted file mode 100644 index 19eeef7..0000000 --- a/src/cz/crcs/ectester/data/secg/secp256k1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007, -79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798, -483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8, -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141, -1 diff --git a/src/cz/crcs/ectester/data/secg/secp256r1.csv b/src/cz/crcs/ectester/data/secg/secp256r1.csv new file mode 100644 index 0000000..9b5d2e6 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp256r1.csv @@ -0,0 +1 @@ +FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF,FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC,5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B,6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296,4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5,FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp256r1.txt b/src/cz/crcs/ectester/data/secg/secp256r1.txt deleted file mode 100644 index 060f5aa..0000000 --- a/src/cz/crcs/ectester/data/secg/secp256r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF, -FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFC, -5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B, -6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0 F4A13945 D898C296, -4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB64068 37BF51F5, -FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632551, -1 diff --git a/src/cz/crcs/ectester/data/secg/secp384r1.csv b/src/cz/crcs/ectester/data/secg/secp384r1.csv new file mode 100644 index 0000000..398cead --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp384r1.csv @@ -0,0 +1 @@ +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC,B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF,AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7,3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp384r1.txt b/src/cz/crcs/ectester/data/secg/secp384r1.txt deleted file mode 100644 index 08472ae..0000000 --- a/src/cz/crcs/ectester/data/secg/secp384r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFF, -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFC, -B3312FA7 E23EE7E4 988E056B E3F82D19 181D9C6E FE814112 0314088F 5013875A C656398D 8A2ED19D 2A85C8ED D3EC2AEF, -AA87CA22 BE8B0537 8EB1C71E F320AD74 6E1D3B62 8BA79B98 59F741E0 82542A38 5502F25D BF55296C 3A545E38 72760AB7, -3617DE4A 96262C6F 5D9E98BF 9292DC29 F8F41DBD 289A147C E9DA3113 B5F0B8C0 0A60B1CE 1D7E819D 7A431D7C 90EA0E5F, -FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF C7634D81 F4372DDF 581A0DB2 48B0A77A ECEC196A CCC52973, -1 diff --git a/src/cz/crcs/ectester/data/secg/secp521r1.csv b/src/cz/crcs/ectester/data/secg/secp521r1.csv new file mode 100644 index 0000000..f93d395 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/secp521r1.csv @@ -0,0 +1 @@ +01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC,0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00,00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66,011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650,01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/secp521r1.txt b/src/cz/crcs/ectester/data/secg/secp521r1.txt deleted file mode 100644 index 9e0f5d3..0000000 --- a/src/cz/crcs/ectester/data/secg/secp521r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF, -01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFC, -0051 953EB961 8E1C9A1F 929A21A0 B68540EE A2DA725B 99B315F3 B8B48991 8EF109E1 56193951 EC7E937B 1652C0BD 3BB1BF07 3573DF88 3D2C34F1 EF451FD4 6B503F00, -00C6 858E06B7 0404E9CD 9E3ECB66 2395B442 9C648139 053FB521 F828AF60 6B4D3DBA A14B5E77 EFE75928 FE1DC127 A2FFA8DE 3348B3C1 856A429B F97E7E31 C2E5BD66, -0118 39296A78 9A3BC004 5C8A5FB4 2C7D1BD9 98F54449 579B4468 17AFBD17 273E662C 97EE7299 5EF42640 C550B901 3FAD0761 353C7086 A272C240 88BE9476 9FD16650, -01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFA 51868783 BF2F966B 7FCC0148 F709A5D0 3BB5C9B8 899C47AE BB6FB71E 91386409, -1 diff --git a/src/cz/crcs/ectester/data/secg/sect163k1.csv b/src/cz/crcs/ectester/data/secg/sect163k1.csv new file mode 100644 index 0000000..76d4ed5 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect163k1.csv @@ -0,0 +1 @@ +00a3,0007,0006,0003,000000000000000000000000000000000000000001,000000000000000000000000000000000000000001,02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8,0289070FB05D38FF58321F2E800536D538CCDAA3D9,04000000000000000000020108A2E0CC0D99F8A5EF,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect163k1.txt b/src/cz/crcs/ectester/data/secg/sect163k1.txt deleted file mode 100644 index 6e5142e..0000000 --- a/src/cz/crcs/ectester/data/secg/sect163k1.txt +++ /dev/null @@ -1,9 +0,0 @@ -0007, -0006, -0003, -00 00000000 00000000 00000000 00000000 00000001, -00 00000000 00000000 00000000 00000000 00000001, -02 FE13C053 7BBC11AC AA07D793 DE4E6D5E 5C94EEE8, -02 89070FB0 5D38FF58 321F2E80 0536D538 CCDAA3D9, -04 00000000 00000000 00020108 A2E0CC0D 99F8A5EF, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect163r1.csv b/src/cz/crcs/ectester/data/secg/sect163r1.csv new file mode 100644 index 0000000..987ca0d --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect163r1.csv @@ -0,0 +1 @@ +00a3,0007,0006,0003,07B6882CAAEFA84F9554FF8428BD88E246D2782AE2,0713612DCDDCB40AAB946BDA29CA91F73AF958AFD9,0369979697AB43897789566789567F787A7876A654,00435EDB42EFAFB2989D51FEFCE3C80988F41FF883,03FFFFFFFFFFFFFFFFFFFF48AAB689C29CA710279B,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect163r1.txt b/src/cz/crcs/ectester/data/secg/sect163r1.txt deleted file mode 100644 index 879f79b..0000000 --- a/src/cz/crcs/ectester/data/secg/sect163r1.txt +++ /dev/null @@ -1,9 +0,0 @@ -0007, -0006, -0003, -07 B6882CAA EFA84F95 54FF8428 BD88E246 D2782AE2, -07 13612DCD DCB40AAB 946BDA29 CA91F73A F958AFD9, -03 69979697 AB438977 89566789 567F787A 7876A654, -00 435EDB42 EFAFB298 9D51FEFC E3C80988 F41FF883, -03 FFFFFFFF FFFFFFFF FFFF48AA B689C29C A710279B, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect163r2.csv b/src/cz/crcs/ectester/data/secg/sect163r2.csv new file mode 100644 index 0000000..4608c0c --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect163r2.csv @@ -0,0 +1 @@ +00a3,0007,0006,0003,000000000000000000000000000000000000000001,020A601907B8C953CA1481EB10512F78744A3205FD,03F0EBA16286A2D57EA0991168D4994637E8343E36,00D51FBC6C71A0094FA2CDD545B11C5C0C797324F1,040000000000000000000292FE77E70C12A4234C33,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect163r2.txt b/src/cz/crcs/ectester/data/secg/sect163r2.txt deleted file mode 100644 index eb7d453..0000000 --- a/src/cz/crcs/ectester/data/secg/sect163r2.txt +++ /dev/null @@ -1,9 +0,0 @@ -0007, -0006, -0003, -00 00000000 00000000 00000000 00000000 00000001, -02 0A601907 B8C953CA 1481EB10 512F7874 4A3205FD, -03 F0EBA162 86A2D57E A0991168 D4994637 E8343E36, -00 D51FBC6C 71A0094F A2CDD545 B11C5C0C 797324F1, -04 00000000 00000000 000292FE 77E70C12 A4234C33, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect233k1.csv b/src/cz/crcs/ectester/data/secg/sect233k1.csv new file mode 100644 index 0000000..4aeebd2 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect233k1.csv @@ -0,0 +1 @@ +004A,000000000000000000000000000000000000000000000000000000000000,000000000000000000000000000000000000000000000000000000000001,017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126,01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3,8000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF,4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect233k1.txt b/src/cz/crcs/ectester/data/secg/sect233k1.txt deleted file mode 100644 index b85fef0..0000000 --- a/src/cz/crcs/ectester/data/secg/sect233k1.txt +++ /dev/null @@ -1,7 +0,0 @@ -004A, -0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -0000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -0172 32BA853A 7E731AF1 29F22FF4 149563A4 19C26BF5 0A4C9D6E EFAD6126, -01DB 537DECE8 19B7F70F 555A67C4 27A8CD9B F18AEB9B 56E0C110 56FAE6A3, -80 00000000 00000000 00000000 00069D5B B915BCD4 6EFB1AD5 F173ABDF, -4 diff --git a/src/cz/crcs/ectester/data/secg/sect233r1.csv b/src/cz/crcs/ectester/data/secg/sect233r1.csv new file mode 100644 index 0000000..57ef35d --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect233r1.csv @@ -0,0 +1 @@ +004A,000000000000000000000000000000000000000000000000000000000001,0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD,00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B,01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052,01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect233r1.txt b/src/cz/crcs/ectester/data/secg/sect233r1.txt deleted file mode 100644 index d0c6f14..0000000 --- a/src/cz/crcs/ectester/data/secg/sect233r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -004A, -0000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -0066 647EDE6C 332C7F8C 0923BB58 213B333B 20E9CE42 81FE115F 7D8F90AD, -00FA C9DFCBAC 8313BB21 39F1BB75 5FEF65BC 391F8B36 F8F8EB73 71FD558B, -0100 6A08A419 03350678 E58528BE BF8A0BEF F867A7CA 36716F7E 01F81052, -0100 00000000 00000000 00000000 0013E974 E72F8A69 22031D26 03CFE0D7, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect239k1.csv b/src/cz/crcs/ectester/data/secg/sect239k1.csv new file mode 100644 index 0000000..fdb64a9 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect239k1.csv @@ -0,0 +1 @@ +009E,000000000000000000000000000000000000000000000000000000000000,000000000000000000000000000000000000000000000000000000000001,29A0B6A887A983E9730988A68727A8B2D126C44CC2CC7B2A6555193035DC,76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA,2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5,4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect239k1.txt b/src/cz/crcs/ectester/data/secg/sect239k1.txt deleted file mode 100644 index d01bb08..0000000 --- a/src/cz/crcs/ectester/data/secg/sect239k1.txt +++ /dev/null @@ -1,7 +0,0 @@ -009E, -0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -0000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -29A0 B6A887A9 83E97309 88A68727 A8B2D126 C44CC2CC 7B2A6555 193035DC, -7631 0804F12E 549BDB01 1C103089 E73510AC B275FC31 2A5DC6B7 6553F0CA, -2000 00000000 00000000 00000000 005A79FE C67CB6E9 1F1C1DA8 00E478A5, -4 diff --git a/src/cz/crcs/ectester/data/secg/sect283k1.csv b/src/cz/crcs/ectester/data/secg/sect283k1.csv new file mode 100644 index 0000000..07e7db2 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect283k1.csv @@ -0,0 +1,10 @@ +011B, +000C, +0007, +0005, +000000000000000000000000000000000000000000000000000000000000000000000000, +000000000000000000000000000000000000000000000000000000000000000000000001, +0503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836, +01CCDA380F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259, +01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AE2ED07577265DFF7F94451E061E163C61, +4 diff --git a/src/cz/crcs/ectester/data/secg/sect283k1.txt b/src/cz/crcs/ectester/data/secg/sect283k1.txt deleted file mode 100644 index cc62698..0000000 --- a/src/cz/crcs/ectester/data/secg/sect283k1.txt +++ /dev/null @@ -1,9 +0,0 @@ -000C, -0007, -0005, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -0503213F 78CA4488 3F1A3B81 62F188E5 53CD265F 23C1567A 16876913 B0C2AC24 58492836, -01CCDA38 0F1C9E31 8D90F95D 07E5426F E87E45C0 E8184698 E4596236 4E341161 77DD2259, -01FFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFE9AE 2ED07577 265DFF7F 94451E06 1E163C61, -4 diff --git a/src/cz/crcs/ectester/data/secg/sect283r1.csv b/src/cz/crcs/ectester/data/secg/sect283r1.csv new file mode 100644 index 0000000..db9ce3e --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect283r1.csv @@ -0,0 +1 @@ +011B,000C,0007,0005,000000000000000000000000000000000000000000000000000000000000000000000001,027B680AC8B8596DA5A4AF8A19A0303FCA97FD7645309FA2A581485AF6263E313B79A2F5,05F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053,03676854FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4,03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF90399660FC938A90165B042A7CEFADB307,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect283r1.txt b/src/cz/crcs/ectester/data/secg/sect283r1.txt deleted file mode 100644 index 27e2ff2..0000000 --- a/src/cz/crcs/ectester/data/secg/sect283r1.txt +++ /dev/null @@ -1,9 +0,0 @@ -000C, -0007, -0005, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -027B680A C8B8596D A5A4AF8A 19A0303F CA97FD76 45309FA2 A581485A F6263E31 3B79A2F5, -05F93925 8DB7DD90 E1934F8C 70B0DFEC 2EED25B8 557EAC9C 80E2E198 F8CDBECD 86B12053, -03676854 FE24141C B98FE6D4 B20D02B4 516FF702 350EDDB0 826779C8 13F0DF45 BE8112F4, -03FFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFEF90 399660FC 938A9016 5B042A7C EFADB307, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect409k1.csv b/src/cz/crcs/ectester/data/secg/sect409k1.csv new file mode 100644 index 0000000..887d921 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect409k1.csv @@ -0,0 +1 @@ +0057,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746,01E369050B7C4E42ACBA1DACBF04299C3460782F918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B,7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5F83B2D4EA20400EC4557D5ED3E3E7CA5B4B5C83B8E01E5FCF,4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect409k1.txt b/src/cz/crcs/ectester/data/secg/sect409k1.txt deleted file mode 100644 index aeb2e76..0000000 --- a/src/cz/crcs/ectester/data/secg/sect409k1.txt +++ /dev/null @@ -1,7 +0,0 @@ -0057, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -0060F05F 658F49C1 AD3AB189 0F718421 0EFD0987 E307C84C 27ACCFB8 F9F67CC2 C460189E B5AAAA62 EE222EB1 B35540CF E9023746, -01E36905 0B7C4E42 ACBA1DAC BF04299C 3460782F 918EA427 E6325165 E9EA10E3 DA5F6C42 E9C55215 AA9CA27A 5863EC48 D8E0286B, -7FFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFE5F 83B2D4EA 20400EC4 557D5ED3 E3E7CA5B 4B5C83B8 E01E5FCF, -4 diff --git a/src/cz/crcs/ectester/data/secg/sect409r1.csv b/src/cz/crcs/ectester/data/secg/sect409r1.csv new file mode 100644 index 0000000..a646e97 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect409r1.csv @@ -0,0 +1 @@ +0057,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0021A5C2C8EE9FEB5C4B9A753B7B476B7FD6422EF1F3DD674761FA99D6AC27C8A9A197B272822F6CD57A55AA4F50AE317B13545F,015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7,0061B1CFAB6BE5F32BBFA78324ED106A7636B9C5A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706,010000000000000000000000000000000000000000000000000001E2AAD6A612F33307BE5FA47C3C9E052F838164CD37D9A21173,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect409r1.txt b/src/cz/crcs/ectester/data/secg/sect409r1.txt deleted file mode 100644 index 5ac19dc..0000000 --- a/src/cz/crcs/ectester/data/secg/sect409r1.txt +++ /dev/null @@ -1,7 +0,0 @@ -0057, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -0021A5C2 C8EE9FEB 5C4B9A75 3B7B476B 7FD6422E F1F3DD67 4761FA99 D6AC27C8 A9A197B2 72822F6C D57A55AA 4F50AE31 7B13545F, -015D4860 D088DDB3 496B0C60 64756260 441CDE4A F1771D4D B01FFE5B 34E59703 DC255A86 8A118051 5603AEAB 60794E54 BB7996A7, -0061B1CF AB6BE5F3 2BBFA783 24ED106A 7636B9C5 A7BD198D 0158AA4F 5488D08F 38514F1F DF4B4F40 D2181B36 81C364BA 0273C706, -01000000 00000000 00000000 00000000 00000000 00000000 000001E2 AAD6A612 F33307BE 5FA47C3C 9E052F83 8164CD37 D9A21173, -2 diff --git a/src/cz/crcs/ectester/data/secg/sect571k1.csv b/src/cz/crcs/ectester/data/secg/sect571k1.csv new file mode 100644 index 0000000..59622ba --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect571k1.csv @@ -0,0 +1 @@ +023B,000A,0005,0002,000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972,0349DC807F4FBF374F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0AC44AEA74FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3,020000000000000000000000000000000000000000000000000000000000000000000000131850E1F19A63E4B391A8DB917F4138B630D84BE5D639381E91DEB45CFE778F637C1001,4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect571k1.txt b/src/cz/crcs/ectester/data/secg/sect571k1.txt deleted file mode 100644 index 7d5fdf4..0000000 --- a/src/cz/crcs/ectester/data/secg/sect571k1.txt +++ /dev/null @@ -1,9 +0,0 @@ -000A, -0005, -0002, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -026EB7A8 59923FBC 82189631 F8103FE4 AC9CA297 0012D5D4 60248048 01841CA4 43709584 93B205E6 47DA304D B4CEB08C BBD1BA39 494776FB 988B4717 4DCA88C7 E2945283 A01C8972, -0349DC80 7F4FBF37 4F4AEADE 3BCA9531 4DD58CEC 9F307A54 FFC61EFC 006D8A2C 9D4979C0 AC44AEA7 4FBEBBB9 F772AEDC B620B01A 7BA7AF1B 320430C8 591984F6 01CD4C14 3EF1C7A3, -02000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 131850E1 F19A63E4 B391A8DB 917F4138 B630D84B E5D63938 1E91DEB4 5CFE778F 637C1001, -4 diff --git a/src/cz/crcs/ectester/data/secg/sect571r1.csv b/src/cz/crcs/ectester/data/secg/sect571r1.csv new file mode 100644 index 0000000..c4b3b09 --- /dev/null +++ b/src/cz/crcs/ectester/data/secg/sect571r1.csv @@ -0,0 +1 @@ +023B,000A,0005,0002,000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,02F40E7E2221F295DE297117B7F3D62F5C6A97FFCB8CEFF1CD6BA8CE4A9A18AD84FFABBD8EFA59332BE7AD6756A66E294AFD185A78FF12AA520E4DE739BACA0C7FFEFF7F2955727A,0303001D34B856296C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950F4C0D293CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19,037BF27342DA639B6DCCFFFEB73D69D78C6C27A6009CBBCA1980F8533921E8A684423E43BAB08A576291AF8F461BB2A8B3531D2F0485C19B16E2F1516E23DD3C1A4827AF1B8AC15B,03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE661CE18FF55987308059B186823851EC7DD9CA1161DE93D5174D66E8382E9BB2FE84E47,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/secg/sect571r1.txt b/src/cz/crcs/ectester/data/secg/sect571r1.txt deleted file mode 100644 index 850f0b9..0000000 --- a/src/cz/crcs/ectester/data/secg/sect571r1.txt +++ /dev/null @@ -1,9 +0,0 @@ -000A, -0005, -0002, -00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001, -02F40E7E 2221F295 DE297117 B7F3D62F 5C6A97FF CB8CEFF1 CD6BA8CE 4A9A18AD 84FFABBD 8EFA5933 2BE7AD67 56A66E29 4AFD185A 78FF12AA 520E4DE7 39BACA0C 7FFEFF7F 2955727A, -0303001D 34B85629 6C16C0D4 0D3CD775 0A93D1D2 955FA80A A5F40FC8 DB7B2ABD BDE53950 F4C0D293 CDD711A3 5B67FB14 99AE6003 8614F139 4ABFA3B4 C850D927 E1E7769C 8EEC2D19, -037BF273 42DA639B 6DCCFFFE B73D69D7 8C6C27A6 009CBBCA 1980F853 3921E8A6 84423E43 BAB08A57 6291AF8F 461BB2A8 B3531D2F 0485C19B 16E2F151 6E23DD3C 1A4827AF 1B8AC15B, -03FFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF E661CE18 FF559873 08059B18 6823851E C7DD9CA1 161DE93D 5174D66E 8382E9BB 2FE84E47, -2 diff --git a/src/cz/crcs/ectester/data/smallpub/curves.xml b/src/cz/crcs/ectester/data/smallpub/curves.xml new file mode 100644 index 0000000..1f1f146 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/curves.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>ecsp128</id> + <bits>128</bits> + <field>prime</field> + <file>ecsp128.csv</file> + </curve> + <curve> + <id>ecsp160</id> + <bits>160</bits> + <field>prime</field> + <file>ecsp160.csv</file> + </curve> + <curve> + <id>ecsp192</id> + <bits>192</bits> + <field>prime</field> + <file>ecsp192.csv</file> + </curve> + <curve> + <id>ecsp224</id> + <bits>224</bits> + <field>prime</field> + <file>ecsp224.csv</file> + </curve> + <curve> + <id>ecsp256</id> + <bits>256</bits> + <field>prime</field> + <file>ecsp256.csv</file> + </curve> + <curve> + <id>ecsp384</id> + <bits>384</bits> + <field>prime</field> + <file>ecsp384.csv</file> + </curve> + <curve> + <id>ecsp521</id> + <bits>521</bits> + <field>prime</field> + <file>ecsp521.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp128.csv b/src/cz/crcs/ectester/data/smallpub/ecsp128.csv new file mode 100644 index 0000000..f541010 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp128.csv @@ -0,0 +1 @@ +cfba21fd0483b1f300fa2506a5a566ef,36d9a5acac27a008e36cbe3e9f103fde,a67cf5fa09fb1db902068c87046ae21e,47d78391a4b9fff6a0db1292f9cd0e6a,9aed9c92f8bb3dbd42402165a270bd6f,cfba21fd0483b1f333d61a5af6ada2c7,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp128.txt b/src/cz/crcs/ectester/data/smallpub/ecsp128.txt deleted file mode 100644 index 29cfe3b..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp128.txt +++ /dev/null @@ -1,7 +0,0 @@ -cfba21fd0483b1f300fa2506a5a566ef, -36d9a5acac27a008e36cbe3e9f103fde, -a67cf5fa09fb1db902068c87046ae21e, -47d78391a4b9fff6a0db1292f9cd0e6a, -9aed9c92f8bb3dbd42402165a270bd6f, -cfba21fd0483b1f333d61a5af6ada2c7, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.csv new file mode 100644 index 0000000..78a8cb4 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.csv @@ -0,0 +1 @@ +63901e122761d9c16565b2f38e991f71,b9d99fbc3154a96ca23ecff770cbbe4f
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.txt deleted file mode 100644 index ee1f34d..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp128_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -63901e122761d9c16565b2f38e991f71, -b9d99fbc3154a96ca23ecff770cbbe4f
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp160.csv b/src/cz/crcs/ectester/data/smallpub/ecsp160.csv new file mode 100644 index 0000000..e556020 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp160.csv @@ -0,0 +1 @@ +dc13490ff9857b111f44c0500770a6457e683223,a3ecd7d51e79d72d2700184c795aa8a6b8e66573,8ac43592905f995cb13f3694317bf470adafb645,5f8e88afc117c722859fe8e55647bca69ba82150,93e6dcaee271e9f2838c98b7d06eccc5d7c800e5,dc13490ff9857b111f446ef4a6d1e1715f6a6dff,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp160.txt b/src/cz/crcs/ectester/data/smallpub/ecsp160.txt deleted file mode 100644 index 49824d9..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp160.txt +++ /dev/null @@ -1,7 +0,0 @@ -dc13490ff9857b111f44c0500770a6457e683223, -a3ecd7d51e79d72d2700184c795aa8a6b8e66573, -8ac43592905f995cb13f3694317bf470adafb645, -5f8e88afc117c722859fe8e55647bca69ba82150, -93e6dcaee271e9f2838c98b7d06eccc5d7c800e5, -dc13490ff9857b111f446ef4a6d1e1715f6a6dff, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.csv new file mode 100644 index 0000000..7b92733 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.csv @@ -0,0 +1 @@ +59c9c3c8aef29f1c1c500cafb4726da6086e6eb0,d695a76005eddb26afd40ee20904778bb3497bb1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.txt deleted file mode 100644 index e2e164e..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp160_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -59c9c3c8aef29f1c1c500cafb4726da6086e6eb0, -d695a76005eddb26afd40ee20904778bb3497bb1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp192.csv b/src/cz/crcs/ectester/data/smallpub/ecsp192.csv new file mode 100644 index 0000000..bc55089 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp192.csv @@ -0,0 +1 @@ +ce714cc3a15ce7e5dab068c9a1f8be00aad480abccaeefc3,597c781f64c33eb8ef919c415911518ea323be88b9437caf,f81585a1b18f233d70add7ee1342d2035c386a92e3ab8320,150ff0a40deac6462b5987418617fdeeb6bfd76d4d60a067,843d577371c5dce122c2ff206b2f42fa0b842b49bdaf990f,ce714cc3a15ce7e5dab068c9a30bc92915bd8662ae882887,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp192.txt b/src/cz/crcs/ectester/data/smallpub/ecsp192.txt deleted file mode 100644 index ccb5537..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp192.txt +++ /dev/null @@ -1,7 +0,0 @@ -ce714cc3a15ce7e5dab068c9a1f8be00aad480abccaeefc3, -597c781f64c33eb8ef919c415911518ea323be88b9437caf, -f81585a1b18f233d70add7ee1342d2035c386a92e3ab8320, -150ff0a40deac6462b5987418617fdeeb6bfd76d4d60a067, -843d577371c5dce122c2ff206b2f42fa0b842b49bdaf990f, -ce714cc3a15ce7e5dab068c9a30bc92915bd8662ae882887, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.csv new file mode 100644 index 0000000..5432c1d --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.csv @@ -0,0 +1 @@ +17047f91dbe33032c9d09bd29ceadd8a09ccc32ac6309541,6a726de54fbd59cfc352e838b337fa005a97180816135e6a
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.txt deleted file mode 100644 index ec7f822..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp192_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -17047f91dbe33032c9d09bd29ceadd8a09ccc32ac6309541, -6a726de54fbd59cfc352e838b337fa005a97180816135e6a
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp224.csv b/src/cz/crcs/ectester/data/smallpub/ecsp224.csv new file mode 100644 index 0000000..09b9c01 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp224.csv @@ -0,0 +1 @@ +eed4c3d98f1c9b9518f116263db770366877d12df6a9cf08b96dd4bb,8d4dddb0317d6a6bf9a4dbbed3a43fa21f79869c5ab9729d239e9282,46873614be3dffc9218082322210c0616140286f2d160503c1a9250d,961bbb1fc9955a71c91a50aedcd2f14fccb660af992b0030b9c90b36,1c00f6d0bd405dd7d3016fb8c0c75e4ecec70fe61237f6d24008a5fd,eed4c3d98f1c9b9518f116263db821c36a06adae17162ad3162f68c3,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp224.txt b/src/cz/crcs/ectester/data/smallpub/ecsp224.txt deleted file mode 100644 index 894e669..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp224.txt +++ /dev/null @@ -1,7 +0,0 @@ -eed4c3d98f1c9b9518f116263db770366877d12df6a9cf08b96dd4bb, -8d4dddb0317d6a6bf9a4dbbed3a43fa21f79869c5ab9729d239e9282, -46873614be3dffc9218082322210c0616140286f2d160503c1a9250d, -961bbb1fc9955a71c91a50aedcd2f14fccb660af992b0030b9c90b36, -1c00f6d0bd405dd7d3016fb8c0c75e4ecec70fe61237f6d24008a5fd, -eed4c3d98f1c9b9518f116263db821c36a06adae17162ad3162f68c3, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.csv new file mode 100644 index 0000000..319ca3a --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.csv @@ -0,0 +1 @@ +cfd92aea0f79190c48ca703eb8a9baa7099a23bb39578261fe4d0f04,257a3d98de44bd25404977a4ac7fc56d3d4e827f085b7cf5247524c4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.txt deleted file mode 100644 index 0999b99..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp224_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -cfd92aea0f79190c48ca703eb8a9baa7099a23bb39578261fe4d0f04, -257a3d98de44bd25404977a4ac7fc56d3d4e827f085b7cf5247524c4
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp256.csv b/src/cz/crcs/ectester/data/smallpub/ecsp256.csv new file mode 100644 index 0000000..d5bf3c0 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp256.csv @@ -0,0 +1 @@ +c9a803b1eaf849f1c02cfd1dbfac68623985c88b37103b338ae11d2597ee8445,4841c5775a24a884ca36ec362b44645a2f60b25d002c4fc1d9f139870fe0cc71,1b097456751f3534190dae568f80a2c6ff55dddfe072a7dc6467a4b6476b6880,a1fd34a27afb1340b8e4a7db2a5ec5a1432c6dc8555af9f78fca2cf740cab2b7,98419c698cab6c7dbb53eb2751417b52ccded4680c5e09543f93c7886c3a173e,c9a803b1eaf849f1c02cfd1dbfac6863128c5b1fc5acd5b5e0fc0a7311fb5b1d,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp256.txt b/src/cz/crcs/ectester/data/smallpub/ecsp256.txt deleted file mode 100644 index 17387a6..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp256.txt +++ /dev/null @@ -1,7 +0,0 @@ -c9a803b1eaf849f1c02cfd1dbfac68623985c88b37103b338ae11d2597ee8445, -4841c5775a24a884ca36ec362b44645a2f60b25d002c4fc1d9f139870fe0cc71, -1b097456751f3534190dae568f80a2c6ff55dddfe072a7dc6467a4b6476b6880, -a1fd34a27afb1340b8e4a7db2a5ec5a1432c6dc8555af9f78fca2cf740cab2b7, -98419c698cab6c7dbb53eb2751417b52ccded4680c5e09543f93c7886c3a173e, -c9a803b1eaf849f1c02cfd1dbfac6863128c5b1fc5acd5b5e0fc0a7311fb5b1d, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.csv new file mode 100644 index 0000000..d27ffdc --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.csv @@ -0,0 +1 @@ +75fce70968862d53e29548aad70582514e960d8128bd3c5f8c4dbe2cf8dad653,55aa4b7d3882fb0a83bd00c9c3bae17f1024d64aec67e1db38ef671e6350beae
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.txt deleted file mode 100644 index a8f0492..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp256_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -75fce70968862d53e29548aad70582514e960d8128bd3c5f8c4dbe2cf8dad653, -55aa4b7d3882fb0a83bd00c9c3bae17f1024d64aec67e1db38ef671e6350beae
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp384.csv b/src/cz/crcs/ectester/data/smallpub/ecsp384.csv new file mode 100644 index 0000000..c58d74b --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp384.csv @@ -0,0 +1 @@ +d0df6c96cff7081be80d22b005758a2e2f046e15fe020ef886e21b492ac57257a923144bcad989ab6341bd3b700f914b,45c64503be019afd3462b361ad2b2a3bca0aeccc5494a624fb632455e62b4f0c98f944fa97c37811da039823cd77c906,d85583f7f11ad23ec75ed5a414153a06d6640936b8103f5df691fa95cf2afa78f3ea5addc225b144964048c9f7592ae4,2b1341d12dff4f9cf9427c4752962b4c2bdc8fbcd80652516c421cc523212a01ea63c79d6e9a9c84933e353e212416ec,ce416c6e75fa9fd205ed48fc4e3099cbb1d6ed031b7ddbff1d634eb97a83d9b780cfd4dedfdd2c7604d143196c08d933,d0df6c96cff7081be80d22b005758a2e2f046e15fe020ef7664ed51d7701c86bf2a1e9f3002c26fe002314c3c92f1ca9,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp384.txt b/src/cz/crcs/ectester/data/smallpub/ecsp384.txt deleted file mode 100644 index 9acae3f..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp384.txt +++ /dev/null @@ -1,7 +0,0 @@ -d0df6c96cff7081be80d22b005758a2e2f046e15fe020ef886e21b492ac57257a923144bcad989ab6341bd3b700f914b, -45c64503be019afd3462b361ad2b2a3bca0aeccc5494a624fb632455e62b4f0c98f944fa97c37811da039823cd77c906, -d85583f7f11ad23ec75ed5a414153a06d6640936b8103f5df691fa95cf2afa78f3ea5addc225b144964048c9f7592ae4, -2b1341d12dff4f9cf9427c4752962b4c2bdc8fbcd80652516c421cc523212a01ea63c79d6e9a9c84933e353e212416ec, -ce416c6e75fa9fd205ed48fc4e3099cbb1d6ed031b7ddbff1d634eb97a83d9b780cfd4dedfdd2c7604d143196c08d933, -d0df6c96cff7081be80d22b005758a2e2f046e15fe020ef7664ed51d7701c86bf2a1e9f3002c26fe002314c3c92f1ca9, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.csv new file mode 100644 index 0000000..80f2cd6 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.csv @@ -0,0 +1 @@ +a4bd575bf20300b0cf8a2f41dd5a03e908966a4229a5f22f5c190d3641ac2d32b7b24a63482cbbcd0c2257f834834ef1,38d51c8f9e90592f567e81d0e4855e79731b5797857a4c7dc270653bc9f0c31e84693007b09cebf710d5ae3237303949
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.txt deleted file mode 100644 index 4eb4a96..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp384_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -a4bd575bf20300b0cf8a2f41dd5a03e908966a4229a5f22f5c190d3641ac2d32b7b24a63482cbbcd0c2257f834834ef1, -38d51c8f9e90592f567e81d0e4855e79731b5797857a4c7dc270653bc9f0c31e84693007b09cebf710d5ae3237303949
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp521.csv b/src/cz/crcs/ectester/data/smallpub/ecsp521.csv new file mode 100644 index 0000000..f6835f1 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp521.csv @@ -0,0 +1 @@ +01d3df430924956e210a605b4dbf4a2e909d7a801658978c88ffd68dcc817f5cc79cf188d9ee82d1a51c44cbd31e9cc5b816d76d5b1312b005f7b68919e275dac99f,00401639f36f2ee45fc164ea3e1f14f4803fd7a77ffdfb392c3f8fe95d1aea331467f4618d59aeee49d5d7c70caf320f7dd1ac166114f562413449991d3aa1a2c49e,004a26a8c47fce204ba953015fa86708c0de720f27523988b097e774168c15f7a215aaf18a5f1b9579ab3db935d45be14c9a87b71170396909b14d06f7a09975b3a6,01c880ae0a355a52791fc9600fd8b35726e9d799101489161c8f90a9c6631d09b3cb347584837d9deb8566a9c5846aded0d01eb947b4affd34e8ea7dbe733cbedafa,00050f12672f163f19d5d493eb82ef777b0213dd4e0cf75a9b99724fbdb54b0cc4e037bf86a48bac28467bdd936c314ce13f6ec7ec69ea09ae4f5444df4b2a117a66,01d3df430924956e210a605b4dbf4a2e909d7a801658978c88ffd68dcc817f5cc7ba0838717c1947f93cfdd3ed87ec2c2df181c7ada553346ec1495732a1e7ffe9b3,1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp521.txt b/src/cz/crcs/ectester/data/smallpub/ecsp521.txt deleted file mode 100644 index 1d36bd7..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp521.txt +++ /dev/null @@ -1,7 +0,0 @@ -01d3df430924956e210a605b4dbf4a2e909d7a801658978c88ffd68dcc817f5cc79cf188d9ee82d1a51c44cbd31e9cc5b816d76d5b1312b005f7b68919e275dac99f, -00401639f36f2ee45fc164ea3e1f14f4803fd7a77ffdfb392c3f8fe95d1aea331467f4618d59aeee49d5d7c70caf320f7dd1ac166114f562413449991d3aa1a2c49e, -004a26a8c47fce204ba953015fa86708c0de720f27523988b097e774168c15f7a215aaf18a5f1b9579ab3db935d45be14c9a87b71170396909b14d06f7a09975b3a6, -01c880ae0a355a52791fc9600fd8b35726e9d799101489161c8f90a9c6631d09b3cb347584837d9deb8566a9c5846aded0d01eb947b4affd34e8ea7dbe733cbedafa, -00050f12672f163f19d5d493eb82ef777b0213dd4e0cf75a9b99724fbdb54b0cc4e037bf86a48bac28467bdd936c314ce13f6ec7ec69ea09ae4f5444df4b2a117a66, -01d3df430924956e210a605b4dbf4a2e909d7a801658978c88ffd68dcc817f5cc7ba0838717c1947f93cfdd3ed87ec2c2df181c7ada553346ec1495732a1e7ffe9b3, -1
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.csv b/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.csv new file mode 100644 index 0000000..5cceee6 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.csv @@ -0,0 +1 @@ +002844df0f31f46a40e6c7006cde99155bd5d18d0e4150178a8e307d6aec08fd02d466c03c49b49c2654b7c9a32d88ca014016a7eddd44217be915505d228efb9389,0105921e2172c3050ba4c9d2e744fc5b7b5e8451751e6780c6de88229497be7d23550beefa0cb7fafebb4dd9fad1244c6733befe5a97710f0dc56dc08d9d9df9d846
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.txt b/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.txt deleted file mode 100644 index 0e3f320..0000000 --- a/src/cz/crcs/ectester/data/smallpub/ecsp521_pub.txt +++ /dev/null @@ -1,2 +0,0 @@ -002844df0f31f46a40e6c7006cde99155bd5d18d0e4150178a8e307d6aec08fd02d466c03c49b49c2654b7c9a32d88ca014016a7eddd44217be915505d228efb9389, -0105921e2172c3050ba4c9d2e744fc5b7b5e8451751e6780c6de88229497be7d23550beefa0cb7fafebb4dd9fad1244c6733befe5a97710f0dc56dc08d9d9df9d846
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/smallpub/keys.xml b/src/cz/crcs/ectester/data/smallpub/keys.xml new file mode 100644 index 0000000..e3a7237 --- /dev/null +++ b/src/cz/crcs/ectester/data/smallpub/keys.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8" ?> +<keys xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd" + category="smallpub" + desc="Points on the Non-prime smallpub curves, very small point orders(3-5)."> + <pubkey> + <file>ecsp128_pub.csv</file> + <curve>ecsp128</curve> + </pubkey> + <pubkey> + <file>ecsp160_pub.csv</file> + <curve>ecsp160</curve> + </pubkey> + <pubkey> + <file>ecsp192_pub.csv</file> + <curve>ecsp192</curve> + </pubkey> + <pubkey> + <file>ecsp224_pub.csv</file> + <curve>ecsp224</curve> + </pubkey> + <pubkey> + <file>ecsp256_pub.csv</file> + <curve>ecsp256</curve> + </pubkey> + <pubkey> + <file>ecsp384_pub.csv</file> + <curve>ecsp384</curve> + </pubkey> + <pubkey> + <file>ecsp521_pub.csv</file> + <curve>ecsp521</curve> + </pubkey> +</keys>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/curves.xml b/src/cz/crcs/ectester/data/wrong/curves.xml new file mode 100644 index 0000000..5f7ef9f --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/curves.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<curves xmlns="http://crcs.cz/ectester/curves" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://crcs.cz/ectester/curves ../schema.xsd"> + <curve> + <id>wrongp128</id> + <bits>128</bits> + <field>prime</field> + <file>wrongp128.csv</file> + </curve> + <curve> + <id>wrongp160</id> + <bits>160</bits> + <field>prime</field> + <file>wrongp160.csv</file> + </curve> + <curve> + <id>wrongp192</id> + <bits>192</bits> + <field>prime</field> + <file>wrongp192.csv</file> + </curve> + <curve> + <id>wrongp224</id> + <bits>224</bits> + <field>prime</field> + <file>wrongp224.csv</file> + </curve> + <curve> + <id>wrongp256</id> + <bits>256</bits> + <field>prime</field> + <file>wrongp256.csv</file> + </curve> + <curve> + <id>wrongp384</id> + <bits>384</bits> + <field>prime</field> + <file>wrongp384.csv</file> + </curve> + <curve> + <id>wrongp521</id> + <bits>521</bits> + <field>prime</field> + <file>wrongp521.csv</file> + </curve> + <curve> + <id>wrongt163</id> + <bits>163</bits> + <field>binary</field> + <file>wrongt163.csv</file> + </curve> + <curve> + <id>wrongt233</id> + <bits>233</bits> + <field>binary</field> + <file>wrongt233.csv</file> + </curve> + <curve> + <id>wrongt239</id> + <bits>239</bits> + <field>binary</field> + <file>wrongt239.csv</file> + </curve> + <curve> + <id>wrongt283</id> + <bits>283</bits> + <field>binary</field> + <file>wrongt283.csv</file> + </curve> + <curve> + <id>wrongt409</id> + <bits>409</bits> + <field>binary</field> + <file>wrongt409.csv</file> + </curve> + <curve> + <id>wrongt571</id> + <bits>571</bits> + <field>binary</field> + <file>wrongt571.csv</file> + </curve> +</curves>
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp128.csv b/src/cz/crcs/ectester/data/wrong/wrongp128.csv new file mode 100644 index 0000000..fce3f24 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp128.csv @@ -0,0 +1 @@ +f9c44412b2cca89ba4f1ca271d143323,9f5d27633551f202cd129e15712f0c64,dd1cdcde6e8da4b594bd4055bd601dca,27d3f8fea47ec1814569080b2aec652f,ebf29da39d7a387fdc3ee3a6e1898d0d,53416c063b998d8936fb4337f4300dcf,3
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp160.csv b/src/cz/crcs/ectester/data/wrong/wrongp160.csv new file mode 100644 index 0000000..b6a4784 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp160.csv @@ -0,0 +1 @@ +4353148e2ad8805dff87bfd7fd6b78da022417dd,3e41d827a2fc528cfead39f1c38699073daa2e8c,12a5b38d121e1274d92be25459340117189b6aa9,12ee1c85d8270955746c2262915d9af9ec5864bb,3458e410d63535a091e43785ad9b48b5cb26f3f2,0d77041c6ef819ac664e599199157d655c5dbc83,5
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp192.csv b/src/cz/crcs/ectester/data/wrong/wrongp192.csv new file mode 100644 index 0000000..9abf44e --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp192.csv @@ -0,0 +1 @@ +9eb2bb2b250ffded1686035b63e7e5d995ba781a011d3b22,4e167abc2774f53d04a800d3a45c83a2a63b671b21a4550d,142b292e4b02ede63ed10aa901d9b51fe119f27d57a3a063,916f6535f2781de3c6c9e84fbe27d5f46287fa6827a6c8f5,93bceca98e0f1ba4f52838f80d057f9b364e01f235c55719,34e63e63b70554a45cd75673cbf7f748873e140ff2e02e30,3
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp224.csv b/src/cz/crcs/ectester/data/wrong/wrongp224.csv new file mode 100644 index 0000000..ab1c78a --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp224.csv @@ -0,0 +1 @@ +7fc961151375f20321881d4a704c5263d09d0270fa799aac8265a7d9,6d9aac79206bc67534b41e623995fcf15584bac41e0a5e309c2ac6d7,1a0167d5a679d3524753df6be9d797990838d2ff222b1d9b64c4fc8b,124f913cdf8e182956eef18ab9456d2114e38d9262dbf06285d9a4a2,7501d823647e2fbe9e9e1fd7f2eaac15cb84680ba290775c7338c569,198ead04371796cd6d1b390ee34276e0c3529a168953d9a4cb78e25b,5
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp256.csv b/src/cz/crcs/ectester/data/wrong/wrongp256.csv new file mode 100644 index 0000000..98c6a06 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp256.csv @@ -0,0 +1 @@ +f93f4bfacd5dc41609ec790ace7b58b3a8466b533440a986a1b6252657840329,dedd6767ca13b7ed136d0725772e7665f7b8d7450541e747ebb22b188b0298cd,cb32f6d3febf6b2558e583de19180b286a0d0ca4cbc0b5ae40b2684ca5fa0549,e9f44e8e52268d84a2ac538a35469f041e5096b1c885922d7068c24c4f7986ab,927d137b6af7330546218ca73fd396483a1ca02e43bfd9e8e1266fe182cc6108,5315195399c9ec0758a42858ef7e72e68d6cce71116ae323eb0a5313fec656ca,3
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp384.csv b/src/cz/crcs/ectester/data/wrong/wrongp384.csv new file mode 100644 index 0000000..856a315 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp384.csv @@ -0,0 +1 @@ +e5c59884cfefc22682cbc0f1d18b574c2cec33ace6ff00246db133dd25b6b8eca6e192324f73815c131e06ac129cf3c6,738b368de5c4b0be23c8c197df7d098372e49ef6719c02c64833a8834518cd8c0d9241f72100cb5051db0657f75a1c23,69754b463614c2e2dbcf6dccf623cc0f1acdc19e54cb228dbaf071459f4af4c8b6665e814653ec77937f93aba77d5c83,74019d327322b23f79888df61d0549c60983e967f9d783298c9fabb05d3f50380b75b9c0925016ab8606a3c7cb304fee,319d25a6e657db46b06dc875f23a25cd7dd85312706b98f7d42e5fef6205efa94c9e3de358442bbba0078c836474b886,2df451b429965a07b3c259c9f6b577dc08fc0a55c7cc99a0e2bd0a5f6df1582f549383a3a97d80459d6c67bc03b8fd8e,5
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongp521.csv b/src/cz/crcs/ectester/data/wrong/wrongp521.csv new file mode 100644 index 0000000..4f8b2a3 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongp521.csv @@ -0,0 +1 @@ +189a60ffc98c7183895a913cce35a6a9eb598dd37031ef413b22efdfce0c66a39adbc7807185d2f9258e236d97fcefbc399d96b21367b72d96aa4db8e17e085eb6b,14fa01ed55832127e87f87781de9dd477302be69dec9d55ca741569bddebf3f4356ded7a21173937426b7e28cd25704c715e85d677d1ebfe4349943269fa3f420b2,151ff15174ae4126937a8a1ab0f1d64f85fdf6edebd29615e822ffa44b6e2a951b918f49444ffc4bfc09f0f8bda8c30f095ab5d8aa5bcc26a16245d848e0beb9d88,1544b864fe3e9891aedcf537c6f7d3de1f77ee74ef1d3122f0c2d891189895f56362be7d031503b1d23ca7bd978650a49efce4d437dedec0e3325ca40c1f8ef2ee0,140197a9f062bad1e447eb6c1f4385f7dde488f0d1ba76a83750d2e9d59db3b7826c0bdb2294c8a2fb08e62152824a05a67dfd8528084b1865018e0a6c6204057c8,189a60ffc98c7183895a913cce35a6a9eb598dd37031ef413b22efdfce0c66a39adbc7807185d2f9258e236d97fcefbc399d96b21367b72d96aa4db8e17e085eb6a,5
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongt163.csv b/src/cz/crcs/ectester/data/wrong/wrongt163.csv new file mode 100644 index 0000000..91fd70b --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt163.csv @@ -0,0 +1 @@ +00a3,0002,0000,0000,55e202b98d7e864b2c9c560dc8f8b4047743a84ad,4cf310ee7a37cb2bacafa5e5a5ffcc8464a51162d,58ae9952e3b62978ccc1bfd060564b2620d154049,5ed1e3aa306f09a955feff97757bc4e599c64bb9f,2aaaaaaaaaaaaaaaaaaaaaaaaaabc02b61ca4c651,3
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongt233.csv b/src/cz/crcs/ectester/data/wrong/wrongt233.csv new file mode 100644 index 0000000..7e704b0 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt233.csv @@ -0,0 +1 @@ +00e9,0001,0000,0000,14228234ca1e8900adcfef49a037d560c8e2c2ed4227d4a2cda8703079d,18f33f0e925e6af86764a84dae2e09eeb0ce218e21ad9638eeb9d2e2600,182a21d656972aeca534df8f8e8c5aa0f553cde1e025a75610f10ae9db5,118732c490d8788716e9ac581c37c140116d12e2e9abd56262a1a255472,c59f46db5ba025578d418f86dc556bec9d212b740ab595b83abd008ec0,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongt239.csv b/src/cz/crcs/ectester/data/wrong/wrongt239.csv new file mode 100644 index 0000000..51098b6 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt239.csv @@ -0,0 +1 @@ +00ef,0001,0000,0000,513e8b6997328b69d60decd7fa034c1b3bd862717164e7785eb06dcc5b88,63510c1cc1053a916b68f258e9d3f7c2ba054e4af05f3e4d61b3de772d2a,509d82beb7ef27b5b7421ac1e93ccffea76c4f0874991cf3facf0eab9ef6,42a9207ae1cc90d3d29c42a87f754321ccbeaed2e18957ce5a9b01f56812,28759505089d94226a73eefded3f7bf2f81673517715cb032daeddbb68f7,2
\ No newline at end of file diff --git a/src/cz/crcs/ectester/data/wrong/wrongt283.csv b/src/cz/crcs/ectester/data/wrong/wrongt283.csv new file mode 100644 index 0000000..0d412de --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt283.csv @@ -0,0 +1 @@ +011b,0002,0000,0000,7e2a42c7f5af962ff0f58711703462947d0a4eb3555b123aa33088a9c566424f0126157,6f317d6314dd7069b6be8cfb5fd0c563b9dbb2f9b8ca2618dd8cd4e7d1a368452aa3c34,5beb9f0130f758148a16a5c65b9228836af1c7afbab4afeffed328ed04ec1bf015f9c16,68996bd05c007c329738a29893a6215c99fbfa460e143090d588d9b157c99843e91c976,2552bf070faa392ab3b7fa07e443e5a45dc9bb3e1a6fe44d1440fdde6752c90899d4197,3 diff --git a/src/cz/crcs/ectester/data/wrong/wrongt409.csv b/src/cz/crcs/ectester/data/wrong/wrongt409.csv new file mode 100644 index 0000000..97c8f95 --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt409.csv @@ -0,0 +1 @@ +0199,0002,0000,0000,1cc6efad1333dd213e812bdc9909754ff20c102fb9c9a2a7fdbd23ca7d414bec401bc45532980dff9cc869b4622c7f5b65e2afb,1cfc909e058af6762da1c2d85ec911d4e393dcd4539aa6c6d755b3dfdf9c4c338c84b984f533479d2f2bb5169b4fae6a25159f6,1ef44edd1100313984d059e3ecae6c866d83bfb9931e616abafcb9f1461ec264509260b4c62a09f1f03595c404e530d467dc14c,1055f15e3b4272c3bf6ecaeb59204470b96111eb38eb395066b26fbae646ab57b7ae6cda5722a98b01aade1bcf3b6db950d2957,c3b9b6e10f6ed3a458388e94c4d567e1a2272bb996892a919e65a8da15c0907ac735eb2f9a7cee28ac90193dabd2408e232839,2 diff --git a/src/cz/crcs/ectester/data/wrong/wrongt571.csv b/src/cz/crcs/ectester/data/wrong/wrongt571.csv new file mode 100644 index 0000000..9e61a8a --- /dev/null +++ b/src/cz/crcs/ectester/data/wrong/wrongt571.csv @@ -0,0 +1 @@ +023b,0002,0000,0000,4d3b833ae38b91e89061c4fae9e38264f2e88b4969778aa935eeec50fd1d66a994589e835aeb590566f0adafba2c40c1866865e62cae00f1d235038139d8d25b32d842a7a8b03b0,736974cc00c08dfbd1d23a6bea984c1c1af6ceae0a8b48ecd84b8a4fedbb46d61ab94efa8f53e50b6aa0c0599c2121af733dc36c07ccb7762d210bef02aa8611fe464d369f8a923,4f3bb81214f966e73a2f64423738ab7cd642b871ce7fb0e5f302a3a658aafd68e25d38c432d5e48334a2c03f472defa43ca0933fd13c98138bab6d7ca228ab860c79cd9114d4549,6355104090026816f380b1b406e84f93e12cbaa9f23adcef1eab09bd0418f7906195b102daed369ba72b9370e24a12c7676263c20bf7c7f3018c7a84ee80f586cc8fb16dd526110,397cad72a3fefe82d79a96e18009f5f9b661a9fa2ee53a5eb9f4016d2deaf249e2969b9af649fa363f4c2d5ec837792d932748f7344a16f8ab4be63341812d1c4f52a7b3fa65757,2 diff --git a/src/cz/crcs/ectester/reader/ECParams.java b/src/cz/crcs/ectester/reader/ECParams.java index c19640e..76347b1 100644 --- a/src/cz/crcs/ectester/reader/ECParams.java +++ b/src/cz/crcs/ectester/reader/ECParams.java @@ -13,7 +13,7 @@ import java.util.regex.Pattern; * @author Jan Jancar johny@neuromancer.sk */ public class ECParams { - private static final Pattern hex = Pattern.compile("[a-fA-F\\d]+"); + private static final Pattern hex = Pattern.compile("(0x|0X)?[a-fA-F\\d]+"); /** * Flattens params read from String[] data into a byte[] with their lengths prepended as short entries. @@ -34,12 +34,12 @@ public class ECParams { short masked = (short) (params & paramMask); if (masked != 0) { byte[] param = parse(data[i]); - if (masked == EC_Consts.PARAMETER_F2M && data.length == 9) { - //read and pad and append e_2, e_3 - param = Util.concatenate(param, parse(data[i + 1]), parse(data[i + 2])); - i += 2; - if (param.length != 6) - throw new RuntimeException("PARAMETER_F2M length is not 6.(should be)"); + if (masked == EC_Consts.PARAMETER_F2M) { + //add m, e_1, e_2, e_3 + param = Util.concatenate(param, parse(data[i + 1]), parse(data[i + 2]), parse(data[i + 3])); + i += 3; + if (param.length != 8) + throw new RuntimeException("PARAMETER_F2M length is not 8.(should be)"); } if (masked == EC_Consts.PARAMETER_G || masked == EC_Consts.PARAMETER_W) { //read another param (the y coord) and put into X962 format. @@ -80,12 +80,13 @@ public class ECParams { byte[] param = data[index]; if (masked == EC_Consts.PARAMETER_F2M) { - //split into three shorts - if (param.length != 6) { - throw new RuntimeException("PARAMETER_F2M length is not 6.(should be)"); + //split into m, e1, [e2, e3] + if (!((param.length == 4) || (param.length == 8))) { + throw new RuntimeException("PARAMETER_F2M length is not 4 or 8.(should be)"); } - for (int i = 0; i < 3; ++i) { - out.add(String.format("%04x", Util.getShort(param, i*2))); + int max = param.length == 4 ? 2 : 4; + for (int i = 0; i < max; ++i) { + out.add(String.format("%04x", Util.getShort(param, i * 2))); } } else if (masked == EC_Consts.PARAMETER_G || masked == EC_Consts.PARAMETER_W) { @@ -171,8 +172,13 @@ public class ECParams { return true; } - private static byte[] parse(String hex) { - byte[] data = Util.hexToBytes(hex); + private static byte[] parse(String param) { + byte[] data; + if (param.startsWith("0x") || param.startsWith("0X")) { + data = Util.hexToBytes(param.substring(2)); + } else { + data = Util.hexToBytes(param); + } if (data == null) return new byte[0]; if (data.length < 2) diff --git a/src/cz/crcs/ectester/reader/ECTester.java b/src/cz/crcs/ectester/reader/ECTester.java index b359e16..f55e943 100644 --- a/src/cz/crcs/ectester/reader/ECTester.java +++ b/src/cz/crcs/ectester/reader/ECTester.java @@ -52,11 +52,20 @@ public class ECTester { private boolean optAll; private boolean optPrimeField = false; private boolean optBinaryField = false; - private boolean optNamed = false; - private String optCurve = null; + + private String optNamedCurve = null; + private String optCurveFile = null; + private boolean optCustomCurve = false; + + private String optNamedPublic = null; private String optPublic = null; + + private String optNamedPrivate = null; private String optPrivate = null; + + private String optNamedKey = null; private String optKey = null; + private String optLog = null; private String optOutput = null; private boolean optFresh = false; @@ -77,6 +86,7 @@ public class ECTester { private void run(String[] args) { try { + CommandLine cli = parseArgs(args); //if help, print and quit @@ -138,7 +148,6 @@ public class ECTester { System.err.println("Option, " + maex.getOption().getOpt() + " requires an argument: " + maex.getOption().getArgName()); } catch (NumberFormatException nfex) { System.err.println("Not a number. " + nfex.getMessage()); - nfex.printStackTrace(System.err); } catch (FileNotFoundException fnfe) { System.err.println("File " + fnfe.getMessage() + " not found."); } catch (ParseException | IOException | CardException ex) { @@ -165,12 +174,18 @@ public class ECTester { * * Options: * -b / --bit-size [b] // -a / --all + * * -fp / --prime-field * -f2m / --binary-field - * -n / --named // -c / --curve [curve_file] field,a,b,gx,gy,r,k - * --public [pubkey_file] wx,wy - * --private [privkey_file] s + * + * -u / --custom + * -n / --named [cat/id|id|cat] + * -c / --curve [curve_file] field,a,b,gx,gy,r,k + * + * -pub / --public [pubkey_file] wx,wy + * -priv / --private [privkey_file] s * -k / --key [key_file] wx,wy,s + * * -o / --output [output_file] * -s / --simulate */ @@ -190,16 +205,28 @@ public class ECTester { opts.addOptionGroup(size); OptionGroup curve = new OptionGroup(); - curve.addOption(Option.builder("n").longOpt("named").desc("Use a named curve.").build()); + curve.addOption(Option.builder("n").longOpt("named").desc("Use a named curve.").hasArg().argName("[cat/id|id|cat]").build()); curve.addOption(Option.builder("c").longOpt("curve").desc("Use curve from file [curve_file] (field,a,b,gx,gy,r,k).").hasArg().argName("curve_file").build()); + curve.addOption(Option.builder("u").longOpt("custom").desc("Use a custom curve(applet-side embedded, SECG curves).").build()); opts.addOptionGroup(curve); opts.addOption(Option.builder("fp").longOpt("prime-field").desc("Use prime field curve.").build()); opts.addOption(Option.builder("f2m").longOpt("binary-field").desc("Use binary field curve.").build()); - opts.addOption(Option.builder("pub").longOpt("public").desc("Use public key from file [pubkey_file] (wx,wy).").hasArg().argName("pubkey_file").build()); - opts.addOption(Option.builder("priv").longOpt("private").desc("Use private key from file [privkey_file] (s).").hasArg().argName("privkey_file").build()); - opts.addOption(Option.builder("k").longOpt("key").desc("Use keyPair from fileĀ [key_file] (wx,wy,s).").hasArg().argName("key_file").build()); + OptionGroup pub = new OptionGroup(); + pub.addOption(Option.builder("npub").longOpt("named-public").desc("Use public key from KeyDB: [cat/id|cat|id]").hasArg().argName("[cat/id|id|cat]").build()); + pub.addOption(Option.builder("pub").longOpt("public").desc("Use public key from file [pubkey_file] (wx,wy).").hasArg().argName("pubkey_file").build()); + opts.addOptionGroup(pub); + + OptionGroup priv = new OptionGroup(); + priv.addOption(Option.builder("npriv").longOpt("named-private").desc("Use private key from KeyDB: [cat/id|id|cat]").hasArg().argName("[cat/id|id|cat]").build()); + priv.addOption(Option.builder("priv").longOpt("private").desc("Use private key from file [privkey_file] (s).").hasArg().argName("privkey_file").build()); + opts.addOptionGroup(priv); + + OptionGroup key = new OptionGroup(); + key.addOption(Option.builder("nk").longOpt("named-key").desc("Use keyPair from KeyDB: [cat/id|id|cat]").hasArg().argName("[cat/id|id|cat]").build()); + key.addOption(Option.builder("k").longOpt("key").desc("Use keyPair from fileĀ [key_file] (wx,wy,s).").hasArg().argName("key_file").build()); + opts.addOptionGroup(key); opts.addOption(Option.builder("o").longOpt("output").desc("Output into file [output_file].").hasArg().argName("output_file").build()); opts.addOption(Option.builder("l").longOpt("log").desc("Log output into file [log_file].").hasArg().argName("log_file").optionalArg(true).build()); @@ -222,10 +249,18 @@ public class ECTester { optAll = cli.hasOption("all"); optPrimeField = cli.hasOption("fp"); optBinaryField = cli.hasOption("f2m"); - optNamed = cli.hasOption("named"); - optCurve = cli.getOptionValue("curve"); + + optNamedCurve = cli.getOptionValue("named"); + optCustomCurve = cli.hasOption("custom"); + optCurveFile = cli.getOptionValue("curve"); + + optNamedPublic = cli.getOptionValue("named-public"); optPublic = cli.getOptionValue("public"); + + optNamedPrivate = cli.getOptionValue("named-private"); optPrivate = cli.getOptionValue("private"); + + optNamedKey = cli.getOptionValue("named-key"); optKey = cli.getOptionValue("key"); if (cli.hasOption("log")) { optLog = cli.getOptionValue("log", String.format("ECTESTER_log_%d.log", System.currentTimeMillis() / 1000)); @@ -234,8 +269,8 @@ public class ECTester { optFresh = cli.hasOption("fresh"); optSimulate = cli.hasOption("simulate"); - if (optKey != null && (optPublic != null || optPrivate != null)) { - System.err.print("Can only specify the whole key with --key or pubkey and privkey with --public and --private."); + if ((optKey != null || optNamedKey != null) && (optPublic != null || optPrivate != null || optNamedPublic != null || optNamedPrivate != null)) { + System.err.print("Can only specify the whole key with --key/--named-key or pubkey and privkey with --public/--named-public and --private/--named-private."); return false; } if (optBits < 0) { @@ -253,8 +288,8 @@ public class ECTester { System.err.print("Need to specify field with -fp or -f2m. (not both)"); return false; } - if (optKey != null || optPublic != null || optPrivate != null) { - System.err.println("Keys should not be specified when generating keys."); + if (optKey != null || optPublic != null || optPrivate != null || optNamedKey != null || optNamedPublic != null || optNamedPrivate != null) { + System.err.println("Keys should not be specified when exporting curve params."); return false; } if (optOutput == null) { @@ -271,7 +306,7 @@ public class ECTester { System.err.print("Need to specify field with -fp or -f2m. (not both)"); return false; } - if (optKey != null || optPublic != null || optPrivate != null) { + if (optKey != null || optPublic != null || optPrivate != null || optNamedKey != null || optNamedPublic != null || optNamedPrivate != null) { System.err.println("Keys should not be specified when generating keys."); return false; } @@ -314,7 +349,11 @@ public class ECTester { System.err.println("You have to specify curve bit-size with -b"); return false; } - if ((optPublic == null) != (optPrivate == null)) { + + boolean hasPublic = (optPublic != null) || (optNamedPublic != null); + boolean hasPrivate = (optPrivate != null) || (optNamedPrivate != null); + boolean hasKey = (optKey != null) || (optNamedKey != null); + if ((hasPublic) != (hasPrivate) && !hasKey) { System.err.println("You have cannot only specify a part of a keypair."); return false; } @@ -541,12 +580,15 @@ public class ECTester { List<Command> commands = new ArrayList<>(); short domainParams = keyClass == KeyPair.ALG_EC_FP ? EC_Consts.PARAMETERS_DOMAIN_FP : EC_Consts.PARAMETERS_DOMAIN_F2M; - if (optNamed) { - // Set named curve (one of the SECG curves embedded applet-side) + if (optCustomCurve) { + // Set custom curve (one of the SECG curves embedded applet-side) commands.add(new Command.Set(cardManager, keyPair, EC_Consts.getCurve(keyLength, keyClass), domainParams, EC_Consts.PARAMETERS_NONE, EC_Consts.CORRUPTION_NONE, null)); - } else if (optCurve != null) { + } else if (optNamedCurve != null) { + // Set a named curve. + // parse optNamedCurve -> cat / id | cat | id + } else if (optCurveFile != null) { // Set curve loaded from a file - byte[] external = ECParams.flatten(domainParams, ECParams.readFile(optCurve)); + byte[] external = ECParams.flatten(domainParams, ECParams.readFile(optCurveFile)); if (external == null) { throw new IOException("Couldn't read the curve file correctly."); } diff --git a/src/cz/crcs/ectester/reader/Response.java b/src/cz/crcs/ectester/reader/Response.java index 368a8ef..d1925b8 100644 --- a/src/cz/crcs/ectester/reader/Response.java +++ b/src/cz/crcs/ectester/reader/Response.java @@ -117,7 +117,6 @@ public abstract class Response { @Override public abstract String toString(); - public static String toString(List<Response> responses) { StringBuilder out = new StringBuilder(); for (Response r : responses) { diff --git a/src/cz/crcs/ectester/reader/SimpleAPDU.java b/src/cz/crcs/ectester/reader/SimpleAPDU.java deleted file mode 100644 index f120608..0000000 --- a/src/cz/crcs/ectester/reader/SimpleAPDU.java +++ /dev/null @@ -1,459 +0,0 @@ -package cz.crcs.ectester.reader; - -import cz.crcs.ectester.applet.EC_Consts; -import javacard.framework.ISO7816; -import javacard.security.CryptoException; -import javacard.security.KeyPair; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; -import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; - -import javax.smartcardio.ResponseAPDU; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Arrays; - - -/** - * @author Petr Svenda petr@svenda.com - */ -public class SimpleAPDU { - private CardMngr cardManager = new CardMngr(); - private DirtyLogger systemOutLogger = null; - - private CommandLineParser cliParser = new DefaultParser(); - private Options opts = new Options(); - private static final String cliHeader = ""; - private static final String cliFooter = ""; - - private final static byte SELECT_ECTESTERAPPLET[] = {(byte) 0x00, (byte) 0xa4, (byte) 0x04, (byte) 0x00, (byte) 0x0a, - (byte) 0x45, (byte) 0x43, (byte) 0x54, (byte) 0x65, (byte) 0x73, (byte) 0x74, (byte) 0x65, (byte) 0x72, (byte) 0x30, (byte) 0x31}; - - private static final byte TESTECSUPPORTALL_FP[] = {(byte) 0xB0, (byte) 0x5E, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - private static final byte TESTECSUPPORTALL_F2M[] = {(byte) 0xB0, (byte) 0x5F, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - private static final byte TESTECSUPPORT_GIVENALG[] = {(byte) 0xB0, (byte) 0x71, (byte) 0x00, (byte) 0x00, (byte) 0x03, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - private static final short TESTECSUPPORT_ALG_OFFSET = 5; - private static final short TESTECSUPPORT_KEYLENGTH_OFFSET = 6; - - private static final byte TESTECSUPPORTALL_LASTUSEDPARAMS[] = {(byte) 0xB0, (byte) 0x40, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - - private static final byte TESTECSUPPORTALL_FP_KEYGEN_INVALIDCURVEB[] = {(byte) 0xB0, (byte) 0x70, (byte) 0x00, (byte) 0x00, (byte) 0x05, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - private static final short INVALIDCURVEB_NUMREPEATS_OFFSET = 5; - private static final short INVALIDCURVEB_CORRUPTIONTYPE_OFFSET = 7; - private static final short INVALIDCURVEB_REWINDONSUCCESS_OFFSET = 9; - - private static final byte TESTECSUPPORT_GENERATEECCKEY[] = {(byte) 0xB0, (byte) 0x5a, (byte) 0x00, (byte) 0x00, (byte) 0x04, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00}; - private static final short GENERATEECKEY_ALG_OFFSET = 5; - private static final short GENERATEECKEY_KEYLENGTH_OFFSET = 6; - private static final short GENERATEECKEY_ANOMALOUS_OFFSET = 8; - - - private void run(String[] args) { - try { - //parse cmd args - CommandLine cli = parseArgs(args); - - //byte[] installData = new byte[10]; - //byte[] AID = {(byte) 0x4C, (byte) 0x61, (byte) 0x62, (byte) 0x61, (byte) 0x6B, (byte) 0x41, (byte) 0x70, (byte) 0x70, (byte) 0x6C, (byte) 0x65, (byte) 0x74}; - //cardManager.prepareLocalSimulatorApplet(AID, installData, SimpleECCApplet.class); - - //do stuff - if (cli.hasOption("help")) { - HelpFormatter help = new HelpFormatter(); - help.printHelp("SimpleAPDU", cliHeader, opts, cliFooter); - } else { - //open log(only when actually doing something) - String logFileName = cli.getOptionValue("output-file", String.format("ECTESTER_log_%d.log", System.currentTimeMillis())); - FileOutputStream stdoutStream = new FileOutputStream(logFileName); - systemOutLogger = new DirtyLogger(stdoutStream, true); - - boolean fp = cli.hasOption("fp"); - boolean f2m = cli.hasOption("f2m"); - if (!fp && !f2m) { - fp = true; - f2m = true; - } - int genAmount = Integer.parseInt(cli.getOptionValue("generate", "0")); - int keyLength = Integer.parseInt(cli.getOptionValue("b", "192")); - - if (cli.hasOption("generate")) { - //generate EC keys - if (fp) { - generateECKeys(genAmount, KeyPair.ALG_EC_FP, (short) keyLength, cli.hasOption("anomalous")); - } - if (f2m) { - generateECKeys(genAmount, KeyPair.ALG_EC_F2M, (short) keyLength, cli.hasOption("anomalous")); - } - } else if (cli.hasOption("test")) { - if (cli.hasOption("bit-size")) { - //test only one bitsize - if (fp) { - testSupportECFp((short) keyLength); - } - if (f2m) { - testSupportECFp((short) keyLength); - } - } else { - //test default bit sizes - testSupportECAll(fp, f2m); - testFPkeyGen((short) 10, EC_Consts.CORRUPTION_ONEBYTERANDOM, true); - } - } else { - systemOutLogger.println("You need to specify one of -t / -g [num] commands."); - } - - //close log - systemOutLogger.close(); - } - - //disconnect - cardManager.disconnectFromCard(); - } catch (Exception ex) { - if (systemOutLogger != null) { - systemOutLogger.println("Exception : " + ex); - } - } - } - - private CommandLine parseArgs(String[] args) throws ParseException { - - opts.addOption("h", "help", false, "show this help"); - opts.addOption(Option.builder("g") - .longOpt("generate") - .hasArg() - .optionalArg(true) - .argName("num") - .desc("generate EC keys").build()); - opts.addOption("t", "test", false, "test EC support (default)"); - opts.addOption(Option.builder("b") - .longOpt("bit-size") - .hasArg() - .argName("bits") - .desc("set EC bit size").build()); - opts.addOption("f2m", "use EC over binary-fields"); - opts.addOption("fp", "user EC over prime-fields (default)"); - opts.addOption("s", "anomalous", false, "generate anomalous (non-prime order, small pubkey order) curves"); - opts.addOption(Option.builder("o") - .longOpt("output-file") - .hasArg() - .argName("file") - .desc("output file to log to").build()); - return cliParser.parse(opts, args); - } - - static short getShort(byte[] array, int offset) { - return (short) (((array[offset] & 0xFF) << 8) | (array[offset + 1] & 0xFF)); - } - - static void setShort(byte[] array, int offset, short value) { - array[offset + 1] = (byte) (value & 0xFF); - array[offset] = (byte) ((value >> 8) & 0xFF); - } - - private boolean ReconnnectToCard() throws Exception { - if (cardManager.connected()) { - cardManager.disconnectFromCard(); - } - - boolean result = cardManager.connectToCard(); - if (result) { - // Select our application on card - cardManager.sendAPDU(SELECT_ECTESTERAPPLET); - } - return result; - } - - private void testFPkeyGen(short numRepeats, short corruptionType, boolean bRewind) throws Exception { - byte[] apdu = Arrays.copyOf(TESTECSUPPORTALL_FP_KEYGEN_INVALIDCURVEB, TESTECSUPPORTALL_FP_KEYGEN_INVALIDCURVEB.length); - setShort(apdu, INVALIDCURVEB_NUMREPEATS_OFFSET, numRepeats); - setShort(apdu, INVALIDCURVEB_CORRUPTIONTYPE_OFFSET, corruptionType); - apdu[INVALIDCURVEB_REWINDONSUCCESS_OFFSET] = bRewind ? (byte) 1 : (byte) 0; - - ReconnnectToCard(); - ResponseAPDU resp_fp_keygen = cardManager.sendAPDU(apdu); - ResponseAPDU resp_keygen_params = cardManager.sendAPDU(TESTECSUPPORTALL_LASTUSEDPARAMS); - PrintECKeyGenInvalidCurveB(resp_fp_keygen); - PrintECKeyGenInvalidCurveB_lastUserParams(resp_keygen_params); - } - - private void testSupportECGivenAlg(short keyLength, byte keyClass) throws Exception { - byte[] apdu = Arrays.copyOf(TESTECSUPPORT_GIVENALG, TESTECSUPPORT_GIVENALG.length); - apdu[TESTECSUPPORT_ALG_OFFSET] = keyClass; - setShort(apdu, TESTECSUPPORT_KEYLENGTH_OFFSET, keyLength); - - ReconnnectToCard(); - ResponseAPDU resp = cardManager.sendAPDU(apdu); - //byte[] resp = cardManager.sendAPDUSimulator(apdu); - PrintECSupport(resp); - } - - private void testSupportECFp(short keyLength) throws Exception { - testSupportECGivenAlg(keyLength, KeyPair.ALG_EC_FP); - } - - private void testSupportECF2m(short keyLength) throws Exception { - testSupportECGivenAlg(keyLength, KeyPair.ALG_EC_F2M); - } - - private void testSupportECAll(boolean testFp, boolean testF2m) throws Exception { - if (testFp) { - testSupportECFp((short) 128); - testSupportECFp((short) 192); - testSupportECFp((short) 224); - testSupportECFp((short) 256); - testSupportECFp((short) 384); - testSupportECFp((short) 521); - } - - if (testF2m) { - testSupportECF2m((short) 113); - testSupportECF2m((short) 131); - testSupportECF2m((short) 163); - testSupportECF2m((short) 193); - } - } - - private void generateECKeys(int amount, byte keyClass, short keyLength, boolean anomalous) throws Exception { - if (cardManager.connectToCardSelect()) { - cardManager.sendAPDU(SELECT_ECTESTERAPPLET); - - String keyFileName = String.format("ECKEYS_%s_%d.log", keyClass == KeyPair.ALG_EC_FP ? "fp" : "f2m", System.currentTimeMillis()); - FileOutputStream keysFile = new FileOutputStream(keyFileName); - - String message = "index;time;pubW;privS\n"; - keysFile.write(message.getBytes()); - byte[] gatherKeyAPDU = Arrays.copyOf(TESTECSUPPORT_GENERATEECCKEY, TESTECSUPPORT_GENERATEECCKEY.length); - // Prepare keypair object - gatherKeyAPDU[ISO7816.OFFSET_P1] = SimpleECCApplet.P1_SETCURVE; - gatherKeyAPDU[GENERATEECKEY_ALG_OFFSET] = keyClass; - setShort(gatherKeyAPDU, GENERATEECKEY_KEYLENGTH_OFFSET, keyLength); - gatherKeyAPDU[GENERATEECKEY_ANOMALOUS_OFFSET] = anomalous ? (byte) 1 : (byte) 0; - - ResponseAPDU respGather = cardManager.sendAPDU(gatherKeyAPDU); - if (respGather.getSW() != ISO7816.SW_NO_ERROR) { - systemOutLogger.println(String.format("Card error: %x", respGather.getSW())); - keysFile.close(); - return; - } - - // Generate new keypair - gatherKeyAPDU[ISO7816.OFFSET_P1] = SimpleECCApplet.P1_GENERATEKEYPAIR; - int counter = 0; - while (true) { - counter++; - long elapsed = -System.nanoTime(); - respGather = cardManager.sendAPDU(gatherKeyAPDU); - elapsed += System.nanoTime(); - - if (respGather.getSW() != ISO7816.SW_NO_ERROR) { - systemOutLogger.println(String.format("Card error: %x", respGather.getSW())); - break; - } - byte[] data = respGather.getData(); - int offset = 0; - String pubKeyW = ""; - String privKeyS = ""; - if (data[offset] == EC_Consts.TAG_ECPUBKEY) { - offset++; - short len = getShort(data, offset); - offset += 2; - pubKeyW = Util.bytesToHex(data, offset, len, false); - offset += len; - } - if (data[offset] == EC_Consts.TAG_ECPRIVKEY) { - offset++; - short len = getShort(data, offset); - offset += 2; - privKeyS = Util.bytesToHex(data, offset, len, false); - offset += len; - } - - message = String.format("%d;%d;%s;%s\n", counter, elapsed / 1000000, pubKeyW, privKeyS); - keysFile.write(message.getBytes()); - - this.systemOutLogger.flush(); - keysFile.flush(); - - //stop when we have enough keys, go on forever with 0 - if (counter >= amount && amount != 0) - break; - } - keysFile.close(); - } - } - - private static String getPrintError(short code) { - if (code == ISO7816.SW_NO_ERROR) { - return "OK\t(0x9000)"; - } else { - String codeStr = "unknown"; - if (code == CryptoException.ILLEGAL_VALUE) { - codeStr = "ILLEGAL_VALUE"; - } - if (code == CryptoException.UNINITIALIZED_KEY) { - codeStr = "UNINITIALIZED_KEY"; - } - if (code == CryptoException.NO_SUCH_ALGORITHM) { - codeStr = "NO_SUCH_ALG"; - } - if (code == CryptoException.INVALID_INIT) { - codeStr = "INVALID_INIT"; - } - if (code == CryptoException.ILLEGAL_USE) { - codeStr = "ILLEGAL_USE"; - } - if (code == SimpleECCApplet.SW_SKIPPED) { - codeStr = "skipped"; - } - if (code == SimpleECCApplet.SW_KEYPAIR_GENERATED_INVALID) { - codeStr = "SW_KEYPAIR_GENERATED_INVALID"; - } - if (code == SimpleECCApplet.SW_INVALID_CORRUPTION_TYPE) { - codeStr = "SW_INVALID_CORRUPTION_TYPE"; - } - if (code == SimpleECCApplet.SW_SIG_VERIFY_FAIL) { - codeStr = "SW_SIG_VERIFY_FAIL"; - } - return String.format("fail\t(%s,\t0x%4x)", codeStr, code); - } - } - - enum ExpResult { - SHOULD_SUCCEED, - MAY_FAIL, - MUST_FAIL - } - - private int VerifyPrintResult(String message, byte expectedTag, byte[] buffer, int bufferOffset, ExpResult expRes) { - if (bufferOffset >= buffer.length) { - systemOutLogger.println(" No more data returned"); - } else { - if (buffer[bufferOffset] != expectedTag) { - systemOutLogger.println(" ERROR: mismatched tag"); - assert (buffer[bufferOffset] == expectedTag); - } - bufferOffset++; - short resCode = getShort(buffer, bufferOffset); - bufferOffset += 2; - - boolean bHiglight = false; - if ((expRes == ExpResult.MUST_FAIL) && (resCode == ISO7816.SW_NO_ERROR)) { - bHiglight = true; - } - if ((expRes == ExpResult.SHOULD_SUCCEED) && (resCode != ISO7816.SW_NO_ERROR)) { - bHiglight = true; - } - if (bHiglight) { - systemOutLogger.println(String.format("!! %-53s%s", message, getPrintError(resCode))); - } else { - systemOutLogger.println(String.format(" %-53s%s", message, getPrintError(resCode))); - } - } - return bufferOffset; - } - - private void PrintECSupport(ResponseAPDU resp) { - PrintECSupport(resp.getData()); - } - - private void PrintECSupport(byte[] buffer) { - systemOutLogger.println(); - systemOutLogger.println("### Test for support and with valid and invalid EC curves"); - int bufferOffset = 0; - while (bufferOffset < buffer.length) { - assert (buffer[bufferOffset] == SimpleECCApplet.ECTEST_SEPARATOR); - bufferOffset++; - String ecType = "unknown"; - if (buffer[bufferOffset] == KeyPair.ALG_EC_FP) { - ecType = "ALG_EC_FP"; - } - if (buffer[bufferOffset] == KeyPair.ALG_EC_F2M) { - ecType = "ALG_EC_F2M"; - } - systemOutLogger.println(String.format("%-56s%s", "EC type:", ecType)); - bufferOffset++; - short keyLen = getShort(buffer, bufferOffset); - systemOutLogger.println(String.format("%-56s%d bits", "EC key length (bits):", keyLen)); - bufferOffset += 2; - - bufferOffset = VerifyPrintResult("KeyPair object allocation:", SimpleECCApplet.ECTEST_ALLOCATE_KEYPAIR, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("Generate key with def curve (fails if no def):", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_DEFCURVE, buffer, bufferOffset, ExpResult.MAY_FAIL); - bufferOffset = VerifyPrintResult("Set valid custom curve:", SimpleECCApplet.ECTEST_SET_VALIDCURVE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("Generate key with valid curve:", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_CUSTOMCURVE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("ECDH agreement with valid point:", SimpleECCApplet.ECTEST_ECDH_AGREEMENT_VALID_POINT, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("ECDH agreement with invalid point (fail is good):", SimpleECCApplet.ECTEST_ECDH_AGREEMENT_INVALID_POINT, buffer, bufferOffset, ExpResult.MUST_FAIL); - bufferOffset = VerifyPrintResult("ECDSA signature on random data:", SimpleECCApplet.ECTEST_ECDSA_SIGNATURE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("Set anomalous custom curve (may fail):", SimpleECCApplet.ECTEST_SET_ANOMALOUSCURVE, buffer, bufferOffset, ExpResult.MAY_FAIL); - bufferOffset = VerifyPrintResult("Generate key with anomalous curve (may fail):", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_ANOMALOUSCURVE, buffer, bufferOffset, ExpResult.MAY_FAIL); - bufferOffset = VerifyPrintResult("ECDH agreement with small order point (fail is good):", SimpleECCApplet.ECTEST_ECDH_AGREEMENT_SMALL_DEGREE_POINT, buffer, bufferOffset, ExpResult.MUST_FAIL); - bufferOffset = VerifyPrintResult("Set invalid custom curve (may fail):", SimpleECCApplet.ECTEST_SET_INVALIDCURVE, buffer, bufferOffset, ExpResult.MAY_FAIL); - bufferOffset = VerifyPrintResult("Generate key with invalid curve (fail is good):", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_INVALIDCUSTOMCURVE, buffer, bufferOffset, ExpResult.MUST_FAIL); - bufferOffset = VerifyPrintResult("Set invalid field (may fail):", SimpleECCApplet.ECTEST_SET_INVALIDFIELD, buffer, bufferOffset, ExpResult.MAY_FAIL); - bufferOffset = VerifyPrintResult("Generate key with invalid field (fail si good):", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_INVALIDFIELD, buffer, bufferOffset, ExpResult.MUST_FAIL); - - systemOutLogger.println(); - } - } - - private void PrintECKeyGenInvalidCurveB(ResponseAPDU resp) { - PrintECKeyGenInvalidCurveB(resp.getData()); - } - - private void PrintECKeyGenInvalidCurveB(byte[] buffer) { - systemOutLogger.println(); - systemOutLogger.println("### Test for computation with invalid parameter B for EC curve"); - int bufferOffset = 0; - while (bufferOffset < buffer.length) { - assert (buffer[bufferOffset] == SimpleECCApplet.ECTEST_SEPARATOR); - bufferOffset++; - String ecType = "unknown"; - if (buffer[bufferOffset] == KeyPair.ALG_EC_FP) { - ecType = "ALG_EC_FP"; - } - if (buffer[bufferOffset] == KeyPair.ALG_EC_F2M) { - ecType = "ALG_EC_F2M"; - } - systemOutLogger.println(String.format("%-53s%s", "EC type:", ecType)); - bufferOffset++; - short keyLen = getShort(buffer, bufferOffset); - systemOutLogger.println(String.format("%-53s%d bits", "EC key length (bits):", keyLen)); - bufferOffset += 2; - - short numRepeats = getShort(buffer, bufferOffset); - bufferOffset += 2; - systemOutLogger.println(String.format("%-53s%d times", "Executed repeats before unexpected error: ", numRepeats)); - - bufferOffset = VerifyPrintResult("KeyPair object allocation:", SimpleECCApplet.ECTEST_ALLOCATE_KEYPAIR, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - while (bufferOffset < buffer.length) { - bufferOffset = VerifyPrintResult("Set invalid custom curve:", SimpleECCApplet.ECTEST_SET_INVALIDCURVE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("Generate key with invalid curve (fail is good):", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_INVALIDCUSTOMCURVE, buffer, bufferOffset, ExpResult.MUST_FAIL); - if (buffer[bufferOffset] == SimpleECCApplet.ECTEST_DH_GENERATESECRET) { - bufferOffset = VerifyPrintResult("ECDH agreement with invalid point (fail is good):", SimpleECCApplet.ECTEST_DH_GENERATESECRET, buffer, bufferOffset, ExpResult.MUST_FAIL); - } - bufferOffset = VerifyPrintResult("Set valid custom curve:", SimpleECCApplet.ECTEST_SET_VALIDCURVE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - bufferOffset = VerifyPrintResult("Generate key with valid curve:", SimpleECCApplet.ECTEST_GENERATE_KEYPAIR_CUSTOMCURVE, buffer, bufferOffset, ExpResult.SHOULD_SUCCEED); - } - - systemOutLogger.println(); - } - } - - private void PrintECKeyGenInvalidCurveB_lastUserParams(ResponseAPDU resp) { - byte[] buffer = resp.getData(); - short offset = 0; - systemOutLogger.print("Last used value of B: "); - while (offset < buffer.length) { - systemOutLogger.print(String.format("%x ", buffer[offset])); - offset++; - } - } - - public static void main(String[] args) throws IOException { - SimpleAPDU app = new SimpleAPDU(); - app.run(args); - } -} diff --git a/src/cz/crcs/ectester/reader/Util.java b/src/cz/crcs/ectester/reader/Util.java index f876fe4..e297ab1 100644 --- a/src/cz/crcs/ectester/reader/Util.java +++ b/src/cz/crcs/ectester/reader/Util.java @@ -26,16 +26,28 @@ public class Util { } public static byte[] hexToBytes(String hex, boolean bigEndian) { - StringBuilder sb = new StringBuilder(hex.replace(" ", "")); - if (!bigEndian) { - sb.reverse(); - } - int len = sb.length(); + hex = hex.replace(" ", ""); + int len = hex.length(); + StringBuilder sb = new StringBuilder(); + if (len % 2 == 1) { - sb.insert(0, "0"); + sb.append("0"); ++len; } + if (bigEndian) { + sb.append(hex); + } else { + for (int i = 0; i < len / 2; ++i) { + if (sb.length() >= 2) { + sb.insert(sb.length() - 2, hex.substring(2 * i, 2 * i + 2)); + } else { + sb.append(hex.substring(2 * i, 2 * i + 2)); + } + + } + } + String data = sb.toString(); byte[] result = new byte[len / 2]; for (int i = 0; i < len; i += 2) { |
