32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
From 146e43fd8fc99c83437c00c532a1ad3d8e74d555 Mon Sep 17 00:00:00 2001
|
|
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
|
Date: Fri, 20 Dec 2019 16:02:16 -0300
|
|
Subject: [PATCH] crypto: qce - update the skcipher IV
|
|
|
|
Update the IV after the completion of each cipher operation.
|
|
|
|
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
(cherry picked from commit 3e806a12d10af2581aa26c37b58439286eab9782)
|
|
|
|
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
|
|
index a9ae356bc2a7..d3852a61cb1d 100644
|
|
--- a/drivers/crypto/qce/skcipher.c
|
|
+++ b/drivers/crypto/qce/skcipher.c
|
|
@@ -21,6 +21,7 @@ static void qce_skcipher_done(void *data)
|
|
struct qce_cipher_reqctx *rctx = skcipher_request_ctx(req);
|
|
struct qce_alg_template *tmpl = to_cipher_tmpl(crypto_skcipher_reqtfm(req));
|
|
struct qce_device *qce = tmpl->qce;
|
|
+ struct qce_result_dump *result_buf = qce->dma.result_buf;
|
|
enum dma_data_direction dir_src, dir_dst;
|
|
u32 status;
|
|
int error;
|
|
@@ -45,6 +46,7 @@ static void qce_skcipher_done(void *data)
|
|
if (error < 0)
|
|
dev_dbg(qce->dev, "skcipher operation error (%x)\n", status);
|
|
|
|
+ memcpy(rctx->iv, result_buf->encr_cntr_iv, rctx->ivsize);
|
|
qce->async_req_done(tmpl->qce, error);
|
|
}
|
|
|