summaryrefslogtreecommitdiff
path: root/drivers/crypto/qce/aead.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/crypto/qce/aead.c')
-rw-r--r--drivers/crypto/qce/aead.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c
index 97b56e92ea33..9cb11fada2c4 100644
--- a/drivers/crypto/qce/aead.c
+++ b/drivers/crypto/qce/aead.c
@@ -5,6 +5,7 @@
*/
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
+#include <linux/string.h>
#include <crypto/gcm.h>
#include <crypto/authenc.h>
#include <crypto/internal/aead.h>
@@ -35,7 +36,6 @@ static void qce_aead_done(void *data)
u32 status;
unsigned int totallen;
unsigned char tag[SHA256_DIGEST_SIZE] = {0};
- int ret = 0;
diff_dst = (req->src != req->dst) ? true : false;
dir_src = diff_dst ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL;
@@ -79,8 +79,7 @@ static void qce_aead_done(void *data)
} else if (!IS_CCM(rctx->flags)) {
totallen = req->cryptlen + req->assoclen - ctx->authsize;
scatterwalk_map_and_copy(tag, req->src, totallen, ctx->authsize, 0);
- ret = memcmp(result_buf->auth_iv, tag, ctx->authsize);
- if (ret) {
+ if (memcmp(result_buf->auth_iv, tag, ctx->authsize)) {
pr_err("Bad message error\n");
error = -EBADMSG;
}
@@ -144,16 +143,12 @@ qce_aead_prepare_dst_buf(struct aead_request *req)
sg = qce_sgtable_add(&rctx->dst_tbl, &rctx->adata_sg,
rctx->assoclen);
- if (IS_ERR(sg)) {
- ret = PTR_ERR(sg);
+ if (IS_ERR(sg))
goto dst_tbl_free;
- }
/* dst buffer */
sg = qce_sgtable_add(&rctx->dst_tbl, msg_sg, rctx->cryptlen);
- if (IS_ERR(sg)) {
- ret = PTR_ERR(sg);
+ if (IS_ERR(sg))
goto dst_tbl_free;
- }
totallen = rctx->cryptlen + rctx->assoclen;
} else {
if (totallen) {
@@ -642,8 +637,8 @@ static int qce_aead_setkey(struct crypto_aead *tfm, const u8 *key, unsigned int
memcpy(ctx->enc_key, authenc_keys.enckey, authenc_keys.enckeylen);
- memset(ctx->auth_key, 0, sizeof(ctx->auth_key));
- memcpy(ctx->auth_key, authenc_keys.authkey, authenc_keys.authkeylen);
+ memcpy_and_pad(ctx->auth_key, sizeof(ctx->auth_key),
+ authenc_keys.authkey, authenc_keys.authkeylen, 0);
return crypto_aead_setkey(ctx->fallback, key, keylen);
}
@@ -762,15 +757,14 @@ static int qce_aead_register_one(const struct qce_aead_def *def, struct qce_devi
struct aead_alg *alg;
int ret;
- tmpl = kzalloc(sizeof(*tmpl), GFP_KERNEL);
+ tmpl = kzalloc_obj(*tmpl);
if (!tmpl)
return -ENOMEM;
alg = &tmpl->alg.aead;
- snprintf(alg->base.cra_name, CRYPTO_MAX_ALG_NAME, "%s", def->name);
- snprintf(alg->base.cra_driver_name, CRYPTO_MAX_ALG_NAME, "%s",
- def->drv_name);
+ strscpy(alg->base.cra_name, def->name);
+ strscpy(alg->base.cra_driver_name, def->drv_name);
alg->base.cra_blocksize = def->blocksize;
alg->chunksize = def->chunksize;