From: Mark Wooding Date: Thu, 19 Oct 2017 18:35:23 +0000 (+0100) Subject: pub/t/x*: Rearrange the Monte-Carlo tests. X-Git-Tag: 2.4.2~17 X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/commitdiff_plain/1e4c26653e52aa4c4b06e345617135a6ff271ab5 pub/t/x*: Rearrange the Monte-Carlo tests. * 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. --- diff --git a/pub/Makefile.am b/pub/Makefile.am index e21355e4..fdab2d7a 100644 --- a/pub/Makefile.am +++ b/pub/Makefile.am @@ -102,7 +102,7 @@ EXTRA_DIST += t/rsa 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 @@ -126,7 +126,7 @@ t/ed25519: ed25519-tvconv t/ed25519.djb t/ed25519.local 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 diff --git a/pub/t/x25519 b/pub/t/x25519 index b80521d1..456dfed3 100644 --- a/pub/t/x25519 +++ b/pub/t/x25519 @@ -40,12 +40,13 @@ x25519-mct { 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; } diff --git a/pub/t/x25519.slow b/pub/t/x25519.slow new file mode 100644 index 00000000..2f9710f6 --- /dev/null +++ b/pub/t/x25519.slow @@ -0,0 +1,30 @@ +### 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; +} diff --git a/pub/t/x448 b/pub/t/x448 index 3f0a4f7f..c9400395 100644 --- a/pub/t/x448 +++ b/pub/t/x448 @@ -30,12 +30,13 @@ x448-mct { 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; } diff --git a/pub/t/x448.slow b/pub/t/x448.slow new file mode 100644 index 00000000..da06f883 --- /dev/null +++ b/pub/t/x448.slow @@ -0,0 +1,30 @@ +### 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; +}