aboutsummaryrefslogtreecommitdiffstats
path: root/include/crypto/sha.h
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2019-09-01 22:35:31 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2019-09-05 14:54:54 +1000
commit34d6245fbc81e764806a65fceaeb3ab3274a1e63 (patch)
treeec464144e0cea02d4d998e6d07777fcf78fa63d9 /include/crypto/sha.h
parentcrypto: n2 - Rename arrays to avoid conflict with crypto/sha256.h (diff)
downloadlinux-dev-34d6245fbc81e764806a65fceaeb3ab3274a1e63.tar.xz
linux-dev-34d6245fbc81e764806a65fceaeb3ab3274a1e63.zip
crypto: sha256 - Merge crypto/sha256.h into crypto/sha.h
The generic sha256 implementation from lib/crypto/sha256.c uses data structs defined in crypto/sha.h, so lets move the function prototypes there too. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--include/crypto/sha.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/crypto/sha.h b/include/crypto/sha.h
index 8a46202b1857..535955c84187 100644
--- a/include/crypto/sha.h
+++ b/include/crypto/sha.h
@@ -112,4 +112,25 @@ extern int crypto_sha512_update(struct shash_desc *desc, const u8 *data,
extern int crypto_sha512_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *hash);
+
+/*
+ * Stand-alone implementation of the SHA256 algorithm. It is designed to
+ * have as little dependencies as possible so it can be used in the
+ * kexec_file purgatory. In other cases you should generally use the
+ * hash APIs from include/crypto/hash.h. Especially when hashing large
+ * amounts of data as those APIs may be hw-accelerated.
+ *
+ * For details see lib/crypto/sha256.c
+ */
+
+extern int sha256_init(struct sha256_state *sctx);
+extern int sha256_update(struct sha256_state *sctx, const u8 *input,
+ unsigned int length);
+extern int sha256_final(struct sha256_state *sctx, u8 *hash);
+
+extern int sha224_init(struct sha256_state *sctx);
+extern int sha224_update(struct sha256_state *sctx, const u8 *input,
+ unsigned int length);
+extern int sha224_final(struct sha256_state *sctx, u8 *hash);
+
#endif