From: Bruno Haible Date: Sat, 17 May 2025 12:16:01 +0000 (+0200) Subject: crypto/sha256-buffer: Add some tests. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6dec260c7d677992b441a205441a3cd2d739a232;p=thirdparty%2Fgnulib.git crypto/sha256-buffer: Add some tests. * tests/test-sha224-buffer.c: New file, based on tests/test-sha1-buffer.c. * tests/test-sha256-buffer.c: New file, based on tests/test-sha1-buffer.c. * modules/crypto/sha256-buffer-tests (Files): Add them. (Makefile.am): Compile and test test-sha224-buffer, test-sha256-buffer. --- diff --git a/ChangeLog b/ChangeLog index a1937a6772..21ca1b4a63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2025-05-17 Bruno Haible + + crypto/sha256-buffer: Add some tests. + * tests/test-sha224-buffer.c: New file, based on + tests/test-sha1-buffer.c. + * tests/test-sha256-buffer.c: New file, based on + tests/test-sha1-buffer.c. + * modules/crypto/sha256-buffer-tests (Files): Add them. + (Makefile.am): Compile and test test-sha224-buffer, test-sha256-buffer. + 2025-05-17 Bruno Haible next-prime tests: Add more tests. diff --git a/modules/crypto/sha256-buffer-tests b/modules/crypto/sha256-buffer-tests index cf93a8f5fe..1fae2f412e 100644 --- a/modules/crypto/sha256-buffer-tests +++ b/modules/crypto/sha256-buffer-tests @@ -1,4 +1,6 @@ Files: +tests/test-sha224-buffer.c +tests/test-sha256-buffer.c tests/bench-sha224.c tests/bench-sha256.c tests/bench-digest.h @@ -12,7 +14,11 @@ gettimeofday configure.ac: Makefile.am: +TESTS += test-sha224-buffer test-sha256-buffer +check_PROGRAMS += test-sha224-buffer test-sha256-buffer noinst_PROGRAMS += bench-sha224 bench-sha256 +test_sha224_buffer_LDADD = $(LDADD) @LIB_CRYPTO@ +test_sha256_buffer_LDADD = $(LDADD) @LIB_CRYPTO@ bench_sha224_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG bench_sha224_LDADD = $(LDADD) @LIB_CRYPTO@ bench_sha256_CPPFLAGS = $(AM_CPPFLAGS) -DNDEBUG diff --git a/tests/test-sha224-buffer.c b/tests/test-sha224-buffer.c new file mode 100644 index 0000000000..97e888e80c --- /dev/null +++ b/tests/test-sha224-buffer.c @@ -0,0 +1,51 @@ +/* Test of sha224_buffer() function. + Copyright (C) 2005-2025 Free Software Foundation, Inc. + + 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 + +/* Specification. */ +#include "sha256.h" + +#include +#include + +int +main (void) +{ + const char *in1 = + "Prejmer has 8647 inhabitants.\n" + "\n"; + const char *out1 = + "\x8a\x7d\x25\x22\x11\x13\x61\x35\x7a\x61\x6e\x4a\xf5\xbd\x0a\x17" + "\x5b\xdf\x7e\x27\xa1\xb7\x00\xf4\x62\x89\x41\x84"; + char buf[SHA224_DIGEST_SIZE]; + + if (memcmp (sha224_buffer (in1, strlen (in1), buf), + out1, SHA224_DIGEST_SIZE) != 0) + { + size_t i; + printf ("expected:\n"); + for (i = 0; i < SHA224_DIGEST_SIZE; i++) + printf ("%02x ", out1[i] & 0xFFu); + printf ("\ncomputed:\n"); + for (i = 0; i < SHA224_DIGEST_SIZE; i++) + printf ("%02x ", buf[i] & 0xFFu); + printf ("\n"); + return 1; + } + + return 0; +} diff --git a/tests/test-sha256-buffer.c b/tests/test-sha256-buffer.c new file mode 100644 index 0000000000..08fb841c6a --- /dev/null +++ b/tests/test-sha256-buffer.c @@ -0,0 +1,51 @@ +/* Test of sha256_buffer() function. + Copyright (C) 2005-2025 Free Software Foundation, Inc. + + 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 + +/* Specification. */ +#include "sha256.h" + +#include +#include + +int +main (void) +{ + const char *in1 = + "Prejmer has 8647 inhabitants.\n" + "\n"; + const char *out1 = + "\xd1\x27\xec\x93\xdd\x7f\x60\xaa\x72\x51\x51\x40\xd0\xe2\x5e\xc7" + "\x89\xaf\xfa\x91\x9c\x8a\x85\xb7\x19\x8d\x8b\x15\xaf\xa3\x4b\x2c"; + char buf[SHA256_DIGEST_SIZE]; + + if (memcmp (sha256_buffer (in1, strlen (in1), buf), + out1, SHA256_DIGEST_SIZE) != 0) + { + size_t i; + printf ("expected:\n"); + for (i = 0; i < SHA256_DIGEST_SIZE; i++) + printf ("%02x ", out1[i] & 0xFFu); + printf ("\ncomputed:\n"); + for (i = 0; i < SHA256_DIGEST_SIZE; i++) + printf ("%02x ", buf[i] & 0xFFu); + printf ("\n"); + return 1; + } + + return 0; +}