Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp437877ybl; Tue, 27 Aug 2019 23:38:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqzGiQs/dBvkiUyf1vqiuNWY9V1qWOjeUKM8oSO/+lSoZOEZR/W0IU/s2LTml/hpJJw9gufI X-Received: by 2002:aa7:81d9:: with SMTP id c25mr2883534pfn.255.1566974291865; Tue, 27 Aug 2019 23:38:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566974291; cv=none; d=google.com; s=arc-20160816; b=fJwoVzmLKabuQV/8eWjLD0BczTo8m9kDiEeJP88Lc2Jb2TW9q6m8bCwROZ9dxjnQp4 p50R6k2UguplHUAOU+rGCndwm9KO7P94iirJnlrBFawkJTyd6YhJw+YMwXGn8kOMdqwb NNmzee6WxVJTfnodjq2wOkpdbEAkW/xj6vTapyzFX50vZPbGiPv7yo40zThC+HuujFmP 8RYY0pPx0PypW0TxuNZoQLcqfUZ7E8vFUwuHnL7SfN18FXzYKwvLRWENLBvCsK9n3jWM dZnEmGUg0H5DqIPwe/ubHHVwhWGnc/Q+nkNrjO3H+T8Z0mQ3ZyGpIzc+UGF8FN06YOSl YPPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=HxuKJ64KKU8klQdQMKwhk3MiyWLPlXK9PvK8ZMUzGfc=; b=eyGQ7oPon74Kamghewds4DxRyAELTJ+Q8yIzbxqKMTH+UzMk4K5hDY8wRjEnpColjY 7pg8seSIaT819AciHDrPOhaS/u46aZyklecwf32wFmL6QSjbFYFGgZLXZBYSyrg4aHZx d8pvm1cPGxDyLGH8aSDigRRdE819HNqgvkixm23xJe1bx9ebr2xD+wpoIYMK4yf8/ncK dLnbZZsc+8xUgTSXarZjUq5jvGsL8tG2LEFnKA/hyRZKhzc8b/zJorYUsyi4Vdt8hNKT UK+hhf5KzyriY4J2++to64B3tjxzyLAH+5K6yb4JjPxcE8+cX5LoxbS7bClWMGgD13FM fvrw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v37si1400173pga.219.2019.08.27.23.37.58; Tue, 27 Aug 2019 23:38:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726470AbfH1Ghg (ORCPT + 99 others); Wed, 28 Aug 2019 02:37:36 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:34352 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726374AbfH1Ghf (ORCPT ); Wed, 28 Aug 2019 02:37:35 -0400 X-UUID: 84ec3a7a644b429eb59967b68ca96bcf-20190828 X-UUID: 84ec3a7a644b429eb59967b68ca96bcf-20190828 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 192895952; Wed, 28 Aug 2019 14:37:31 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 28 Aug 2019 14:37:30 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 28 Aug 2019 14:37:30 +0800 From: Vic Wu To: Herbert Xu CC: "David S . Miller" , Ryder Lee , , , , , Vic Wu Subject: [PATCH 5/5] crypto: mediatek: fix incorrect crypto key setting Date: Wed, 28 Aug 2019 14:37:16 +0800 Message-ID: <20190828063716.22689-5-vic.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20190828063716.22689-1-vic.wu@mediatek.com> References: <20190828063716.22689-1-vic.wu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Record crypto key to context during setkey and set the key to transform state buffer in encrypt/decrypt process. Signed-off-by: Vic Wu --- drivers/crypto/mediatek/mtk-aes.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/crypto/mediatek/mtk-aes.c b/drivers/crypto/mediatek/mtk-aes.c index 9eeb8b8d..05f21dc8 100644 --- a/drivers/crypto/mediatek/mtk-aes.c +++ b/drivers/crypto/mediatek/mtk-aes.c @@ -107,6 +107,7 @@ struct mtk_aes_reqctx { struct mtk_aes_base_ctx { struct mtk_cryp *cryp; u32 keylen; + __le32 key[12]; __le32 keymode; mtk_aes_fn start; @@ -541,6 +542,8 @@ static int mtk_aes_handle_queue(struct mtk_cryp *cryp, u8 id, backlog->complete(backlog, -EINPROGRESS); ctx = crypto_tfm_ctx(areq->tfm); + /* Write key into state buffer */ + memcpy(ctx->info.state, ctx->key, sizeof(ctx->key)); aes->areq = areq; aes->ctx = ctx; @@ -660,7 +663,7 @@ static int mtk_aes_setkey(struct crypto_ablkcipher *tfm, } ctx->keylen = SIZE_IN_WORDS(keylen); - mtk_aes_write_state_le(ctx->info.state, (const u32 *)key, keylen); + mtk_aes_write_state_le(ctx->key, (const u32 *)key, keylen); return 0; } @@ -1093,10 +1096,8 @@ static int mtk_aes_gcm_setkey(struct crypto_aead *aead, const u8 *key, if (err) goto out; - /* Write key into state buffer */ - mtk_aes_write_state_le(ctx->info.state, (const u32 *)key, keylen); - /* Write key(H) into state buffer */ - mtk_aes_write_state_be(ctx->info.state + ctx->keylen, data->hash, + mtk_aes_write_state_le(ctx->key, (const u32 *)key, keylen); + mtk_aes_write_state_be(ctx->key + ctx->keylen, data->hash, AES_BLOCK_SIZE); out: kzfree(data); -- 2.17.1