summaryrefslogtreecommitdiff
path: root/tests/benchmark.c
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2016-03-24 00:04:53 +0100
committerPeter Wu <peter@lekensteyn.nl>2016-03-24 13:35:34 +0100
commit49ec33eb18d7c86e3cf2ce56ffef7aaf60de8c0d (patch)
treefc1c060ccf91f08aeacd2b4ead5ce22ca377dcfd /tests/benchmark.c
parent3269496e11eb08a4847d8c11f4a6a8b421cf5ad6 (diff)
downloadlibgcrypt-49ec33eb18d7c86e3cf2ce56ffef7aaf60de8c0d.tar.gz
Disallow XOF algorithms for gcry_md_hash_bufferssanitizer-fixes
* cipher/md.c (_gcry_md_hash_buffer): Skip calculation for XOFs. (_gcry_md_hash_buffers): Fail when XOFs are selected. * doc/gcrypt.texi: Explicitly document above behavior for XOFs. * tests/benchmark.c: Skip benchmarking hash functions without a fixed output length. -- Caught by UndefinedBehaviorSanitizer while running tests/benchmarks where gcry_md_hash_buffer(GCRY_MD_SHAKE128) would result in memcpy(digest, NULL, 0). Signed-off-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'tests/benchmark.c')
-rw-r--r--tests/benchmark.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/tests/benchmark.c b/tests/benchmark.c
index 53b83b1b..5f94cc89 100644
--- a/tests/benchmark.c
+++ b/tests/benchmark.c
@@ -499,6 +499,8 @@ md_bench ( const char *algoname )
for (i=1; i < 400; i++)
if (in_fips_mode && i == GCRY_MD_MD5)
; /* Don't use MD5 in fips mode. */
+ else if (gcry_md_get_algo_dlen (i) == 0)
+ ; /* Skip hash functions without a fixed output length. */
else if ( !gcry_md_test_algo (i) )
md_bench (gcry_md_algo_name (i));
return;