From patchwork Mon Jan 22 09:26:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gilad Ben-Yossef X-Patchwork-Id: 125363 Delivered-To: patch@linaro.org Received: by 10.46.66.141 with SMTP id h13csp1054427ljf; Mon, 22 Jan 2018 01:27:24 -0800 (PST) X-Google-Smtp-Source: AH8x225vj3TNbwLb8ucE84oLvH5+1YG0Ulm8bomMBQ1lR5acTB1wjYt0aqgMisk5VJHEpROxXdLt X-Received: by 2002:a17:902:6a89:: with SMTP id n9-v6mr3056369plk.212.1516613244807; Mon, 22 Jan 2018 01:27:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516613244; cv=none; d=google.com; s=arc-20160816; b=srpU+vQDsSHap4yGlHTAbBdaDoCqoM7fWMTnyTBuAacC8R2yiIo6aNGgZlHWcvUjxv H58F8J+jJQLUyYjzU5geRrkpL9GjEIYNjOqyck6E/QEkhf3Yh4Y/Eamlsioo5H5omPIf jfu0mH1RBl3FRwbAVMSxuNMwoueMf6b+aanT6T3u+ssOvlZe3ITCtHzoXFFU9Okx2GHB FrJsKleDewxmBNu1TEj8bTRKKge3L7fuWsVe1cnLWA9FzAyjypR+tboVFxdiIKk9qqLv uYipzThiAuE95B4LEtSVH6KMiQ0ddDzGDgV59WqWXNBa3lUjEk72Svbdm4eX/W8ZBLNB JRrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Xi0LUIzzD5jUbmMvKcjVRnm53W2h0BrNbxtl1ZUP2Xc=; b=c9zpJXdSH41YGjQdgLU4ZPy9/kLAwM6w64PXcT8v/oQyaAryKhtCoDQhzWYqk+Du+B R0XNbgVrzeC+FrPYgPAwyNtro3KkBsayQ1PnjEPO4m/7XvWrzer6ld4HjuHcIf/0pzLY cbPxOdSnWMxwkozt2JwCP8EOWD62bHmznqS0t3eq3GBrmofsDMMRTnRn+GQ7k5dvpApU LyLpVXeeM5OEbz5+aNnUThNP4oZrAy30etp7vJmly5fRCaT46rCDKFJAkD7SQHmRU8sn cfEgtauf1RyDGJJXPUMNFuLqjcuylG/00eAAwRBtLCoH7mmKxLQ8XUImZAsi88vQgq+X 3fgA== ARC-Authentication-Results: i=1; mx.google.com; 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 s76si13426882pgc.80.2018.01.22.01.27.24; Mon, 22 Jan 2018 01:27:24 -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; 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 S1752260AbeAVJ1W (ORCPT + 28 others); Mon, 22 Jan 2018 04:27:22 -0500 Received: from foss.arm.com ([217.140.101.70]:55358 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751759AbeAVJ1T (ORCPT ); Mon, 22 Jan 2018 04:27:19 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E56C01435; Mon, 22 Jan 2018 01:27:18 -0800 (PST) Received: from sugar.kfn.arm.com (unknown [10.45.48.147]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0C5AB3F53D; Mon, 22 Jan 2018 01:27:16 -0800 (PST) From: Gilad Ben-Yossef To: Herbert Xu , "David S. Miller" , Greg Kroah-Hartman Cc: Ofir Drang , linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, devel@driverdev.osuosl.org Subject: [PATCH v2 0/7] crypto: ccree: Introduce Arm TrustZone CryptoCell Date: Mon, 22 Jan 2018 09:26:58 +0000 Message-Id: <1516613230-4524-1-git-send-email-gilad@benyossef.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Arm TrustZone CryptoCell is a security hardware IP that includes support for hardware based hash, digest, cipher and AEAD operations. This driver provides support for these as part of the Linux Crypto sub-system. The driver spent some time now in the staging tree being cleaned up and is now submitted for review for the purpose of moving into the crypto tree. The first patch therefore renames its copy in the staging directory Kconfig define and marks it broken, otherwise there is a build failure due to global symbols collisions. Please note that the driver include stubs for yet unexposed functionality (ivgen and secure HW keys), which will be added later. Signed-off-by: Gilad Ben-Yossef Changes from v1: - Use KConfig directive to stop staging tree version to not collide during link time as opposed to deleting it as indicated by Greg KH. - Switched from legacy ablkcipher to skcipher interface as indicated by Corentin Labbe. - Removed unused zero_buff struct as indicated by Corentin Labbe. - Moved to kzfree for all IV/key buffers as indicated by Corentin Labbe. - Moved to using __des3_ede_setkey() in lieu of home grown version as indicated by Stephan Mueller. - Fixed multiple small coding style from Dan Carpenter and others. - Fixed pointer signedness sparse warnings as indicated by Jeremy Sowden. - Rename all registered algs driver name to -ccree prefix Gilad Ben-Yossef (7): staging: ccree: rename staging ver and mark as broken crypto: ccree: introduce CryptoCell driver crypto: ccree: add skcipher support crypto: ccree: add ahash support crypto: ccree: add AEAD support crypto: ccree: add FIPS support MAINTAINERS: update ccree entry MAINTAINERS | 5 +- drivers/crypto/Kconfig | 27 + drivers/crypto/Makefile | 1 + drivers/crypto/ccree/Makefile | 7 + drivers/crypto/ccree/cc_aead.c | 2702 +++++++++++++++++++++++++++++++ drivers/crypto/ccree/cc_aead.h | 109 ++ drivers/crypto/ccree/cc_buffer_mgr.c | 1651 +++++++++++++++++++ drivers/crypto/ccree/cc_buffer_mgr.h | 72 + drivers/crypto/ccree/cc_cipher.c | 1130 +++++++++++++ drivers/crypto/ccree/cc_cipher.h | 59 + drivers/crypto/ccree/cc_crypto_ctx.h | 170 ++ drivers/crypto/ccree/cc_debugfs.c | 101 ++ drivers/crypto/ccree/cc_debugfs.h | 32 + drivers/crypto/ccree/cc_driver.c | 476 ++++++ drivers/crypto/ccree/cc_driver.h | 194 +++ drivers/crypto/ccree/cc_fips.c | 111 ++ drivers/crypto/ccree/cc_fips.h | 37 + drivers/crypto/ccree/cc_hash.c | 2296 ++++++++++++++++++++++++++ drivers/crypto/ccree/cc_hash.h | 114 ++ drivers/crypto/ccree/cc_host_regs.h | 142 ++ drivers/crypto/ccree/cc_hw_queue_defs.h | 590 +++++++ drivers/crypto/ccree/cc_ivgen.c | 280 ++++ drivers/crypto/ccree/cc_ivgen.h | 55 + drivers/crypto/ccree/cc_kernel_regs.h | 167 ++ drivers/crypto/ccree/cc_lli_defs.h | 59 + drivers/crypto/ccree/cc_pm.c | 122 ++ drivers/crypto/ccree/cc_pm.h | 57 + drivers/crypto/ccree/cc_request_mgr.c | 713 ++++++++ drivers/crypto/ccree/cc_request_mgr.h | 51 + drivers/crypto/ccree/cc_sram_mgr.c | 107 ++ drivers/crypto/ccree/cc_sram_mgr.h | 65 + drivers/staging/ccree/Kconfig | 4 +- drivers/staging/ccree/Makefile | 2 +- 33 files changed, 11702 insertions(+), 6 deletions(-) create mode 100644 drivers/crypto/ccree/Makefile create mode 100644 drivers/crypto/ccree/cc_aead.c create mode 100644 drivers/crypto/ccree/cc_aead.h create mode 100644 drivers/crypto/ccree/cc_buffer_mgr.c create mode 100644 drivers/crypto/ccree/cc_buffer_mgr.h create mode 100644 drivers/crypto/ccree/cc_cipher.c create mode 100644 drivers/crypto/ccree/cc_cipher.h create mode 100644 drivers/crypto/ccree/cc_crypto_ctx.h create mode 100644 drivers/crypto/ccree/cc_debugfs.c create mode 100644 drivers/crypto/ccree/cc_debugfs.h create mode 100644 drivers/crypto/ccree/cc_driver.c create mode 100644 drivers/crypto/ccree/cc_driver.h create mode 100644 drivers/crypto/ccree/cc_fips.c create mode 100644 drivers/crypto/ccree/cc_fips.h create mode 100644 drivers/crypto/ccree/cc_hash.c create mode 100644 drivers/crypto/ccree/cc_hash.h create mode 100644 drivers/crypto/ccree/cc_host_regs.h create mode 100644 drivers/crypto/ccree/cc_hw_queue_defs.h create mode 100644 drivers/crypto/ccree/cc_ivgen.c create mode 100644 drivers/crypto/ccree/cc_ivgen.h create mode 100644 drivers/crypto/ccree/cc_kernel_regs.h create mode 100644 drivers/crypto/ccree/cc_lli_defs.h create mode 100644 drivers/crypto/ccree/cc_pm.c create mode 100644 drivers/crypto/ccree/cc_pm.h create mode 100644 drivers/crypto/ccree/cc_request_mgr.c create mode 100644 drivers/crypto/ccree/cc_request_mgr.h create mode 100644 drivers/crypto/ccree/cc_sram_mgr.c create mode 100644 drivers/crypto/ccree/cc_sram_mgr.h -- 2.7.4