summaryrefslogtreecommitdiff
path: root/cipher
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2021-03-23 00:06:37 +0200
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2021-04-26 22:41:51 +0300
commite866c01e645d35475614d892665ac1c09513156d (patch)
treea83f23796b0ce9875fc061d696b567a71897df89 /cipher
parenteb96baf28473302b3d78187de92eb10093919f18 (diff)
downloadlibgcrypt-e866c01e645d35475614d892665ac1c09513156d.tar.gz
keccak: add hash_buffers functions for SHAKE128 & SHAKE256
* cipher/keccak.c (_gcry_shake128_hash_buffers) (_gcry_shake256_hash_buffers): New. (_gcry_digest_spec_shake128, _gcry_digest_spec_shake256): Add hash_buffers pointer. -- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher')
-rw-r--r--cipher/keccak.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/cipher/keccak.c b/cipher/keccak.c
index 00593bdb..c03a1fac 100644
--- a/cipher/keccak.c
+++ b/cipher/keccak.c
@@ -1271,6 +1271,22 @@ _gcry_sha3_512_hash_buffers (void *outbuf, size_t nbytes,
&_gcry_digest_spec_sha3_512);
}
+static void
+_gcry_shake128_hash_buffers (void *outbuf, size_t nbytes,
+ const gcry_buffer_t *iov, int iovcnt)
+{
+ _gcry_sha3_hash_buffers (outbuf, nbytes, iov, iovcnt,
+ &_gcry_digest_spec_shake128);
+}
+
+static void
+_gcry_shake256_hash_buffers (void *outbuf, size_t nbytes,
+ const gcry_buffer_t *iov, int iovcnt)
+{
+ _gcry_sha3_hash_buffers (outbuf, nbytes, iov, iovcnt,
+ &_gcry_digest_spec_shake256);
+}
+
/*
Self-test section.
@@ -1530,7 +1546,7 @@ gcry_md_spec_t _gcry_digest_spec_shake128 =
GCRY_MD_SHAKE128, {0, 1},
"SHAKE128", shake128_asn, DIM (shake128_asn), oid_spec_shake128, 0,
shake128_init, keccak_write, keccak_final, NULL, keccak_extract,
- NULL,
+ _gcry_shake128_hash_buffers,
sizeof (KECCAK_CONTEXT),
run_selftests
};
@@ -1539,7 +1555,7 @@ gcry_md_spec_t _gcry_digest_spec_shake256 =
GCRY_MD_SHAKE256, {0, 1},
"SHAKE256", shake256_asn, DIM (shake256_asn), oid_spec_shake256, 0,
shake256_init, keccak_write, keccak_final, NULL, keccak_extract,
- NULL,
+ _gcry_shake256_hash_buffers,
sizeof (KECCAK_CONTEXT),
run_selftests
};