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: Pascal van Leeuwen <pvanleeuwen@verimatrix.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:

committed by
Herbert Xu

parent
85695b093d
commit
41abed7d72
@@ -637,6 +637,8 @@ struct safexcel_context {
|
||||
bool exit_inv;
|
||||
};
|
||||
|
||||
#define HASH_CACHE_SIZE SHA512_BLOCK_SIZE
|
||||
|
||||
struct safexcel_ahash_export_state {
|
||||
u64 len[2];
|
||||
u64 processed[2];
|
||||
@@ -644,7 +646,7 @@ struct safexcel_ahash_export_state {
|
||||
u32 digest;
|
||||
|
||||
u32 state[SHA512_DIGEST_SIZE / sizeof(u32)];
|
||||
u8 cache[SHA512_BLOCK_SIZE << 1];
|
||||
u8 cache[HASH_CACHE_SIZE];
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user