summaryrefslogtreecommitdiff
path: root/cipher/hash-common.h
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2013-09-21 13:54:38 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2013-09-21 13:54:38 +0300
commit592c2ab3deeeccbb6d3b078ed7bf0e6627c8e1fb (patch)
tree067ff9ba60af04b9570da3f54c3ff6c992650a90 /cipher/hash-common.h
parent902ea6052c11108bd19333c31b03e084bed1fb86 (diff)
downloadlibgcrypt-592c2ab3deeeccbb6d3b078ed7bf0e6627c8e1fb.tar.gz
Use hash transform function return type for passing burn stack depth
* cipher/gostr4311-94.c (transform): Return stack burn depth. * cipher/hash-common.c (_gcry_md_block_write): Use stack burn depth returned by 'hd->bwrite'. * cipher/hash-common.h (_gcry_md_block_write_t): Change return type to 'unsigned int'. (gry_md_block_ctx_t): Remove 'stack_burn'. * cipher/md4.c (transform): Return stack burn depth. (md4_final): Use stack burn depth from transform. * cipher/md5.c (transform): Return stack burn depth. (md5_final): Use stack burn depth from transform. * cipher/rmd160.c (transform): Return stack burn depth. (rmd160_final): Use stack burn depth from transform. * cipher/sha1.c (transform): Return stack burn depth. (sha1_final): Use stack burn depth from transform. * cipher/sha256.c (transform): Return stack burn depth. (sha256_final): Use stack burn depth from transform. * cipher/sha512.c (__transform, transform): Return stack burn depth. (sha512_final): Use stack burn depth from transform. * cipher/stribog.c (transform64): Return stack burn depth. * cipher/tiger.c (transform): Return stack burn depth. (tiger_final): Use stack burn depth from transform. -- Transform function might want different depth of stack burn depending on detected CPU features (like in SHA-512 on ARM with NEON). So return stack burn depth from transform functions as a request or a hint to calling function. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher/hash-common.h')
-rw-r--r--cipher/hash-common.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/cipher/hash-common.h b/cipher/hash-common.h
index 4dd54411..3caf0a78 100644
--- a/cipher/hash-common.h
+++ b/cipher/hash-common.h
@@ -29,7 +29,8 @@ const char * _gcry_hash_selftest_check_one
const void *expect, size_t expectlen);
/* Type for the md_write helper function. */
-typedef void (*_gcry_md_block_write_t) (void *c, const unsigned char *buf);
+typedef unsigned int (*_gcry_md_block_write_t) (void *c,
+ const unsigned char *buf);
#if defined(HAVE_U64_TYPEDEF) && defined(USE_SHA512)
/* SHA-512 needs u64 and larger buffer. */
@@ -47,7 +48,6 @@ typedef struct gcry_md_block_ctx
int count;
size_t blocksize;
_gcry_md_block_write_t bwrite;
- size_t stack_burn;
} gcry_md_block_ctx_t;