lkml.org 
[lkml]   [2020]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 371/671] crypto: ccp - fix AES CFB error exposed by new test vectors
    Date
    From: "Hook, Gary" <Gary.Hook@amd.com>

    [ Upstream commit c3b359d6567c0b8f413e924feb37cf025067d55a ]

    Updated testmgr will exhibit this error message when loading the
    ccp-crypto module:

    alg: skcipher: cfb-aes-ccp encryption failed with err -22 on test vector 3, cfg="in-place"

    Update the CCP crypto driver to correctly treat CFB as a streaming mode
    cipher (instead of block mode). Update the configuration for CFB to
    specify the block size as a single byte;

    Fixes: 2b789435d7f3 ('crypto: ccp - CCP AES crypto API support')

    Signed-off-by: Gary R Hook <gary.hook@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/crypto/ccp/ccp-crypto-aes.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/crypto/ccp/ccp-crypto-aes.c b/drivers/crypto/ccp/ccp-crypto-aes.c
    index 89291c15015c..3f768699332b 100644
    --- a/drivers/crypto/ccp/ccp-crypto-aes.c
    +++ b/drivers/crypto/ccp/ccp-crypto-aes.c
    @@ -1,7 +1,8 @@
    +// SPDX-License-Identifier: GPL-2.0
    /*
    * AMD Cryptographic Coprocessor (CCP) AES crypto API support
    *
    - * Copyright (C) 2013,2016 Advanced Micro Devices, Inc.
    + * Copyright (C) 2013-2019 Advanced Micro Devices, Inc.
    *
    * Author: Tom Lendacky <thomas.lendacky@amd.com>
    *
    @@ -79,8 +80,7 @@ static int ccp_aes_crypt(struct ablkcipher_request *req, bool encrypt)
    return -EINVAL;

    if (((ctx->u.aes.mode == CCP_AES_MODE_ECB) ||
    - (ctx->u.aes.mode == CCP_AES_MODE_CBC) ||
    - (ctx->u.aes.mode == CCP_AES_MODE_CFB)) &&
    + (ctx->u.aes.mode == CCP_AES_MODE_CBC)) &&
    (req->nbytes & (AES_BLOCK_SIZE - 1)))
    return -EINVAL;

    @@ -291,7 +291,7 @@ static struct ccp_aes_def aes_algs[] = {
    .version = CCP_VERSION(3, 0),
    .name = "cfb(aes)",
    .driver_name = "cfb-aes-ccp",
    - .blocksize = AES_BLOCK_SIZE,
    + .blocksize = 1,
    .ivsize = AES_BLOCK_SIZE,
    .alg_defaults = &ccp_aes_defaults,
    },
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-01-16 18:08    [W:4.067 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site