@@ -97,7 +97,7 @@ static int hash_finish_sha256(struct hash_algo *algo, void *ctx, void
}
#endif
-#if defined(CONFIG_SHA384) && !defined(CONFIG_SHA_PROG_HW_ACCEL)
+#if defined(CONFIG_SHA384)
static int hash_init_sha384(struct hash_algo *algo, void **ctxp)
{
sha512_context *ctx = malloc(sizeof(sha512_context));
@@ -125,7 +125,7 @@ static int hash_finish_sha384(struct hash_algo *algo, void *ctx, void
}
#endif
-#if defined(CONFIG_SHA512) && !defined(CONFIG_SHA_PROG_HW_ACCEL)
+#if defined(CONFIG_SHA512)
static int hash_init_sha512(struct hash_algo *algo, void **ctxp)
{
sha512_context *ctx = malloc(sizeof(sha512_context));
@@ -260,20 +260,10 @@ static struct hash_algo hash_algo[] = {
.name = "sha384",
.digest_size = SHA384_SUM_LEN,
.chunk_size = CHUNKSZ_SHA384,
-#ifdef CONFIG_SHA_HW_ACCEL
- .hash_func_ws = hw_sha384,
-#else
.hash_func_ws = sha384_csum_wd,
-#endif
-#ifdef CONFIG_SHA_PROG_HW_ACCEL
- .hash_init = hw_sha_init,
- .hash_update = hw_sha_update,
- .hash_finish = hw_sha_finish,
-#else
.hash_init = hash_init_sha384,
.hash_update = hash_update_sha384,
.hash_finish = hash_finish_sha384,
-#endif
},
#endif
#ifdef CONFIG_SHA512
@@ -281,20 +271,10 @@ static struct hash_algo hash_algo[] = {
.name = "sha512",
.digest_size = SHA512_SUM_LEN,
.chunk_size = CHUNKSZ_SHA512,
-#ifdef CONFIG_SHA_HW_ACCEL
- .hash_func_ws = hw_sha512,
-#else
.hash_func_ws = sha512_csum_wd,
-#endif
-#ifdef CONFIG_SHA_PROG_HW_ACCEL
- .hash_init = hw_sha_init,
- .hash_update = hw_sha_update,
- .hash_finish = hw_sha_finish,
-#else
.hash_init = hash_init_sha512,
.hash_update = hash_update_sha512,
.hash_finish = hash_finish_sha512,
-#endif
},
#endif
{
@@ -8,32 +8,6 @@
#define __HW_SHA_H
#include <hash.h>
-/**
- * Computes hash value of input pbuf using h/w acceleration
- *
- * @param in_addr A pointer to the input buffer
- * @param bufleni Byte length of input buffer
- * @param out_addr A pointer to the output buffer. When complete
- * 64 bytes are copied to pout[0]...pout[63]. Thus, a user
- * should allocate at least 64 bytes at pOut in advance.
- * @param chunk_size chunk size for sha512
- */
-void hw_sha512(const uchar *in_addr, uint buflen, uchar *out_addr,
- uint chunk_size);
-
-/**
- * Computes hash value of input pbuf using h/w acceleration
- *
- * @param in_addr A pointer to the input buffer
- * @param bufleni Byte length of input buffer
- * @param out_addr A pointer to the output buffer. When complete
- * 48 bytes are copied to pout[0]...pout[47]. Thus, a user
- * should allocate at least 48 bytes at pOut in advance.
- * @param chunk_size chunk size for sha384
- */
-void hw_sha384(const uchar *in_addr, uint buflen, uchar *out_addr,
- uint chunk_size);
-
/**
* Computes hash value of input pbuf using h/w acceleration
*
@@ -391,18 +391,19 @@ config SHA384
config SHA_HW_ACCEL
bool "Enable hashing using hardware"
help
- This option enables hardware acceleration for SHA hashing.
- This affects the 'hash' command and also the hash_lookup_algo()
- function.
+ This option enables hardware acceleration
+ for SHA1/SHA256 hashing.
+ This affects the 'hash' command and also the
+ hash_lookup_algo() function.
config SHA_PROG_HW_ACCEL
bool "Enable Progressive hashing support using hardware"
depends on SHA_HW_ACCEL
help
- This option enables hardware-acceleration for SHA progressive
- hashing.
- Data can be streamed in a block at a time and the hashing is
- performed in hardware.
+ This option enables hardware-acceleration for
+ SHA1/SHA256 progressive hashing.
+ Data can be streamed in a block at a time and the hashing
+ is performed in hardware.
config MD5
bool "Support MD5 algorithm"
We don't have a hardware implementation of SHA384 and SHA512 for any board. We don't expect to ever have a hardware implementation for ALL boards that have a hardware implementation for SHA1 and SHA512. So we cannot use CONFIG_SHA_HW_ACCEL to switch SHA384 and SHA512 to the hardware functions. As the commit a479f103dc1c ("hash: Allow for SHA512 hardware implementations") leads to failure to compile peach-pi_defconfig board with the EFI TCG2 protocol revert the patch. Fixes: a479f103dc1c ("hash: Allow for SHA512 hardware implementations") Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> --- common/hash.c | 24 ++---------------------- include/hw_sha.h | 26 -------------------------- lib/Kconfig | 15 ++++++++------- 3 files changed, 10 insertions(+), 55 deletions(-) -- 2.30.2