Commit 41abed7d authored by Pascal van Leeuwen's avatar Pascal van Leeuwen Committed by Herbert Xu

crypto: inside-secure - add support for arbitrary size hash/HMAC updates

This patch fixes an issue with hash and HMAC operations that perform
"large" intermediate updates (i.e. combined size > 2 hash blocks) by
actually making use of the hardware's hash continue capabilities.
The original implementation would cache these updates in a buffer that
was 2 hash blocks in size and fail if all update calls combined would
overflow that buffer. Which caused the cryptomgr extra tests to fail.
Signed-off-by: default avatarPascal van Leeuwen <pvanleeuwen@verimatrix.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 85695b09
...@@ -637,6 +637,8 @@ struct safexcel_context { ...@@ -637,6 +637,8 @@ struct safexcel_context {
bool exit_inv; bool exit_inv;
}; };
#define HASH_CACHE_SIZE SHA512_BLOCK_SIZE
struct safexcel_ahash_export_state { struct safexcel_ahash_export_state {
u64 len[2]; u64 len[2];
u64 processed[2]; u64 processed[2];
...@@ -644,7 +646,7 @@ struct safexcel_ahash_export_state { ...@@ -644,7 +646,7 @@ struct safexcel_ahash_export_state {
u32 digest; u32 digest;
u32 state[SHA512_DIGEST_SIZE / sizeof(u32)]; u32 state[SHA512_DIGEST_SIZE / sizeof(u32)];
u8 cache[SHA512_BLOCK_SIZE << 1]; u8 cache[HASH_CACHE_SIZE];
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment