From 517b9f77086d38cb1409194576cab40fb3f714d5 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 19 Sep 2021 01:37:51 +0200 Subject: sha1-buffer tests: New module. * tests/test-sha1-buffer.c: New file, based on tests/test-sha1.c. * tests/test-sha1-stream.c: Renamed from tests/test-sha1.c. (main): Remove sha1-buffer tests. * modules/crypto/sha1-buffer-tests: New file, based on modules/crypto/sha1-tests. * modules/crypto/sha1-tests: Remove tests that are now in modules/crypto/sha1-buffer-tests. Test tests/test-sha1-stream.c instead of tests/test-sha1.c. --- ChangeLog | 10 +++++++ modules/crypto/sha1-buffer-tests | 18 ++++++++++++ modules/crypto/sha1-tests | 14 +++------ tests/test-sha1-buffer.c | 48 +++++++++++++++++++++++++++++++ tests/test-sha1-stream.c | 42 +++++++++++++++++++++++++++ tests/test-sha1.c | 61 ---------------------------------------- 6 files changed, 122 insertions(+), 71 deletions(-) create mode 100644 modules/crypto/sha1-buffer-tests create mode 100644 tests/test-sha1-buffer.c create mode 100644 tests/test-sha1-stream.c delete mode 100644 tests/test-sha1.c diff --git a/ChangeLog b/ChangeLog index f9d246b031..7f84685546 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2021-09-18 Bruno Haible + sha1-buffer tests: New module. + * tests/test-sha1-buffer.c: New file, based on tests/test-sha1.c. + * tests/test-sha1-stream.c: Renamed from tests/test-sha1.c. + (main): Remove sha1-buffer tests. + * modules/crypto/sha1-buffer-tests: New file, based on + modules/crypto/sha1-tests. + * modules/crypto/sha1-tests: Remove tests that are now in + modules/crypto/sha1-buffer-tests. Test tests/test-sha1-stream.c instead + of tests/test-sha1.c. + sha1: Clarify module to source relation. * lib/sha1-stream.c: New file, extracted from lib/sha1.c. * lib/sha1.c: Don't include stdlib.h, unlocked-io.h. diff --git a/modules/crypto/sha1-buffer-tests b/modules/crypto/sha1-buffer-tests new file mode 100644 index 0000000000..7420378c82 --- /dev/null +++ b/modules/crypto/sha1-buffer-tests @@ -0,0 +1,18 @@ +Files: +tests/test-sha1-buffer.c +tests/bench-sha1.c +tests/bench-digest.h + +Depends-on: +c99 +getrusage +gettimeofday + +configure.ac: + +Makefile.am: +TESTS += test-sha1-buffer +check_PROGRAMS += test-sha1-buffer +noinst_PROGRAMS += bench-sha1 +test_sha1_buffer_LDADD = $(LDADD) @LIB_CRYPTO@ +bench_sha1_LDADD = $(LDADD) @LIB_CRYPTO@ diff --git a/modules/crypto/sha1-tests b/modules/crypto/sha1-tests index 366e4aade7..b774ffcee5 100644 --- a/modules/crypto/sha1-tests +++ b/modules/crypto/sha1-tests @@ -1,20 +1,14 @@ Files: -tests/test-sha1.c +tests/test-sha1-stream.c tests/test-digest.h -tests/bench-sha1.c -tests/bench-digest.h tests/macros.h Depends-on: c99 -getrusage -gettimeofday configure.ac: Makefile.am: -TESTS += test-sha1 -check_PROGRAMS += test-sha1 -noinst_PROGRAMS += bench-sha1 -test_sha1_LDADD = $(LDADD) @LIB_CRYPTO@ -bench_sha1_LDADD = $(LDADD) @LIB_CRYPTO@ +TESTS += test-sha1-stream +check_PROGRAMS += test-sha1-stream +test_sha1_stream_LDADD = $(LDADD) @LIB_CRYPTO@ diff --git a/tests/test-sha1-buffer.c b/tests/test-sha1-buffer.c new file mode 100644 index 0000000000..e5f1f08e08 --- /dev/null +++ b/tests/test-sha1-buffer.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2005, 2008-2021 Free Software Foundation, Inc. + * Written by Simon Josefsson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + +#include + +#include "sha1.h" + +#include +#include + +int +main (void) +{ + const char *in1 = "abcdefgh"; + const char *out1 = "\x42\x5a\xf1\x2a\x07\x43\x50\x2b" + "\x32\x2e\x93\xa0\x15\xbc\xf8\x68\xe3\x24\xd5\x6a"; + char buf[SHA1_DIGEST_SIZE]; + + if (memcmp (sha1_buffer (in1, strlen (in1), buf), + out1, SHA1_DIGEST_SIZE) != 0) + { + size_t i; + printf ("expected:\n"); + for (i = 0; i < SHA1_DIGEST_SIZE; i++) + printf ("%02x ", out1[i] & 0xFFu); + printf ("\ncomputed:\n"); + for (i = 0; i < SHA1_DIGEST_SIZE; i++) + printf ("%02x ", buf[i] & 0xFFu); + printf ("\n"); + return 1; + } + + return 0; +} diff --git a/tests/test-sha1-stream.c b/tests/test-sha1-stream.c new file mode 100644 index 0000000000..00ec9f080e --- /dev/null +++ b/tests/test-sha1-stream.c @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2005, 2008-2021 Free Software Foundation, Inc. + * Written by Simon Josefsson + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + +#include + +#include "sha1.h" + +#include +#include +#include +#include + +#include "macros.h" + +#define TESTFILE "test-sha1.data" +#include "test-digest.h" + +int +main (void) +{ + /* Test sha1_stream. */ + test_digest_on_files (sha1_stream, "sha1_stream", 20, + "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90\xaf\xd8\x07\x09", + "\x9c\x04\xcd\x63\x72\x07\x7e\x9b\x11\xf7\x0c\xa1\x11\xc9\x80\x7d\xc7\x13\x7e\x4b", + "\x91\xab\x6b\x1b\x8d\x29\x25\x3c\xcb\x8d\xce\xb7\x7a\x25\x26\x2c\x92\xc9\x22\x09"); + + return 0; +} diff --git a/tests/test-sha1.c b/tests/test-sha1.c deleted file mode 100644 index ed1949a237..0000000000 --- a/tests/test-sha1.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2005, 2008-2021 Free Software Foundation, Inc. - * Written by Simon Josefsson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . */ - -#include - -#include "sha1.h" - -#include -#include -#include -#include - -#include "macros.h" - -#define TESTFILE "test-sha1.data" -#include "test-digest.h" - -int -main (void) -{ - const char *in1 = "abcdefgh"; - const char *out1 = "\x42\x5a\xf1\x2a\x07\x43\x50\x2b" - "\x32\x2e\x93\xa0\x15\xbc\xf8\x68\xe3\x24\xd5\x6a"; - char buf[SHA1_DIGEST_SIZE]; - - if (memcmp (sha1_buffer (in1, strlen (in1), buf), - out1, SHA1_DIGEST_SIZE) != 0) - { - size_t i; - printf ("expected:\n"); - for (i = 0; i < SHA1_DIGEST_SIZE; i++) - printf ("%02x ", out1[i] & 0xFFu); - printf ("\ncomputed:\n"); - for (i = 0; i < SHA1_DIGEST_SIZE; i++) - printf ("%02x ", buf[i] & 0xFFu); - printf ("\n"); - return 1; - } - - /* Test sha1_stream. */ - test_digest_on_files (sha1_stream, "sha1_stream", 20, - "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90\xaf\xd8\x07\x09", - "\x9c\x04\xcd\x63\x72\x07\x7e\x9b\x11\xf7\x0c\xa1\x11\xc9\x80\x7d\xc7\x13\x7e\x4b", - "\x91\xab\x6b\x1b\x8d\x29\x25\x3c\xcb\x8d\xce\xb7\x7a\x25\x26\x2c\x92\xc9\x22\x09"); - - return 0; -} -- cgit v1.2.1