[PATCH 16/22] crypto: ccree - add check for xts input length equal to zero

From: Andrei Botila
Date: Fri Aug 07 2020 - 12:23:22 EST


From: Andrei Botila <andrei.botila@xxxxxxx>

Standardize the way input lengths equal to 0 are handled in all skcipher
algorithms. All the algorithms return 0 for input lengths equal to zero.
This change has implications not only for xts(aes) but also for cts(cbc(aes))
and cts(cbc(paes)).

Cc: Gilad Ben-Yossef <gilad@xxxxxxxxxxxxx>
Signed-off-by: Andrei Botila <andrei.botila@xxxxxxx>
---
drivers/crypto/ccree/cc_cipher.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/ccree/cc_cipher.c b/drivers/crypto/ccree/cc_cipher.c
index 076669dc1035..112bb8b4dce6 100644
--- a/drivers/crypto/ccree/cc_cipher.c
+++ b/drivers/crypto/ccree/cc_cipher.c
@@ -912,17 +912,18 @@ static int cc_cipher_process(struct skcipher_request *req,

/* STAT_PHASE_0: Init and sanity checks */

- if (validate_data_size(ctx_p, nbytes)) {
- dev_dbg(dev, "Unsupported data size %d.\n", nbytes);
- rc = -EINVAL;
- goto exit_process;
- }
if (nbytes == 0) {
/* No data to process is valid */
rc = 0;
goto exit_process;
}

+ if (validate_data_size(ctx_p, nbytes)) {
+ dev_dbg(dev, "Unsupported data size %d.\n", nbytes);
+ rc = -EINVAL;
+ goto exit_process;
+ }
+
if (ctx_p->fallback_on) {
struct skcipher_request *subreq = skcipher_request_ctx(req);

--
2.17.1