pub/t/x*: Rearrange the Monte-Carlo tests.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 19 Oct 2017 18:35:23 +0000 (19:35 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 19 Oct 2017 18:35:23 +0000 (19:35 +0100)
  * 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.

pub/Makefile.am
pub/t/x25519
pub/t/x25519.slow [new file with mode: 0644]
pub/t/x448
pub/t/x448.slow [new file with mode: 0644]

index e21355e..fdab2d7 100644 (file)
@@ -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
index b80521d..456dfed 100644 (file)
@@ -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 (file)
index 0000000..2f9710f
--- /dev/null
@@ -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;
+}
index 3f0a4f7..c940039 100644 (file)
@@ -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 (file)
index 0000000..da06f88
--- /dev/null
@@ -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;
+}