aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2018-03-06 01:21:48 +0100
committerJ08nY2018-03-06 01:21:48 +0100
commit2a077441dc10918acf8a1f4f7c671d31b832ff4f (patch)
treebe89f8f05f75a48425e5aa7097a532d9f8bed714
parent7c40e8f0f22e8bcfed34f64820cd90355822ca9f (diff)
downloadECTester-2a077441dc10918acf8a1f4f7c671d31b832ff4f.tar.gz
ECTester-2a077441dc10918acf8a1f4f7c671d31b832ff4f.tar.zst
ECTester-2a077441dc10918acf8a1f4f7c671d31b832ff4f.zip
-rw-r--r--docs/TESTS.md3
-rw-r--r--src/cz/crcs/ectester/data/cofactor/keys.xml62
-rw-r--r--src/cz/crcs/ectester/data/cofactor/secg_keys.xml216
3 files changed, 252 insertions, 29 deletions
diff --git a/docs/TESTS.md b/docs/TESTS.md
index 8f8fa2e..d2eb500 100644
--- a/docs/TESTS.md
+++ b/docs/TESTS.md
@@ -47,6 +47,7 @@ tests all curves for which test-vectors are provided.
Tests on a category of wrong curves. These curves are not really curves as they have:
- non-prime field in the prime-field case
- reducible polynomial as the field polynomial in the binary case
+
This test suite also does some additional tests with corrupting the field parameter:
- Fp:
- p = 0
@@ -68,7 +69,7 @@ does all wrong curve tests.
## Composite
Tests using curves that don't have a prime order/nearly prime order.
-These tests should generally fail, a success here implies the card **WILL** use a non-secure curve if such curve is set
+These tests should generally fail, a success here implies the card will use a non-secure curve if such curve is set
by the applet. Operations over such curves are susceptible to small-subgroup attacks.
For example:
diff --git a/src/cz/crcs/ectester/data/cofactor/keys.xml b/src/cz/crcs/ectester/data/cofactor/keys.xml
index 2d827cd..f65080a 100644
--- a/src/cz/crcs/ectester/data/cofactor/keys.xml
+++ b/src/cz/crcs/ectester/data/cofactor/keys.xml
@@ -1,91 +1,97 @@
<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE keys [
+ <!ENTITY secg SYSTEM "cofactor/secg_keys.xml">
+ ]>
<keys xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../schema.xsd"
category="cofactor"
desc="">
+
<pubkey>
- <id>cofactor2p128_1</id>
+ <id>cofactor2p128/0</id>
<inline>0x1274cf343b12c9de044a312c7e0d88b1,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor2p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor4p128_1</id>
+ <id>cofactor4p128/0</id>
<inline>0x4e5a1eb60f6d2cb5c24f6ea54a675cd6,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor4p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor8p128_1</id>
+ <id>cofactor8p128/0</id>
<inline>0x31eb5f732057b0ea57eed55f4259d85d,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor8p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor16p128_1</id>
+ <id>cofactor16p128/0</id>
<inline>0x89578c4527e2d5e8a95905e30f0889e3,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor16p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor32p128_1</id>
+ <id>cofactor32p128/0</id>
<inline>0x097191ee5ded1c36f2ec6bba78e7e6ea,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor32p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor64p128_1</id>
+ <id>cofactor64p128/0</id>
<inline>0x1d360b7f2f805be59aedeaae2813ee1f,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor64p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor128p128_1</id>
+ <id>cofactor128p128/0</id>
<inline>0x485b34188824c54f115f31891c18795c,0x00000000000000000000000000000000</inline>
<curve>cofactor/cofactor128p128</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor2t163_1</id>
+ <id>cofactor2t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x0132720c6aa3f2ca65d18f2de81e5e6b8ad4a3ef9d</inline>
<curve>cofactor/cofactor2t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor4t163_1</id>
+ <id>cofactor4t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x00b93d46bc80b487e7738644e85bb6d29c2dca2600</inline>
<curve>cofactor/cofactor4t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor8t163_1</id>
+ <id>cofactor8t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x0569879d9674b06578f62ec2f341ddd3b648dfdf51</inline>
<curve>cofactor/cofactor8t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor16t163_1</id>
+ <id>cofactor16t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x04274cf55c49c32ca4c0e30b891e03b3b1c6597df0</inline>
<curve>cofactor/cofactor16t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor32t163_1</id>
+ <id>cofactor32t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x0409969efb468e8f07954a3b4bf7610a0d8b5d4753</inline>
<curve>cofactor/cofactor32t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor64t163_1</id>
+ <id>cofactor64t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x068c5445c03a59d697573b09ae0804e2891bb98208</inline>
<curve>cofactor/cofactor64t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
<pubkey>
- <id>cofactor128t163_1</id>
+ <id>cofactor128t163/0</id>
<inline>0x000000000000000000000000000000000000000000,0x06be374502a948489de2e7d8d82cb6b62a493b77a0</inline>
<curve>cofactor/cofactor128t163</curve>
- <desc></desc>
+ <desc>order = 2</desc>
</pubkey>
+
+ &secg;
</keys>
diff --git a/src/cz/crcs/ectester/data/cofactor/secg_keys.xml b/src/cz/crcs/ectester/data/cofactor/secg_keys.xml
new file mode 100644
index 0000000..d9d3896
--- /dev/null
+++ b/src/cz/crcs/ectester/data/cofactor/secg_keys.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<pubkey>
+ <id>sect163k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect163k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163k1/1</id>
+ <inline>0x07759edd174e24fd20b34e6d43e51230f0f7f892ab,0x05e4bf4321769ea3f4dc92abe028069f8db0fc0dc1</inline>
+ <curve>secg/sect163k1</curve>
+ <desc>order = 0x800000000000000000004021145c1981b33f14bde</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect163r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x009917a2556e1856bc7ea9a472cd01bfb889b95835</inline>
+ <curve>secg/sect163r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163r1/1</id>
+ <inline>0x05a78dd5973d0d39a5970d49b7a13df98558981dcb,0x0340755fa31149f5bf1dd4bf1fa3ef38432babbe13</inline>
+ <curve>secg/sect163r1</curve>
+ <desc>order = 0x7fffffffffffffffffffe91556d1385394e204f36</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect163r2/0</id>
+ <inline>0x000000000000000000000000000000000000000000,0x02c25b85badf8927593d21c366da89c03969f34da5</inline>
+ <curve>secg/sect163r2</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect163r2/1</id>
+ <inline>0x00b8a6683b6d99c044e1086e4eef5d2bd80fd2df41,0x04f6dfa693e7017de96c6e002871b72b3eb6d77b83</inline>
+ <curve>secg/sect163r2</curve>
+ <desc>order = 0x80000000000000000000525fcefce182548469866</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect233k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/2</id>
+ <inline>0x01c90d47aff1ed1172eb861cbc5f11ade07f775b1fdd89b1665c464a97d9,0x002b41324d806a174953fb4ccf8bbeb4fd36cef6f30ccc93618dd282a8e0</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 0x100000000000000000000000000000d3ab7722b79a8ddf635abe2e757be</desc>
+</pubkey>
+<pubkey>
+ <id>sect233k1/3</id>
+ <inline>0x01f477bff0fda3ecd2fa1dff08045717ccf615189375e2437f539c1e1687,0x019f18a66f38eda89284e3979b2aa6ae034cc4a6c7999080815af028bafe</inline>
+ <curve>secg/sect233k1</curve>
+ <desc>order = 0x200000000000000000000000000001a756ee456f351bbec6b57c5ceaf7c</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect233r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x0187f85627b97874e747ee31e06d71caaeea52f21253e5f946d061da9138</inline>
+ <curve>secg/sect233r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect233r1/1</id>
+ <inline>0x00fe7bac18bdc41b4adbabaaa5dd95e7a170b63bb3519b5d897205fe779f,0x0109d0b6ef40d7f05129ee664be44ae57393716c0233857db6a3358926f7</inline>
+ <curve>secg/sect233r1</curve>
+ <desc>order = 0x2000000000000000000000000000027d2e9ce5f14d244063a4c079fc1ae</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect239k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/2</id>
+ <inline>0x2e97f4bf96f4598e4dbbba188895e14b068d9c21ab8e261ffc7d43abc0f2,0x16e86c56595addfdaad811d4bc01df886838cb761332a5bd65f846d63dd3</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 0x400000000000000000000000000000b4f3fd8cf96dd23e383b5001c8f14a</desc>
+</pubkey>
+<pubkey>
+ <id>sect239k1/3</id>
+ <inline>0x718e787b457b7baf3b58bf38c42dd3347802801386fbbe78c4dd5ea31cc0,0x180ad3b3a1182279d21cdd1de3067572c5fe64c3641cc171515c68128cb9</inline>
+ <curve>secg/sect239k1</curve>
+ <desc>order = 0x80000000000000000000000000000169e7fb19f2dba47c7076a00391e294</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect283k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000000000000000000</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/2</id>
+ <inline>0x07801fcb7c8e5dd6f8c21c60dd7c13cd472dedffe20c3331d084eb4ba32f7b4b13a3510c,0x01960ead4b2a835d27a626fab5fc6e779b511c680a5e6af9b42d67228261a2add4220335</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 0x3ffffffffffffffffffffffffffffffffffd35c5da0eaee4cbbfeff288a3c0c3c2c78c2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283k1/3</id>
+ <inline>0x00896ce7c7065cc160ca721127910f598edc8b1e9be077d4756f31aee5705a00302d2e1d,0x0381c6394dbf16cf75f9e79c830e57e5a398ba77258e6d224692940eb925ec0b78ece889</inline>
+ <curve>secg/sect283k1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffa6b8bb41d5dc9977fdfe511478187858f184</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect283r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000,0x072bcc9c5792b1ebe81983089fb6f835a2fd220a304424ca17c082ae17442aede9b9b3f6</inline>
+ <curve>secg/sect283r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect283r1/1</id>
+ <inline>0x0743efa0a997ab11f696f61403759fa6dac093afe26160fa6d4620dc10c73ecbd07d868d,0x013abc297e8c6568601a70a323208d22730b654374643683bb913daaf0910ff492cfb1c5</inline>
+ <curve>secg/sect283r1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffdf20732cc1f92715202cb60854f9df5b660e</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect409k1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/1</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/2</id>
+ <inline>0x013b10b72703d774f4873f985742cce57b9377e5f89049e493eac66748870f718ae0f3ae227b6d75f7e5f810d91da79f985cefdc,0x001aea0d33e0ae234db866482308cbc579e9c7cab1fad1b62dac2a3ea16bec7ca504da1d86370fc748d1ddbc443c8a920c7b9d14</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffcbf0765a9d440801d88aafabda7c7cf94b696b90771c03cbf9e</desc>
+</pubkey>
+<pubkey>
+ <id>sect409k1/3</id>
+ <inline>0x00a6cc45b0ed549286beb3f391467dcd5106fed4fb850e0ca45ac7a5291fa1f73c2ebd66b5eb2fc6c3ad93a225c20e29d76172e1,0x019c34bda5074fe8c75e1017d8b64a87766467083fb6e17a4fc57ca39c6801a31eb71e824fa225922e361db0946c4a3e7445468d</inline>
+ <curve>secg/sect409k1</curve>
+ <desc>order = 0x1fffffffffffffffffffffffffffffffffffffffffffffffffff97e0ecb53a881003b1155f57b4f8f9f296d2d720ee380797f3c</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect409r1/0</id>
+ <inline>0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x009935f7e4768ee2ef22f9b4a29f53cb5d93ab2ed0ad7ce57c1b2649fde895950cf6576773326c528a48e27b872accf0bc25d5ef</inline>
+ <curve>secg/sect409r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect409r1/1</id>
+ <inline>0x01f8a55ff6e55b1d023eca11efc629aedba15e7683f948a84ef6e3746470b2fe9f9c694f862714ec8dbb35ae8e5b760f488ae84a,0x00c0bbc113adacdb9815bb210178b081ef4b40c949fe52345ad21eab210667cc10b5ac0e60d7bb44fee1d6c544b3cc3a18ad0a23</inline>
+ <curve>secg/sect409r1</curve>
+ <desc>order = 0x20000000000000000000000000000000000000000000000000003c555ad4c25e6660f7cbf48f8793c0a5f0702c99a6fb34422e6</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect571k1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/1</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 4</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/2</id>
+ <inline>0x0311efd68e031548397fd197f3c9ea9ef2048b3835bbb52c06cc89fa29a609be1a4215805132ed6c30ed743e6221f34c5d43acd3777c88a42578a7b02d2a9af488c138b206832707,0x01692831faeb78797365873933fd9c5f5223d2bceba37aa6a4f6d128973e3263b124300568f039541e51c6214409523179aaecdf76e789921d84e12991113eacd03727d4c9754920</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 0x400000000000000000000000000000000000000000000000000000000000000000000002630a1c3e334c7c9672351b722fe82716c61b097cbac72703d23bd68b9fcef1ec6f82002</desc>
+</pubkey>
+<pubkey>
+ <id>sect571k1/3</id>
+ <inline>0x0519146e2a901338dce58310d786d30fd6806c620f6a7a9ba4389534dcdf16c6becdacb853fad56e4b048465b4037450468fb9bc6259448ce84a92fd8bfe9c3663dad3da48089517,0x05671e892895ca17683107f21da7741a3fdf47e546dfc6b6d2ed83c970ac88c33b7b522b0a1fe9a7dda46a7075d4881e88b9fc7f3a2002883f6c7d651f9c94252340b59b8abc0aeb</inline>
+ <curve>secg/sect571k1</curve>
+ <desc>order = 0x800000000000000000000000000000000000000000000000000000000000000000000004c614387c6698f92ce46a36e45fd04e2d8c3612f9758e4e07a477ad173f9de3d8df04004</desc>
+</pubkey>
+
+<pubkey>
+ <id>sect571r1/0</id>
+ <inline>0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0x0732d556640c20b5dd739a058dffd58268d41c59135429eb041d7aa1255902e6362c4800a874ab0b60536b58460cd20c06f0340e3594a7f771bedfc10ce39b64699b08443b761c43</inline>
+ <curve>secg/sect571r1</curve>
+ <desc>order = 2</desc>
+</pubkey>
+<pubkey>
+ <id>sect571r1/1</id>
+ <inline>0x01e4b7514be19101ec1d9f032bdba65dd1d73465bc1425e3847f44b7b2c78669358ab7bb34dec5202db32c0e65f8f4e0c5c0db8ae19537307ba6391dfa7831375b1b3957d403477a,0x00f04eb4a9ce0f18f879143faea24107682602d9319105a62c2758da491014ae34280a32830a1e239d0e89b3a3ff60acb640afc01aa56dcb8344423f0ad9f071af3d95d7675578fc</inline>
+ <curve>secg/sect571r1</curve>
+ <desc>order = 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffccc39c31feab30e6100b3630d0470a3d8fbb39422c3bd27aa2e9acdd0705d3765fd09c8e</desc>
+</pubkey> \ No newline at end of file