OSDN Git Service

crypto: hisilicon/sec - fix auth key size error
authorKai Ye <yekai13@huawei.com>
Thu, 21 Jul 2022 02:18:31 +0000 (10:18 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 29 Jul 2022 10:29:17 +0000 (18:29 +0800)
The authentication algorithm supports a maximum of 128-byte keys.
The allocated key memory is insufficient.

Fixes: 2f072d75d1ab ("crypto: hisilicon - Add aead support on SEC2")
Signed-off-by: Kai Ye <yekai13@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/sec2/sec_crypto.c
drivers/crypto/hisilicon/sec2/sec_crypto.h

index 71dfa7d..77c9f13 100644 (file)
@@ -620,7 +620,7 @@ static int sec_auth_init(struct sec_ctx *ctx)
 {
        struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
 
-       a_ctx->a_key = dma_alloc_coherent(ctx->dev, SEC_MAX_KEY_SIZE,
+       a_ctx->a_key = dma_alloc_coherent(ctx->dev, SEC_MAX_AKEY_SIZE,
                                          &a_ctx->a_key_dma, GFP_KERNEL);
        if (!a_ctx->a_key)
                return -ENOMEM;
@@ -632,8 +632,8 @@ static void sec_auth_uninit(struct sec_ctx *ctx)
 {
        struct sec_auth_ctx *a_ctx = &ctx->a_ctx;
 
-       memzero_explicit(a_ctx->a_key, SEC_MAX_KEY_SIZE);
-       dma_free_coherent(ctx->dev, SEC_MAX_KEY_SIZE,
+       memzero_explicit(a_ctx->a_key, SEC_MAX_AKEY_SIZE);
+       dma_free_coherent(ctx->dev, SEC_MAX_AKEY_SIZE,
                          a_ctx->a_key, a_ctx->a_key_dma);
 }
 
index 5e039b5..d033f63 100644 (file)
@@ -7,6 +7,7 @@
 #define SEC_AIV_SIZE           12
 #define SEC_IV_SIZE            24
 #define SEC_MAX_KEY_SIZE       64
+#define SEC_MAX_AKEY_SIZE      128
 #define SEC_COMM_SCENE         0
 #define SEC_MIN_BLOCK_SZ       1