aboutsummaryrefslogtreecommitdiffstats
path: root/include/crypto/internal/blake2s.h
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-11-08 13:22:28 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2019-11-17 09:02:42 +0800
commit66d7fb94e4ffe5acc589e0b2b4710aecc1f07a28 (patch)
tree847e0581e3048df9a062f831f1a1065675de1940 /include/crypto/internal/blake2s.h
parentint128: move __uint128_t compiler test to Kconfig (diff)
downloadlinux-dev-66d7fb94e4ffe5acc589e0b2b4710aecc1f07a28.tar.xz
linux-dev-66d7fb94e4ffe5acc589e0b2b4710aecc1f07a28.zip
crypto: blake2s - generic C library implementation and selftest
The C implementation was originally based on Samuel Neves' public domain reference implementation but has since been heavily modified for the kernel. We're able to do compile-time optimizations by moving some scaffolding around the final function into the header file. Information: https://blake2.net/ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Samuel Neves <sneves@dei.uc.pt> Co-developed-by: Samuel Neves <sneves@dei.uc.pt> [ardb: - move from lib/zinc to lib/crypto - remove simd handling - rewrote selftest for better coverage - use fixed digest length for blake2s_hmac() and rename to blake2s256_hmac() ] Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--include/crypto/internal/blake2s.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/crypto/internal/blake2s.h b/include/crypto/internal/blake2s.h
new file mode 100644
index 000000000000..941693effc7d
--- /dev/null
+++ b/include/crypto/internal/blake2s.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 OR MIT */
+
+#ifndef BLAKE2S_INTERNAL_H
+#define BLAKE2S_INTERNAL_H
+
+#include <crypto/blake2s.h>
+
+void blake2s_compress_generic(struct blake2s_state *state,const u8 *block,
+ size_t nblocks, const u32 inc);
+
+void blake2s_compress_arch(struct blake2s_state *state,const u8 *block,
+ size_t nblocks, const u32 inc);
+
+static inline void blake2s_set_lastblock(struct blake2s_state *state)
+{
+ state->f[0] = -1;
+}
+
+#endif /* BLAKE2S_INTERNAL_H */