* Insert more intermediate values, specifically at every power of 10.
* Rather than calculating the whole thing from scratch each time,
tests other than the first one continue from the previous
state (which I had to calculate the hard way and enter into the
test-vector files). The total iteration count and final results
still match the RFC.
* Split the very slow high-iteration-count tests into a separate file,
where they can be run discretionally without having to edit source
files. Arrange to distribute these new files.
pkginclude_HEADERS += x25519.h
libpub_la_SOURCES += x25519.c
TESTS += x25519.t$(EXEEXT)
-EXTRA_DIST += t/x25519
+EXTRA_DIST += t/x25519 t/x25519.slow
## Bernstein's Ed25519 signature algorithm.
pkginclude_HEADERS += ed25519.h
pkginclude_HEADERS += x448.h
libpub_la_SOURCES += x448.c
TESTS += x448.t$(EXEEXT)
-EXTRA_DIST += t/x448
+EXTRA_DIST += t/x448 t/x448.slow
## Ed448: Bernstein's EdDSA over Hamburg's Ed448-Goldilocks curve.
pkginclude_HEADERS += ed448.h
0900000000000000000000000000000000000000000000000000000000000000
0900000000000000000000000000000000000000000000000000000000000000
1 422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079;
- 0900000000000000000000000000000000000000000000000000000000000000
+ 422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079
0900000000000000000000000000000000000000000000000000000000000000
- 1000 684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51;
-
- ## This one takes aaaaages.
- ##0900000000000000000000000000000000000000000000000000000000000000
- ## 0900000000000000000000000000000000000000000000000000000000000000
- ## 1000000 7c3911e0ab2586fd864497297e575e6f3bc601c0883c30df5f4dd2d24f665424;
+ 9 7b96f292a115e83e78560105869c00b0f4fb2cd10e385b8c64bf047b0c0e1113;
+ 7b96f292a115e83e78560105869c00b0f4fb2cd10e385b8c64bf047b0c0e1113
+ 15ede295d28b07a10484dab4c591580dea0a9181591f20c364c1b26387200466
+ 90 b1a5a73158904c020866c13939dd7e1aa26852ee1d2609c92e5a8f1debe2150a;
+ b1a5a73158904c020866c13939dd7e1aa26852ee1d2609c92e5a8f1debe2150a
+ 4f5d42724afd7c6e46259e753d3f9e186b72c47f692881c0d069c481ddaf3362
+ 900 684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51;
}
--- /dev/null
+### Very slow tests for X25519.
+
+x25519-mct {
+ ## These tests are from RFC7748.
+
+ ## These are duplicated from the basic `x25519' set, as a simple smoke test.
+ 0900000000000000000000000000000000000000000000000000000000000000
+ 0900000000000000000000000000000000000000000000000000000000000000
+ 1 422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079;
+ 422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079
+ 0900000000000000000000000000000000000000000000000000000000000000
+ 9 7b96f292a115e83e78560105869c00b0f4fb2cd10e385b8c64bf047b0c0e1113;
+ 7b96f292a115e83e78560105869c00b0f4fb2cd10e385b8c64bf047b0c0e1113
+ 15ede295d28b07a10484dab4c591580dea0a9181591f20c364c1b26387200466
+ 90 b1a5a73158904c020866c13939dd7e1aa26852ee1d2609c92e5a8f1debe2150a;
+ b1a5a73158904c020866c13939dd7e1aa26852ee1d2609c92e5a8f1debe2150a
+ 4f5d42724afd7c6e46259e753d3f9e186b72c47f692881c0d069c481ddaf3362
+ 900 684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51;
+
+ ## And the ones which take a long time...
+ 684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51
+ e4ba7df230e7574d397d88e1e18069d405dd71c6a286086dda6cc54d04f69a18
+ 9000 2c125a20f639d504a7703d2e223c79a79de48c4ee8c23379aa19a62ecd211815;
+ 2c125a20f639d504a7703d2e223c79a79de48c4ee8c23379aa19a62ecd211815
+ 6acc9309a5cc14e183dc85dc8c836a0ca2877a753afbbde0cf93a86303ea4e7c
+ 90000 58698a8c126b120405697d7b449257f249ed4ebd8b3e5478fbf6a23c7ff17529;
+ 58698a8c126b120405697d7b449257f249ed4ebd8b3e5478fbf6a23c7ff17529
+ bc41fced43bc8050cbac264c413175b97d043cf9d1477a2f18bbc36687e2276e
+ 900000 7c3911e0ab2586fd864497297e575e6f3bc601c0883c30df5f4dd2d24f665424;
+}
0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1 3f482c8a9f19b01e6c46ee9711d9dc14fd4bf67af30765c2ae2b846a4d23a8cd0db897086239492caf350b51f833868b9bc2b3bca9cf4113;
- 0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 3f482c8a9f19b01e6c46ee9711d9dc14fd4bf67af30765c2ae2b846a4d23a8cd0db897086239492caf350b51f833868b9bc2b3bca9cf4113
0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- 1000 aa3b4749d55b9daf1e5b00288826c467274ce3ebbdd5c17b975e09d4af6c67cf10d087202db88286e2b79fceea3ec353ef54faa26e219f38;
-
- ## This one takes aaaaages.
- ##0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- ## 0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- ## 1000000 077f453681caca3693198420bbe515cae0002472519b3e67661a7e89cab94695c8f4bcd66e61b9b9c946da8d524de3d69bd9d9d66b997e37;
+ 9 bd0db3e1f95046adf463ea8a534f7303f62779be48e8fcabd3c41769decc2a5e387897a873086c757181a90449e51d8ef20205b158a332c2;
+ bd0db3e1f95046adf463ea8a534f7303f62779be48e8fcabd3c41769decc2a5e387897a873086c757181a90449e51d8ef20205b158a332c2
+ 3845e129a24aeffdeaaa89b53e69c7482a1bc7b8e0168aaa96d91ec6b2de20134c2224dde4afe2e763eb13b578cf0616c12f3a4eebd57353
+ 90 cca03d8ed3f54baf8d1aa088b1f24bc68aed538d06485f025f17a5431ded28f256d34f6bdd3d63cc5e047c458e81385519a92999bddc2653;
+ cca03d8ed3f54baf8d1aa088b1f24bc68aed538d06485f025f17a5431ded28f256d34f6bdd3d63cc5e047c458e81385519a92999bddc2653
+ c7e0040d8646ccdf1b6e376fd828276586348c6176f8a7acd90f5a3cc4ee0407f95cb43e0dbd3fc368163f03d51d79d4a5e79797757c6760
+ 900 aa3b4749d55b9daf1e5b00288826c467274ce3ebbdd5c17b975e09d4af6c67cf10d087202db88286e2b79fceea3ec353ef54faa26e219f38;
}
--- /dev/null
+### Very slow tests for X448.
+
+x448-mct {
+ ## These tests are from RFC7748.
+
+ ## These are duplicated from the basic `x448' set, as a simple smoke test.
+ 0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 1 3f482c8a9f19b01e6c46ee9711d9dc14fd4bf67af30765c2ae2b846a4d23a8cd0db897086239492caf350b51f833868b9bc2b3bca9cf4113;
+ 3f482c8a9f19b01e6c46ee9711d9dc14fd4bf67af30765c2ae2b846a4d23a8cd0db897086239492caf350b51f833868b9bc2b3bca9cf4113
+ 0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ 9 bd0db3e1f95046adf463ea8a534f7303f62779be48e8fcabd3c41769decc2a5e387897a873086c757181a90449e51d8ef20205b158a332c2;
+ bd0db3e1f95046adf463ea8a534f7303f62779be48e8fcabd3c41769decc2a5e387897a873086c757181a90449e51d8ef20205b158a332c2
+ 3845e129a24aeffdeaaa89b53e69c7482a1bc7b8e0168aaa96d91ec6b2de20134c2224dde4afe2e763eb13b578cf0616c12f3a4eebd57353
+ 90 cca03d8ed3f54baf8d1aa088b1f24bc68aed538d06485f025f17a5431ded28f256d34f6bdd3d63cc5e047c458e81385519a92999bddc2653;
+ cca03d8ed3f54baf8d1aa088b1f24bc68aed538d06485f025f17a5431ded28f256d34f6bdd3d63cc5e047c458e81385519a92999bddc2653
+ c7e0040d8646ccdf1b6e376fd828276586348c6176f8a7acd90f5a3cc4ee0407f95cb43e0dbd3fc368163f03d51d79d4a5e79797757c6760
+ 900 aa3b4749d55b9daf1e5b00288826c467274ce3ebbdd5c17b975e09d4af6c67cf10d087202db88286e2b79fceea3ec353ef54faa26e219f38;
+
+ ## And the ones which take a long time...
+ aa3b4749d55b9daf1e5b00288826c467274ce3ebbdd5c17b975e09d4af6c67cf10d087202db88286e2b79fceea3ec353ef54faa26e219f38
+ 11f1326fb3e434b8f7f5abc6882697b39188cbc91a990c2c7a9ec41ade3def4f2d1e3d4afa53f6ea7538768fbe0077080fe1b6a4242b2984
+ 9000 d8d36c7e154fdd4bd2733f1f6038891928a94c8f9f8dd6a1d02bcfe027e320c5f2008f7b4c37b3aff357ec7dd884c2d43681f1ae73675c11;
+ d8d36c7e154fdd4bd2733f1f6038891928a94c8f9f8dd6a1d02bcfe027e320c5f2008f7b4c37b3aff357ec7dd884c2d43681f1ae73675c11
+ caeca6a3af262b7d123a6d85344f0901e34a0ed1ec0b653b59eda0d4917702a7f035a896e253ba6f71812404d20d80b2c99397a329381e12
+ 90000 48dc17eba89de7b6f0d60cdc50034fb5cd0285a7638f9597806b0016de4110cbd658401c428835794b3d64c4bd074274b0a5bd43e1e1d1fa;
+ 48dc17eba89de7b6f0d60cdc50034fb5cd0285a7638f9597806b0016de4110cbd658401c428835794b3d64c4bd074274b0a5bd43e1e1d1fa
+ 22fb490e3ab738c9e6a89d99fa9ef438b952446a3db90874e08c7c64e67642a2d9a359d2b6eefb5ea7553d52a03e8cf078d34d2cc972e6df
+ 900000 077f453681caca3693198420bbe515cae0002472519b3e67661a7e89cab94695c8f4bcd66e61b9b9c946da8d524de3d69bd9d9d66b997e37;
+}