Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8370675ybl; Thu, 16 Jan 2020 15:31:44 -0800 (PST) X-Google-Smtp-Source: APXvYqxwbsHWUH4GPdk5dH26WCscOo+BIzk6iBSOFWlDYpZ8r+tmDXpjvuskOvJG8tkC2yEPA6ms X-Received: by 2002:a05:6830:160c:: with SMTP id g12mr4066022otr.82.1579217504782; Thu, 16 Jan 2020 15:31:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579217504; cv=none; d=google.com; s=arc-20160816; b=UKHBH/Sq3mjN4YwGM4Gwmu4v6yuT7t3pNjQMTe1GyXpPoKx0hguFX/XANUcsPuKFNV +jHy/eaIaZHMSB9lyFC5XAzsN6PyXHxi7W2JRpV9ek3qV4bnKOzKA0Fw48RUoUJMtTkT roMyAhQcC0H37QQyb0OnYE0WbILv0YdyBdXm5NpFgpXPx7hB/9uIWDWrmEtm/h6z2kXB 0wLqmSZPBL2n5G/kq1dx1HdQwMJFv/aNsRgeIKGx/v0K9Zmvb+ME+v7XxggHZXk8ucnx 12T8RN4Qthbe8wyzsa8z0LGQXU2wlgKNPp/yJUg13TAxfFDT3VZzXaM1jPC7b6bE1UbJ plYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vFCcYtkP5wdAif8OMbOtOxaIVMqb0M5kzpMI2d+bQlA=; b=KJg1WguM3r3f3+ZSRi0t5H0LzfUIvBStaR/dP2AhUe/EkBVm+nauloR7FsKIB8GIfJ ACMvm5UB1/Z8FgxGP4w5v68a8X/TNemaem+CfgP1lgbOCqSppzG0+sx0NAwoz56pnJMc iMlHL7SF+CpVIC7A3Q/iLft6szjOCkl7fo0FQ/lhJU0634QVLkeqFFJlhZCWrEUzmlfK ZtPINxC/OGGOKEMN3GH2YBwVZHvvqJ0aR5ylF2h3YxH7rXevG/b8S7UJjnSSpE+6C7kj NaHoXio1pPS66iTLAoZlYzfvlX8fIMsNPPY1fpEFkEsaTfqx20jXbpVOV8yBSXbFQyw1 B0cQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HSL6+w1K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s19si14826626otd.9.2020.01.16.15.31.32; Thu, 16 Jan 2020 15:31:44 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HSL6+w1K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391023AbgAPX3C (ORCPT + 99 others); Thu, 16 Jan 2020 18:29:02 -0500 Received: from mail.kernel.org ([198.145.29.99]:34156 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389637AbgAPX26 (ORCPT ); Thu, 16 Jan 2020 18:28:58 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 157FD20684; Thu, 16 Jan 2020 23:28:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579217337; bh=0OrMHnukN32l1tTlce+BD7S8E7gNYvNKNM/0qoVDPS8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HSL6+w1KfxfhRHTlLGJ8Fua+xN/fDdY3yOEJeKqubQV/tLkTQM0fqEd4gA3UDu7U1 wnJUFWWhdpHFtXoUpz/9zPpBalYxvZRpu0QCcSRwPuorNh9Pt38somCPguZHxiL8dm 26LG4GTwA7Wn4tL+d4gkudAytpV3+4/Q0xL10UMY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Michael S. Tsirkin" , Jason Wang , Gonglei , virtualization@lists.linux-foundation.org, Ard Biesheuvel , Herbert Xu Subject: [PATCH 4.19 42/84] crypto: virtio - implement missing support for output IVs Date: Fri, 17 Jan 2020 00:18:16 +0100 Message-Id: <20200116231718.728089716@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200116231713.087649517@linuxfoundation.org> References: <20200116231713.087649517@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel commit 500e6807ce93b1fdc7d5b827c5cc167cc35630db upstream. In order to allow for CBC to be chained, which is something that the CTS template relies upon, implementations of CBC need to pass the IV to be used for subsequent invocations via the IV buffer. This was not implemented yet for virtio-crypto so implement it now. Fixes: dbaf0624ffa5 ("crypto: add virtio-crypto driver") Cc: "Michael S. Tsirkin" Cc: Jason Wang Cc: Gonglei Cc: virtualization@lists.linux-foundation.org Signed-off-by: Ard Biesheuvel Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- drivers/crypto/virtio/virtio_crypto_algs.c | 9 +++++++++ 1 file changed, 9 insertions(+) --- a/drivers/crypto/virtio/virtio_crypto_algs.c +++ b/drivers/crypto/virtio/virtio_crypto_algs.c @@ -449,6 +449,11 @@ __virtio_crypto_ablkcipher_do_req(struct goto free; } memcpy(iv, req->info, ivsize); + if (!vc_sym_req->encrypt) + scatterwalk_map_and_copy(req->info, req->src, + req->nbytes - AES_BLOCK_SIZE, + AES_BLOCK_SIZE, 0); + sg_init_one(&iv_sg, iv, ivsize); sgs[num_out++] = &iv_sg; vc_sym_req->iv = iv; @@ -585,6 +590,10 @@ static void virtio_crypto_ablkcipher_fin struct ablkcipher_request *req, int err) { + if (vc_sym_req->encrypt) + scatterwalk_map_and_copy(req->info, req->dst, + req->nbytes - AES_BLOCK_SIZE, + AES_BLOCK_SIZE, 0); crypto_finalize_ablkcipher_request(vc_sym_req->base.dataq->engine, req, err); kzfree(vc_sym_req->iv);