[openssl-commits] [openssl] master update

Matt Caswell matt at openssl.org
Wed Apr 12 10:53:48 UTC 2017


The branch master has been updated
       via  bea4ac2b2e6499e1f0844c9dbacd670955d94ccb (commit)
      from  c983bc4fb2a501df36b95da160ef9002c15cb8fe (commit)


- Log -----------------------------------------------------------------
commit bea4ac2b2e6499e1f0844c9dbacd670955d94ccb
Author: Pauli <paul.dale at oracle.com>
Date:   Wed Apr 12 13:45:02 2017 +1000

    Update the internal chacha test to use the framework
    Reviewed-by: Richard Levitte <levitte at openssl.org>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/3195)

-----------------------------------------------------------------------

Summary of changes:
 test/build.info             |  2 +-
 test/chacha_internal_test.c | 49 ++++++++++++++++++++++-----------------------
 2 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/test/build.info b/test/build.info
index 658509f..85977b1 100644
--- a/test/build.info
+++ b/test/build.info
@@ -358,7 +358,7 @@ IF[{- !$disabled{tests} -}]
     INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include
     DEPEND[poly1305_internal_test]=../libcrypto.a
 
-    SOURCE[chacha_internal_test]=chacha_internal_test.c
+    SOURCE[chacha_internal_test]=chacha_internal_test.c testutil.c test_main.c
     INCLUDE[chacha_internal_test]=.. ../include ../crypto/include
     DEPEND[chacha_internal_test]=../libcrypto.a
 
diff --git a/test/chacha_internal_test.c b/test/chacha_internal_test.c
index 9b2f361..0c0be9b 100644
--- a/test/chacha_internal_test.c
+++ b/test/chacha_internal_test.c
@@ -12,10 +12,10 @@
  * complete 32-byte blocks. This test goes per byte...
  */
 
-#include <stdio.h>
 #include <string.h>
-
 #include <openssl/opensslconf.h>
+#include "test_main.h"
+#include "testutil.h"
 #include "internal/chacha.h"
 
 const static unsigned int key[] = {
@@ -158,34 +158,33 @@ const static unsigned char ref[] = {
     0xd3, 0x3e, 0xa2, 0x15, 0x5d, 0x10, 0x5d, 0x4e
 };
 
-int main(void)
+static int test_cha_cha_internal(int n)
 {
     unsigned char buf[sizeof(ref)];
-    unsigned int i,j;
-    int ret = 0;
-
-#ifdef CPUID_OBJ
-    OPENSSL_cpuid_setup();
-#endif
+    unsigned int i = n + 1, j;
 
-    for (i = 1; i <= sizeof(ref); i++) {
-        memset(buf, 0, i);
-        memcpy(buf + i, ref + i, sizeof(ref) - i);
+    memset(buf, 0, i);
+    memcpy(buf + i, ref + i, sizeof(ref) - i);
 
-        ChaCha20_ctr32(buf, buf, i, key, ivp);
+    ChaCha20_ctr32(buf, buf, i, key, ivp);
 
-        /*
-         * Idea behind checking for whole sizeof(ref) is that if
-         * ChaCha20_ctr32 oversteps i-th byte, then we'd know
-         */
-        for (j = 0; j < sizeof(ref); j++) {
-            if (buf[j] != ref[j]) {
-                fprintf(stderr, "%u failed at %u (%02x)\n", i, j, buf[j]);
-                ret = 1;
-                break;
-            }
+    /*
+     * Idea behind checking for whole sizeof(ref) is that if
+     * ChaCha20_ctr32 oversteps i-th byte, then we'd know
+     */
+    for (j = 0; j < sizeof(ref); j++)
+        if (!TEST_uchar_eq(buf[j], ref[j])) {
+            TEST_info("%d failed at %u (%02x)\n", i, j, buf[j]);
+            return 0;
         }
-    }
+    return 1;
+}
+
+void register_tests(void)
+{
+#ifdef CPUID_OBJ
+    OPENSSL_cpuid_setup();
+#endif
 
-    return ret;
+    ADD_ALL_TESTS(test_cha_cha_internal, sizeof(ref));
 }


More information about the openssl-commits mailing list