Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp778886ybx; Tue, 5 Nov 2019 05:30:11 -0800 (PST) X-Google-Smtp-Source: APXvYqxw9bfmbzwfNmOgtnoIcHZqcenQdVGjy863ADBaTE0Ty9A2J5veO86tO26nmD4tv0NzKUO9 X-Received: by 2002:aa7:c954:: with SMTP id h20mr34694672edt.159.1572960610061; Tue, 05 Nov 2019 05:30:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572960610; cv=none; d=google.com; s=arc-20160816; b=OgVhjtBFA1LigcBvkRY1aVVNCj//AIUHnadH90/ifizFW72h+R6Aq9v/d2hRBghmxf FiIxA/mQ8Q7yypAmdZqCbtWzQebvWeicHSTnPfE5XdmzPS4ZTbNbVy6bJCZYcvQ1jlGA oIT5AU38zrIJ0UY8hcFLY5eKFyWaJEfNyn5ZNA7voX1+ecbkuROWR6926aExAMTHZvWl HM+mpl+TmbBxKlhOeOTpevrMSUdjotf+uTMu6iHm2BWbbjWCwP//hB5zGitiuJ8DQTTx lkW8UAiGA69hI9kUSj3b8CiZ39jspI4rk0vqIvZRvsb9vt7JWTFZ9CEMukH1OXakaEwS Nk0w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=iME2P6do49XJDWskwhNJqjigIP+YTbY6vB/tmvJVRpY=; b=o2c6d33FHJS2nKBpVGg8aI4tB3sZW+ynnbVqMFGvTCYbTolR04RjAy5iaSs9DoxL8R 5vPbbiQVXdFge+BZ7gMpI9PqATv6+nDVRqAzAakzNFFlJzCmZBTQb50QXHmflHUbSQK3 8v/LPVgft4pZ5q6w8kCIvcT6j7fJYT14N5cR04Emvv678djMC9Cwp8Bs1ZkDFTQBpoOD E74LQskNnv71RvRnTWwMTj6UZl6LgfWKdb+y/7yJsw2sTxrhQIL8ydgnUzs4WGuZgdf0 gAZBofbavTBIP+kKVVK7UZhHl+mW1CY6Wvzr50hLOCbJqhCBduViIAJvMwjuAtFO2O6A 04kQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=slgOjyTw; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l12si11131611edk.60.2019.11.05.05.29.45; Tue, 05 Nov 2019 05:30:10 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=slgOjyTw; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389028AbfKEN2l (ORCPT + 99 others); Tue, 5 Nov 2019 08:28:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:46488 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388963AbfKEN2l (ORCPT ); Tue, 5 Nov 2019 08:28:41 -0500 Received: from localhost.localdomain (laubervilliers-657-1-83-120.w92-154.abo.wanadoo.fr [92.154.90.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A161621D71; Tue, 5 Nov 2019 13:28:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572960520; bh=7mDjWmrykjWinI9flSdIxWfKbwzQRVeme/a6n119Pf8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=slgOjyTwt9OCoJixjRH5cLIeQPmUmjH4govBwVcy1mKhc2rJO3SE5SHp3WjnXAiQ/ I724H/moeFtTnV79Oylq3cMtEnzODhZ7q6p7sanqANcUCrl1g3vwvIt4ZbCbPDhwIB QJjuTMqo6di0Xb8GEXxt5uMgA7WlC7Obp5a5aUEI= From: Ard Biesheuvel To: linux-crypto@vger.kernel.org Cc: Ard Biesheuvel , Herbert Xu , "David S. Miller" , Eric Biggers , linux-arm-kernel@lists.infradead.org, "Michael S. Tsirkin" , Jason Wang , Gonglei , virtualization@lists.linux-foundation.org Subject: [PATCH v3 01/29] crypto: virtio - implement missing support for output IVs Date: Tue, 5 Nov 2019 14:27:58 +0100 Message-Id: <20191105132826.1838-2-ardb@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191105132826.1838-1-ardb@kernel.org> References: <20191105132826.1838-1-ardb@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org 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 --- drivers/crypto/virtio/virtio_crypto_algs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/crypto/virtio/virtio_crypto_algs.c b/drivers/crypto/virtio/virtio_crypto_algs.c index 42d19205166b..65ec10800137 100644 --- a/drivers/crypto/virtio/virtio_crypto_algs.c +++ b/drivers/crypto/virtio/virtio_crypto_algs.c @@ -437,6 +437,11 @@ __virtio_crypto_ablkcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req, 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; @@ -563,6 +568,10 @@ static void virtio_crypto_ablkcipher_finalize_req( 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); -- 2.20.1