linux/drivers/crypto/qce
Thara Gopinath a01dc5c1f7 crypto: qce - Restore/save ahash state with custom struct in export/import
Export and import interfaces save and restore partial transformation
states. The partial states were being stored and restored in struct
sha1_state for sha1/hmac(sha1) transformations and sha256_state for
sha256/hmac(sha256) transformations.This led to a bunch of corner cases
where improper state was being stored and restored. A few of the corner
cases that turned up during testing are:

- wrong byte_count restored if export/import is called twice without h/w
transaction in between
- wrong buflen restored back if the pending buffer
length is exactly the block size.
- wrong state restored if buffer length is 0.

To fix these issues, save and restore the partial transformation state
using the newly introduced qce_sha_saved_state struct. This ensures that
all the pieces required to properly restart the transformation is captured
and restored back

Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2021-03-07 15:13:15 +11:00
..
cipher.h crypto: qce - permit asynchronous skcipher as fallback 2020-07-16 21:49:03 +10:00
common.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
common.h crypto: qce - support zero length test vectors 2020-07-03 14:18:34 +10:00
core.c crypto: qce - Enable support for crypto engine on sdm845 2020-11-27 17:13:40 +11:00
core.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
dma.c crypto: qce - use cryptlen when adding extra sgl 2020-02-13 17:05:26 +08:00
dma.h crypto: qce - use cryptlen when adding extra sgl 2020-02-13 17:05:26 +08:00
Makefile crypto: qce - allow building only hashes/ciphers 2019-12-27 18:18:04 +08:00
regs-v5.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
sha.c crypto: qce - Restore/save ahash state with custom struct in export/import 2021-03-07 15:13:15 +11:00
sha.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
skcipher.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00