Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp8560015ybl; Thu, 16 Jan 2020 19:36:20 -0800 (PST) X-Google-Smtp-Source: APXvYqxETh8x3IUyBxRbKHEyrz2xH9V77NWK8DOh2rcc+z4k90+hkjcG9vqWH68CdfJapdi4XgB5 X-Received: by 2002:aca:d6c4:: with SMTP id n187mr1990402oig.29.1579232180675; Thu, 16 Jan 2020 19:36:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579232180; cv=none; d=google.com; s=arc-20160816; b=xhy2ioGtHAP1hH6X6XAIMUTbRr3zPOV1KDO3KTlvbRvjKRiCV4Ghv0a3WFaZreGm1a KbpkauN5tes3p4HBaYlMxcuBQcmEALO5fgGLXJEHawksGqjFJWyj6/VGwP4rA65h9oft ds55fWNxVtMfDm/BppPFef0Z6UX9WoFIwBq+yxfPMoIw1NBhPKvcnBMa2O8A3xPBB0bN HwT+xu34mWp3BtKLJQlQhRV/KHpr2DU2FNd1mVCrDQg6oib/z63Q6Jj2CmcCgoD+179q BTMObe41kefSiHGNGcC1JjOZyzWdv/V7HXF8WZb/hs5cIPDKFFFwPxIgz0mPU0KtyfMs RT+g== 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=h6cd4+/IQp62k45HqXqpld342soawKFB7JKWAaBZd9A=; b=OH1Wfe60Uq2PB7BDJ+W8i+or6h4OoF5QwyzujMFFROPmU6hSl95pXGVFJGBo6tG1DQ aAQXWU8EzhTUK+INiW2gJRRXpmsHq56lQw30p4S+nD3mIMaFx3jZnh6IcLA2gD0VZK/p JVzpovtCIf8s9hIVQnHFOH3Bzvs7/ZnjLOZQoRBs5qqyUD+A6wxI9iBwEwBwo5m+cQtL DcYMIVuMj+fHYqq7OtVOjH4wZhkysgobeBqy5O3FqMTYCYdDDX7ySqIYhjfHhpO2Y8wl cC//F3U2GJ1mIYf7rRAIE+5bpIDfBRRe6zIfJACu7W1gwAJw3as127Uzto2KpzsPEKFj UhQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aP24NWQy; 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 o20si13761703otl.60.2020.01.16.19.36.08; Thu, 16 Jan 2020 19:36:20 -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=aP24NWQy; 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 S2389373AbgAPXo0 (ORCPT + 99 others); Thu, 16 Jan 2020 18:44:26 -0500 Received: from mail.kernel.org ([198.145.29.99]:53018 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730385AbgAPXYK (ORCPT ); Thu, 16 Jan 2020 18:24:10 -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 695982072E; Thu, 16 Jan 2020 23:24:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579217049; bh=N7VTVlXdao9/QnRa5Pq+e/5WQ6gubOhfw2gXsn5wv+E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aP24NWQyzyKxf0KN9wBgkaDJsSZ55/4tPsZahpVd29QU6FUl7+7tnLHnskIbZ/vpi kvLXrN91ignhfZW6D3zXXg0ri8hOWqUvyeL7yElXtc7LDGvQ9o6mEEF0kyuwiwEWMD iW/LCsfaWtLu5Onjvdp5l6+CQlYbTIPTLAZXladw= 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 5.4 101/203] crypto: virtio - implement missing support for output IVs Date: Fri, 17 Jan 2020 00:16:58 +0100 Message-Id: <20200116231754.427447217@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200116231745.218684830@linuxfoundation.org> References: <20200116231745.218684830@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 @@ -435,6 +435,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; @@ -571,6 +576,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);