diff options
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/b163.xml | 12 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/b233.xml | 14 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/b283.xml | 14 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/k163.xml | 10 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/k233.xml | 12 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/k283.xml | 4 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/p192.xml | 6 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/p224.xml | 14 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/p256.xml | 10 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/p384.xml | 2 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/data/twist/nist/p521.xml | 10 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/ECTesterReader.java | 7 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java | 2 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/reader/test/CardTwistTestSuite.java | 62 |
14 files changed, 122 insertions, 57 deletions
diff --git a/src/cz/crcs/ectester/data/twist/nist/b163.xml b/src/cz/crcs/ectester/data/twist/nist/b163.xml index 89ee6a4..03690ac 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b163.xml +++ b/src/cz/crcs/ectester/data/twist/nist/b163.xml @@ -2,36 +2,36 @@ <pubkey> <id>b163/0</id> <inline>0x000000000000000000000000000000000000000000,0x02c25b85badf8927593d21c366da89c03969f34da5</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>b163/1</id> <inline>0x03a98eb9fc1007f0a2b0e8de7da23cc6a7f7dd76b1,0x019971752926a2aca5407bffbf2a73f3f884b97127</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0x1f</desc> </pubkey> <pubkey> <id>b163/2</id> <inline>0x023ae22e69bac70ca24078fdf63753eaf6cb89e857,0x03674a33443dc657c24685eb761ab7efbb63a8adbc</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0x38b</desc> </pubkey> <pubkey> <id>b163/3</id> <inline>0x04feb095cf083a783cac4107305889efa9f401cc27,0x0403abb00aa4712e4b9120391d59745e9fbad39db3</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0x1208485</desc> </pubkey> <pubkey> <id>b163/4</id> <inline>0x00a72a640e05acc0e6c6956ab5be24240b92623add,0x031dfc8af709b3db0a05126f17a7b4d703de503475</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0xb78fc77</desc> </pubkey> <pubkey> <id>b163/5</id> <inline>0x031b5fc734d73023a06e4fe1b7921811221c6d1b2a,0x05432357b4a42a7b8f51b04dfab95a5ecf03547500</inline> - <curve>nist/b163</curve> + <curve>nist/B-163</curve> <desc>twist order = 0x5c4bf9b1205a07afbe718429</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/b233.xml b/src/cz/crcs/ectester/data/twist/nist/b233.xml index 51768d3..7a0b579 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b233.xml +++ b/src/cz/crcs/ectester/data/twist/nist/b233.xml @@ -2,42 +2,42 @@ <pubkey> <id>b233/0</id> <inline>0x000000000000000000000000000000000000000000000000000000000000,0x0187f85627b97874e747ee31e06d71caaeea52f21253e5f946d061da9138</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>b233/1</id> <inline>0x01143eef5ed49cf4b4c552259589988a019e98418c012194a255e9186870,0x01f8070b0ef657563e5d584ce23fc58ef70265d4178d78717c6acebb8c78</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x5</desc> </pubkey> <pubkey> <id>b233/2</id> <inline>0x01c8185b4f7d07a7eca7deb9f2adcd3c9402461f8679cbc9618ad1d82be3,0x002d17d4fa7eafbf4f6238b94ddc95f6a56384a4028f50e7de1838c21c8c</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x11b</desc> </pubkey> <pubkey> <id>b233/3</id> <inline>0x01af53fdcb81b561803cb01ba4d384fa3ef7633b1c0dfb35f0e437ffc201,0x012a092d0b600cc59c2234ae65261513eee7a085428b2b42e96253b1143e</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x21d</desc> </pubkey> <pubkey> <id>b233/4</id> <inline>0x01f4b2e29d7a3796e3aa4a6b3ff40805d322292acefd80149ff954d75e04,0x00df2f3258674f799c4dcc8cef118abb4c00abf0c1f10144b47af7a6f41b</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x22dba0b9</desc> </pubkey> <pubkey> <id>b233/5</id> <inline>0x01b6b9ce48a1428cb554a76a3f659d8b443ebee6b5619c88100bf3f83bb1,0x00dcafc85dfc3758e99736abe5ed2c4f03cbed5a3b478c9e233b976f7258</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x2a7504c0fda95a2311</desc> </pubkey> <pubkey> <id>b233/6</id> <inline>0x015cc90c0fdc2fc5fefddf1e9890627f87250b74fbaacd77feb761085d59,0x00059ccb49d156720dd3bcd75438225df9f9e84e7ffc0fc0dda02a647613</inline> - <curve>nist/b233</curve> + <curve>nist/B-233</curve> <desc>twist order = 0x1e53fa33649df4ef97d6b29ded5a7</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/b283.xml b/src/cz/crcs/ectester/data/twist/nist/b283.xml index bf6d1e6..7f57585 100644 --- a/src/cz/crcs/ectester/data/twist/nist/b283.xml +++ b/src/cz/crcs/ectester/data/twist/nist/b283.xml @@ -2,42 +2,42 @@ <pubkey> <id>b283/0</id> <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x072bcc9c5792b1ebe81983089fb6f835a2fd220a304424ca17c082ae17442aede9b9b3f6</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>b283/1</id> <inline>0x0297e6d1f2b857a79f5dc85c2f1259d5d801c61a4d0a4312a04f65f09a887a7b93cf7ae1,0x051963c38ac61f05fef93707abcfbda7bc0f39eacddb2bdd3077f19c0e65c8be66ecb30e</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x7</desc> </pubkey> <pubkey> <id>b283/2</id> <inline>0x022b522e9e120300e74563dee496f8feb64209b858abd5da50f31c92ae4a1eee751c92d6,0x012647d0d771016622e899c2a54afad773907e42e15d45e1db3e4fb0ae6a6df2934dba63</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x13</desc> </pubkey> <pubkey> <id>b283/3</id> <inline>0x02597a5336d18d9effde2820bed7352dccc8824abc81cde80914ea3cd072da55e9f91368,0x04a6d2c92a1ee699cda25dafa88191ef34218e9ea5c996d37e9ce507c318e7649b3b02d9</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x1623ab619</desc> </pubkey> <pubkey> <id>b283/4</id> <inline>0x01b011689cef74d9b2be4e8fb548eeabe31a678f560fc7b893c330b3939da9451a0cff78,0x022fd9ba4762f742a18e299f035a837b0525d7030e6b061eaa9242237d0767e7c28b608d</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x2a4aa67aaaf5413fb</desc> </pubkey> <pubkey> <id>b283/5</id> <inline>0x06ac85dce72aa795b5b90d43849dec9d4ee0ffc4d41f87fe8d48de2ac3cf84dfc5c20263,0x008e5147dba15ff3cb287457b3f41d32ca6c074df014f85033368d982c1670907d6afa05</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x25a8cdb1f2e470f3ac1ba7</desc> </pubkey> <pubkey> <id>b283/6</id> <inline>0x0132803a996ebd53ffa3553fc994b583cdb9514e4476c79336acf72f82ac36add519e655,0x004d30604436960af06b2eab63027ca8f59ca105f505afcd3413e1e72f5fb9c0f29d3a20</inline> - <curve>nist/b283</curve> + <curve>nist/B-283</curve> <desc>twist order = 0x606749a9c147da03ad3f37</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/k163.xml b/src/cz/crcs/ectester/data/twist/nist/k163.xml index 12e0f8e..31040c0 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k163.xml +++ b/src/cz/crcs/ectester/data/twist/nist/k163.xml @@ -2,30 +2,30 @@ <pubkey> <id>k163/0</id> <inline>0x000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000001</inline> - <curve>nist/k163</curve> + <curve>nist/K-163</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>k163/1</id> <inline>0x04410857858628f16bd3ef77fce6732525d6d75f6c,0x00c51e38c5eb613ff4c8b594d754a218f30e8b1c39</inline> - <curve>nist/k163</curve> + <curve>nist/K-163</curve> <desc>twist order = 0x28d</desc> </pubkey> <pubkey> <id>k163/2</id> <inline>0x004c291913c2e75103b38481fbda3830850ee4c026,0x0403ff8ccadf20f12e10e40b8eed4872d4c128aaa2</inline> - <curve>nist/k163</curve> + <curve>nist/K-163</curve> <desc>twist order = 0x1979</desc> </pubkey> <pubkey> <id>k163/3</id> <inline>0x03868f9f75e8d0056c6e1aabed4a3df1437a56b386,0x07473bb4e85044c95af468d5374da860c4e563159c</inline> - <curve>nist/k163</curve> + <curve>nist/K-163</curve> <desc>twist order = 0x7926bec180108d</desc> </pubkey> <pubkey> <id>k163/4</id> <inline>0x0162deb07d5848fc45fd580549a6f17fecea1b7497,0x0297440c5cfd9e8fe781004db92f9f106b9d33235f</inline> - <curve>nist/k163</curve> + <curve>nist/K-163</curve> <desc>twist order = 0x10a6989de57d15c65ba229</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/k233.xml b/src/cz/crcs/ectester/data/twist/nist/k233.xml index 2367e25..6354ff9 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k233.xml +++ b/src/cz/crcs/ectester/data/twist/nist/k233.xml @@ -2,36 +2,36 @@ <pubkey> <id>k233/0</id> <inline>0x000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000001</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>k233/1</id> <inline>0x01f5c35c89f8294442218a24a7e62ce3dac66c3ee5e9d2b70aaf51f520b2,0x001328eb45743dd96c4deaaa299b5394abfec9852e73a1e051a745fa95d8</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0x1686d</desc> </pubkey> <pubkey> <id>k233/2</id> <inline>0x00959e63a797bf3b2ea48d328ea3a9985da6bc95f296d1fc5e8cf17c257c,0x0070034f2e503a97be8766dd6db086870eea2e3fcb02260e9fcc0df8704c</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0x6d8a417</desc> </pubkey> <pubkey> <id>k233/3</id> <inline>0x00103cf39b9ffa6da7ef9f19f601daf698148663f6e0ae3b4ae2dca53782,0x013c1241644b61fb8c811287c2277c863eb0c31287e30d57d99169b1f509</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0x7c02977</desc> </pubkey> <pubkey> <id>k233/4</id> <inline>0x003d84c97077988af52d6d825080c0c79276fc168e092260d67b5d4ca3a3,0x01d3fa5b63a25a8f08828117edb78a1ab31724ecfc74d4fc2c4b7ea00703</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0x46403a035013f70d</desc> </pubkey> <pubkey> <id>k233/5</id> <inline>0x01a053f3903f7b9e7e5c8784b01e43fd427b7264781b1e6c7a8755065a38,0x01ed5e24cd66d3d42b4a869aee65bff9506a8cdbc9f3c3c86543ba14db12</inline> - <curve>nist/k233</curve> + <curve>nist/K-233</curve> <desc>twist order = 0xc7cb3894752e561e6abf871db</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/k283.xml b/src/cz/crcs/ectester/data/twist/nist/k283.xml index d27fad9..48a2dd9 100644 --- a/src/cz/crcs/ectester/data/twist/nist/k283.xml +++ b/src/cz/crcs/ectester/data/twist/nist/k283.xml @@ -2,12 +2,12 @@ <pubkey> <id>k283/0</id> <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000001</inline> - <curve>nist/k283</curve> + <curve>nist/K-283</curve> <desc>twist order = 0x2</desc> </pubkey> <pubkey> <id>k283/1</id> <inline>0x02707778aaa47f7a075be036522a6c2998ce118bf7e6314f342ba399dbc3572750791e4d,0x0568810a78107353690d1429cb7f4f408650cbf112d096907f563971baafad1b36436ec2</inline> - <curve>nist/k283</curve> + <curve>nist/K-283</curve> <desc>twist order = 0x400000000000000000000000000000000002ca3a25f1511b3440100d775c3f3c3d3873f</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/p192.xml b/src/cz/crcs/ectester/data/twist/nist/p192.xml index ddb547e..d1fdf49 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p192.xml +++ b/src/cz/crcs/ectester/data/twist/nist/p192.xml @@ -2,18 +2,18 @@ <pubkey> <id>p192/0</id> <inline>0x489ba2a146ac0e7bb9f008fb780005e48d3588893c7ebca9,0x7caac0b203223010fb59940946a12e35d227fcb3ee6c9afc</inline> - <curve>nist/p192</curve> + <curve>nist/P-192</curve> <desc>twist order = 0x17</desc> </pubkey> <pubkey> <id>p192/1</id> <inline>0xfaebaecd2737a6c22b5023d236ad48ab9acacb2cac075379,0x43810e9a10dabc2f835af837ac83fc4f0225773f3a84103f</inline> - <curve>nist/p192</curve> + <curve>nist/P-192</curve> <desc>twist order = 0x231acce82af76d32ca5d526f</desc> </pubkey> <pubkey> <id>p192/2</id> <inline>0x7af6e161dcb8cd7852d5102ab42974af5179706d4616cce0,0xa3177747f0de49227575d2afc449187ab546e9ab827fcac9</inline> - <curve>nist/p192</curve> + <curve>nist/P-192</curve> <desc>twist order = 0x512b1bfde874086edba50007</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/p224.xml b/src/cz/crcs/ectester/data/twist/nist/p224.xml index 693b2f8..3ae34ff 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p224.xml +++ b/src/cz/crcs/ectester/data/twist/nist/p224.xml @@ -2,42 +2,42 @@ <pubkey> <id>p224/0</id> <inline>0x90427f4a141f94c26f98d40060292350fcace2356961ef27dda08d7b,0x58877d4992c377c33459aa0caeb0526881326f201beb519fc11aadc8</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0x3</desc> </pubkey> <pubkey> <id>p224/1</id> <inline>0x7f87c1db4213f1032c251a514e324f4360390476e0f7cd025547df58,0x2498f43e46af6fa0ad6480cfd61fb40caa78e349db0766a8760ff021</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0xb</desc> </pubkey> <pubkey> <id>p224/2</id> <inline>0x2a2d61174fd561e9da2f279b96f7a69ae50a78d87f09674f465c9184,0xc9c7232ca8a50587181d8c96204c1eec6e976bcbd58e3c7181dbb2a7</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0x2f</desc> </pubkey> <pubkey> <id>p224/3</id> <inline>0x15da8f68bfe51bc75f0cd892f7400c3d5ce5a9c6da126171527767cc,0x0cee3612475887d31963b62c69580191d1158df3f0c0305765175c9c</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0x2e0273</desc> </pubkey> <pubkey> <id>p224/4</id> <inline>0xbd813fcdea2281a452733516e4e2625fac96573c41f3b37c56d0d1d7,0x351de92e6b06928fec37ee0ffd03606fecc5022edc1a72453c433ef4</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0x268160f</desc> </pubkey> <pubkey> <id>p224/5</id> <inline>0x2a379d972d016116067b5bf2c23937b6182b4dc6bf8aa0625eb58b9f,0xb9ec1e372728d3334a762e5d64faca1e0cd47f46c3e5402ff14cb140</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0xf3bac7aa52cf</desc> </pubkey> <pubkey> <id>p224/6</id> <inline>0xc5e229bfc9f4e0992ecf51a3c354e6aac1a4673056bee9a673beae5a,0x73a2e7d530b13c281d460ea2d2c3bddb49a8eb3446b9308ec64d5a70</inline> - <curve>nist/p224</curve> + <curve>nist/P-224</curve> <desc>twist order = 0x22340ff0f7eba57b33ac73e28a14d1</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/p256.xml b/src/cz/crcs/ectester/data/twist/nist/p256.xml index fd7854c..2e1c55e 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p256.xml +++ b/src/cz/crcs/ectester/data/twist/nist/p256.xml @@ -2,30 +2,30 @@ <pubkey> <id>p256/0</id> <inline>0x92787586fc8a5d065a2a754e229a66ea3c845c8d5f7120792ee3aacee88ca01c,0xee95a42047d9eae3bb007aa7aed3a87ee6986df813f6c76d8f19866a1b1f9c20</inline> - <curve>nist/p256</curve> + <curve>nist/P-256</curve> <desc>twist order = 0x3</desc> </pubkey> <pubkey> <id>p256/1</id> <inline>0x40d27c77cf9fb36e49a850b1ae7357c9ab3f1d917d52ba3edb648bd33354d3da,0xd30662382d8440919f4decbc58c6d9ca8745d39cdd71c26063fd2fa8bcbb69f7</inline> - <curve>nist/p256</curve> + <curve>nist/P-256</curve> <desc>twist order = 0x5</desc> </pubkey> <pubkey> <id>p256/2</id> <inline>0x33961ae81d08958d1dbc42bdadb05e7cb7bdda383b1c49e18c3a2f5908c833a2,0xc4a96d4f905a1d7e32d4c82d6e79f1ef7047d09bf1d1518be2c65d13815306fe</inline> - <curve>nist/p256</curve> + <curve>nist/P-256</curve> <desc>twist order = 0xd</desc> </pubkey> <pubkey> <id>p256/3</id> <inline>0x21fa3bf4b7d23dea73a1751d3b02dd8724a2a5a0ae9b28fdd98b8ef18bb610f5,0x7d933ab51ac8bc7e5d3c5a44d9875c64a080eba393c6492e4e5ce2367f133dd1</inline> - <curve>nist/p256</curve> + <curve>nist/P-256</curve> <desc>twist order = 0xb3</desc> </pubkey> <pubkey> <id>p256/4</id> <inline>0x3819da45c7b025be543fd40ec49b2613891c12f2ae2daf014396c70270eff92c,0xbec84d62254dbc67864ced51966d4f419ad5b1ec9ee1d72cce291a8a034518da</inline> - <curve>nist/p256</curve> + <curve>nist/P-256</curve> <desc>twist order = 0x1e0a75640070a738557cc30f68bd56eaea65c94f98411d17ac4e16ece1a47</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/p384.xml b/src/cz/crcs/ectester/data/twist/nist/p384.xml index eef02b8..8e0d2b6 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p384.xml +++ b/src/cz/crcs/ectester/data/twist/nist/p384.xml @@ -2,6 +2,6 @@ <pubkey> <id>p384/0</id> <inline>0x77e3431a4d6b9d63985798eb41188f9af7eb6c0f38745d360bf82b5c2c162cb8393adf2dbc4d5531c49322d9c7b4c9cd,0x2b38ea158d3c980e9b3618cfe42599dd9d78e630ac83c66673949121ca6c8997fbf5e08c060076f3fa60d6dec8ac8624</inline> - <curve>nist/p384</curve> + <curve>nist/P-384</curve> <desc>twist order = 0x1000000000000000000000000000000000000000000000000389cb27e0bc8d21ea7e5f24bb74f58851313e697333ad68d</desc> </pubkey> diff --git a/src/cz/crcs/ectester/data/twist/nist/p521.xml b/src/cz/crcs/ectester/data/twist/nist/p521.xml index 82eb773..1564c80 100644 --- a/src/cz/crcs/ectester/data/twist/nist/p521.xml +++ b/src/cz/crcs/ectester/data/twist/nist/p521.xml @@ -2,30 +2,30 @@ <pubkey> <id>p521/0</id> <inline>0x01a0c6f0e5b2c6948218fb8d1e913d750ace27674e59ec0a45f8f5883518c65c401af5a2275b7c2c74e717f5b64c48056f1440de1d48ef0825086f12db4f862e4467,0x00c93c77edf1cac8bab534a28c49446113a22833e05658b69f73658d7867b43c94f58d52e17b726e3f6d0b5847d91980509250210c4e1c73eeec72e185529c1450b0</inline> - <curve>nist/p521</curve> + <curve>nist/P-521</curve> <desc>twist order = 0x5</desc> </pubkey> <pubkey> <id>p521/1</id> <inline>0x00e84fb16849133c2e4c24e7efc4df752ed9f01204aa692342bc619a8a9ccdd1b058996f3896790d0ee1b7c480cb117cc0b9272c116c6f544b99dca9d441976c69c0,0x00e6d2c8adb57c81db0bead3d225ee900c81e049d0e36bf20bf421f5620449b1638f2b1998f3e1ffbee369a74bc4833d01f45b46388755ba16abf67c5f7f53ac9110</inline> - <curve>nist/p521</curve> + <curve>nist/P-521</curve> <desc>twist order = 0x7</desc> </pubkey> <pubkey> <id>p521/2</id> <inline>0x0161cb810a7d7f9092d518ed483208f202cf5a984e98ff50f94b13e04bf94be942c91a007cff215d55bf124912b8620312bc94e813d7956e3821b45da439f0b0e8e7,0x005194f315423bcacf38ea558ff344daedf9a51a81b0a9ef27f1d687c8d1b6952b60b6486fc2c3d394749fb00e4921a5cfced55c1fe821e8b80279f6cec89ba1ac1f</inline> - <curve>nist/p521</curve> + <curve>nist/P-521</curve> <desc>twist order = 0x4277ffb</desc> </pubkey> <pubkey> <id>p521/3</id> <inline>0x01c133c394ad86829a9252e4d5e266c3d2830eb9b899e2cb16b815a5c7050c3bc53c415296339d33427087bdef04c0ae2d8f7d63d4a41176bd76d3c07cbd1ecfd1ee,0x01fee0c7535c40e01f2c12ee2a6ae1e54cafc147c3b491602da1f278b46c6ae3c04705b3bb3c72af70aaf3d4c684411ede8694d7a21b3734ce43ecc2b4a1ee2efee7</inline> - <curve>nist/p521</curve> + <curve>nist/P-521</curve> <desc>twist order = 0x25e6d2cd</desc> </pubkey> <pubkey> <id>p521/4</id> <inline>0x01232e18498e6cafe2572ec0b511376cf0d4844ec3b94472fb53346d7d9611726065cc922b3d2132117c99bce0ff8bc7f51bb30c6909a53b7c8a88e81807c31a1999,0x0112ada376c25bdc96440e0e2bf936377b287e885a08e6e1b5aa54f9b269cce4ed6ca6e6e44bd6d8e092e4864b278951648e897682096488e2a36036e989b1af7b24</inline> - <curve>nist/p521</curve> + <curve>nist/P-521</curve> <desc>twist order = 0x17c8b8fa594c0fc63a5c0043ab498c1762d92f18fdfe2fea8f074695615d886d81bf930a0ac77d01bf9dd8c1a1ae121dab4e860c5dc18e265de3</desc> </pubkey> diff --git a/src/cz/crcs/ectester/reader/ECTesterReader.java b/src/cz/crcs/ectester/reader/ECTesterReader.java index ff0f403..4097d81 100644 --- a/src/cz/crcs/ectester/reader/ECTesterReader.java +++ b/src/cz/crcs/ectester/reader/ECTesterReader.java @@ -247,7 +247,7 @@ public class ECTesterReader { actions.addOption(Option.builder("ln").longOpt("list-named").desc("Print the list of supported named curves and keys.").hasArg().argName("what").optionalArg(true).build()); actions.addOption(Option.builder("e").longOpt("export").desc("Export the defaut curve parameters of the card(if any).").build()); actions.addOption(Option.builder("g").longOpt("generate").desc("Generate [amount] of EC keys.").hasArg().argName("amount").optionalArg(true).build()); - actions.addOption(Option.builder("t").longOpt("test").desc("Test ECC support. [test_suite]:\n- default:\n- invalid:\n- wrong:\n- composite:\n- test-vectors:").hasArg().argName("test_suite").optionalArg(true).build()); + actions.addOption(Option.builder("t").longOpt("test").desc("Test ECC support. [test_suite]:\n- default:\n- invalid:\n- twist:\n- wrong:\n- composite:\n- test-vectors:").hasArg().argName("test_suite").optionalArg(true).build()); actions.addOption(Option.builder("dh").longOpt("ecdh").desc("Do EC KeyAgreement (ECDH...), [count] times.").hasArg().argName("count").optionalArg(true).build()); actions.addOption(Option.builder("dsa").longOpt("ecdsa").desc("Sign data with ECDSA, [count] times.").hasArg().argName("count").optionalArg(true).build()); @@ -446,6 +446,9 @@ public class ECTesterReader { case "invalid": suite = new CardInvalidCurvesSuite(writer, cfg, cardManager); break; + case "twist": + suite = new CardTwistTestSuite(writer, cfg, cardManager); + break; default: System.err.println("Unknown test suite."); return; @@ -780,7 +783,7 @@ public class ECTesterReader { } testSuite = cli.getOptionValue("test", "default").toLowerCase(); - String[] tests = new String[]{"default", "composite", "invalid", "test-vectors", "wrong"}; + String[] tests = new String[]{"default", "composite", "invalid", "test-vectors", "wrong", "twist"}; if (!Arrays.asList(tests).contains(testSuite)) { System.err.println("Unknown test suite " + testSuite + ". Should be one of: " + Arrays.toString(tests)); return false; diff --git a/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java b/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java index 0572a66..8424d45 100644 --- a/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java +++ b/src/cz/crcs/ectester/reader/test/CardInvalidCurvesSuite.java @@ -26,7 +26,7 @@ import static cz.crcs.ectester.common.test.Result.ExpectedValue; public class CardInvalidCurvesSuite extends CardTestSuite { public CardInvalidCurvesSuite(TestWriter writer, ECTesterReader.Config cfg, CardMngr cardManager) { - super(writer, cfg, cardManager, "invalid", "The invalid curve suite run whether the card rejects points outside of the curve during ECDH."); + super(writer, cfg, cardManager, "invalid", "The invalid curve suite tests whether the card rejects points outside of the curve during ECDH."); } @Override diff --git a/src/cz/crcs/ectester/reader/test/CardTwistTestSuite.java b/src/cz/crcs/ectester/reader/test/CardTwistTestSuite.java new file mode 100644 index 0000000..c43b234 --- /dev/null +++ b/src/cz/crcs/ectester/reader/test/CardTwistTestSuite.java @@ -0,0 +1,62 @@ +package cz.crcs.ectester.reader.test; + +import cz.crcs.ectester.applet.ECTesterApplet; +import cz.crcs.ectester.applet.EC_Consts; +import cz.crcs.ectester.common.ec.EC_Curve; +import cz.crcs.ectester.common.ec.EC_Key; +import cz.crcs.ectester.common.output.TestWriter; +import cz.crcs.ectester.common.test.CompoundTest; +import cz.crcs.ectester.common.test.Result; +import cz.crcs.ectester.common.test.Test; +import cz.crcs.ectester.data.EC_Store; +import cz.crcs.ectester.reader.CardMngr; +import cz.crcs.ectester.reader.ECTesterReader; +import cz.crcs.ectester.reader.command.Command; +import javacard.security.KeyPair; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class CardTwistTestSuite extends CardTestSuite { + public CardTwistTestSuite(TestWriter writer, ECTesterReader.Config cfg, CardMngr cardManager) { + super(writer, cfg, cardManager, "twist", "The twist test suite tests whether the card correctly rejects points on the quadratic twist of the curve during ECDH."); + } + + @Override + protected void runTests() throws Exception { + Map<String, EC_Key.Public> pubkeys = EC_Store.getInstance().getObjects(EC_Key.Public.class, "twist"); + Map<EC_Curve, List<EC_Key.Public>> curves = new HashMap<>(); + for (EC_Key.Public key : pubkeys.values()) { + EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, key.getCurve()); + if (curve.getBits() != cfg.bits && !cfg.all) { + continue; + } + if (curve.getField() == KeyPair.ALG_EC_FP && !cfg.primeField || curve.getField() == KeyPair.ALG_EC_F2M && !cfg.binaryField) { + continue; + } + List<EC_Key.Public> keys = curves.getOrDefault(curve, new LinkedList<>()); + keys.add(key); + curves.putIfAbsent(curve, keys); + } + for (Map.Entry<EC_Curve, List<EC_Key.Public>> e : curves.entrySet()) { + EC_Curve curve = e.getKey(); + List<EC_Key.Public> keys = e.getValue(); + + doTest(CommandTest.expect(new Command.Allocate(this.card, ECTesterApplet.KEYPAIR_BOTH, curve.getBits(), curve.getField()), Result.ExpectedValue.SUCCESS)); + doTest(CommandTest.expect(new Command.Set(this.card, ECTesterApplet.KEYPAIR_BOTH, EC_Consts.CURVE_external, curve.getParams(), curve.flatten()), Result.ExpectedValue.SUCCESS)); + doTest(CommandTest.expect(new Command.Generate(this.card, ECTesterApplet.KEYPAIR_LOCAL), Result.ExpectedValue.SUCCESS)); + List<Test> ecdhTests = new LinkedList<>(); + for (EC_Key.Public pub : keys) { + Command ecdhCommand = new Command.ECDH_direct(this.card, ECTesterApplet.KEYPAIR_LOCAL, ECTesterApplet.EXPORT_FALSE, EC_Consts.CORRUPTION_NONE, ECTesterApplet.KeyAgreement_ALG_EC_SVDP_DH, pub.flatten()); + ecdhTests.add(CommandTest.expect(ecdhCommand, Result.ExpectedValue.FAILURE, "Card correctly rejected point on twist.", "Card incorrectly accepted point on twist.")); + } + doTest(CompoundTest.all(Result.ExpectedValue.SUCCESS, "Twist test of " + curve.getId(), ecdhTests.toArray(new Test[0]))); + new Command.Cleanup(this.card).send(); + } + } +} |
