From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6BBBC433F5 for ; Mon, 28 Mar 2022 20:58:31 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 28BDD83FA4; Mon, 28 Mar 2022 22:57:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=softathome1.onmicrosoft.com header.i=@softathome1.onmicrosoft.com header.b="ar/j8cTO"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 964BB83C84; Mon, 28 Mar 2022 22:57:25 +0200 (CEST) Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on062b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e18::62b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B53A483F7E for ; Mon, 28 Mar 2022 22:57:15 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=softathome.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=philippe.reynes@softathome.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxBJY00bG1jMp/pOLetPYiZW0m+kTbwn8x7Upol2cdTw1DiqaznS9ZpbUdX8mToxyX3P9IKHBy59hQ9xDclXTa2QEh+LJs2HDGq/YeR0yJEhunRdD48fgX5hlmSCJmD6mSi3nnWbC3UbZboXsHvNNH8WUuXNXkS/jFeYW1e6I3oUEhlIzfljT68jR+tSoKQuls8+52KfqVNAS/ktRt6NRTK6R2U6Gro3g6RksEZM+ue0gdGtefFA13GRBZCiN4QrN9mLPqfcpDbWrHMSwTj2YICqnC6kcNt4kAFJdvNZEYi/COKbcmkv5uZaqY4cqRdi7UxGKTG5PydWA3MkfjEzmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rZD8bCHrFSS8jlsfNnDo0DC3oNwZ7Pjx/qGIpts8H1Y=; b=VLYtwsOa1Y+bxwTz2jsyc00aqU9SmFM1k2xqdKCBtWnKUMzcZZXq9iG7WyHcxtOpOPewo77b12kzyyYdg/YsGwJCxVWJgiiuExY3VfuoP/OhgNuOnxygZwt40EJy9yP8UGeEEJ+0g3vDdgJA6qe1thgVEPL10X109Tdjet2qhATFbTtqg2jGB1PeC8TdpzHdp5/G9PCeLX3VYmGkAxqPGIQCl0HDYUrNBlQWzTp4TAU2AeVprvQqGFJvicww4lglWtvN6H4UMfssd/cfseBnUhbt9fCemKg+wpettyux8v28BGBNmfFQ82edqUq6g9XRzImqkTZtrXMklGMNLiIhQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.6.166.170) smtp.rcpttodomain=chromium.org smtp.mailfrom=softathome.com; dmarc=bestguesspass action=none header.from=softathome.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=softathome1.onmicrosoft.com; s=selector1-softathome1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rZD8bCHrFSS8jlsfNnDo0DC3oNwZ7Pjx/qGIpts8H1Y=; b=ar/j8cTOO/29wRWYPUuuQrakYvQsuqpTf17kQRnKosLiWMB5Zg2/sHh5IJmV8KMaHuWBk5FDDQFf/rpPjrHCHEkKcPCcD1V/KRt9M9k85SbKn3Qc8YKvellIL+yVoEQWFlwHV5UmA61FJGGOqX2ZSpqhd6I6YtHT9APK6gWLlHA7sBBTPwSzclTy5mPCNglrrN70hYST0j3EO+3yeqw3RiZBgNk3VzWjf6P+5hyfZvBO97+nkZUqOlrt7QUzchUCeikSbT1Nga+Q68KK+PjPzvh40vKbrKoWELEgijo8kVam/fZTJE/Oq2WbFA6Eqby343zNPW/0qEnWvu6fKM2ITA== Received: from MR1P264CA0113.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:50::30) by MRZP264MB2908.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:19::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Mon, 28 Mar 2022 20:57:13 +0000 Received: from MR2FRA01FT011.eop-fra01.prod.protection.outlook.com (2603:10a6:501:50:cafe::e6) by MR1P264CA0113.outlook.office365.com (2603:10a6:501:50::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.17 via Frontend Transport; Mon, 28 Mar 2022 20:57:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.6.166.170) smtp.mailfrom=softathome.com; dkim=none (message not signed) header.d=none;dmarc=bestguesspass action=none header.from=softathome.com; Received-SPF: Pass (protection.outlook.com: domain of softathome.com designates 149.6.166.170 as permitted sender) receiver=protection.outlook.com; client-ip=149.6.166.170; helo=proxy.softathome.com; Received: from proxy.softathome.com (149.6.166.170) by MR2FRA01FT011.mail.protection.outlook.com (10.152.50.189) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.18 via Frontend Transport; Mon, 28 Mar 2022 20:57:13 +0000 Received: from localhost.localdomain (unknown [192.168.72.32]) by proxy.softathome.com (Postfix) with ESMTPSA id EF325200FB; Mon, 28 Mar 2022 22:57:11 +0200 (CEST) From: Philippe Reynes To: sjg@chromium.org, rasmus.villemoes@prevas.dk Cc: u-boot@lists.denx.de, Philippe Reynes Subject: [PATCH v8 05/15] lib: crypto: allow to build crypyo in SPL Date: Mon, 28 Mar 2022 22:56:57 +0200 Message-Id: <20220328205707.348270-6-philippe.reynes@softathome.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220328205707.348270-1-philippe.reynes@softathome.com> References: <20220328205707.348270-1-philippe.reynes@softathome.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 000af267-ed96-49cd-fcf0-08da10fd88bd X-MS-TrafficTypeDiagnostic: MRZP264MB2908:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JIMH67zxhcEQMDygXbAPxeEUSwx3RfdbQLyLWSd+XnhclovaFg46pJrOoBUOyGkvcOUyUUInUFrElIscA243ZQ7a6MgkOYl2uMiivqF+4QDPBc8VeaGI8JqEJ+EacH0EOwx1nzA2F2gWWQkL2UJrnleKQvU263BVLu726mrIQ/jCWpPvM9Wrx1MAKLNKzC3Pao+ggcBYaPRu9hae7MysECSO13C+2k75chvZq/eYGnhQvi2CrZRYzZYnD0lTJ2XBczl/5ZsVGGaPIhla2c61gVR6K2eDNmC507lJlbbO7ceiAA8ucbbnFiaVBTu7Wtw6kn+/8kKEEUjuuinLmKSWtHD/B8RKVoafGiknPkstI+XYuGW/FuGUq6g4d17MtP3uLYbNNfafX7BwA+SZrFUriRt9ofiAtUk8FX5BBFrB9Eu3HBVxvcPAyQTRuIPhuIWkiAPUBe75LptYEEL9fWuYjHCRpH8Fh5kmdiTGPbp4iWh9kESP88He5ITuzii5hx3SKC5cpbA3ULbnugFsrJcLJO/tGRxaJtJejprAaqLxaydzDIwXo7RF5ad9Xpv414M9YXpu6nVgzW46/tA/9CNd0vScV1L/XC+mkfScIqss6far+h/pMFj9kYQp3G4g3lsQxgBrGXV90ju01XE+CirhJVPR9UqLqOgaqUwHkQ20iHaEnCV5e9kRdin8pmfObTFczoz3VXgBQ2xe+tcYlAFSpw== X-Forefront-Antispam-Report: CIP:149.6.166.170; CTRY:FR; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:proxy.softathome.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230001)(4636009)(36840700001)(40470700004)(46966006)(36860700001)(36756003)(336012)(8936002)(26005)(70586007)(107886003)(70206006)(82310400004)(186003)(316002)(6666004)(1076003)(6266002)(8676002)(4326008)(86362001)(82960400001)(47076005)(83380400001)(81166007)(44832011)(2906002)(5660300002)(2616005)(40460700003)(6966003)(356005)(508600001)(426003)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: softathome.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2022 20:57:13.2488 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 000af267-ed96-49cd-fcf0-08da10fd88bd X-MS-Exchange-CrossTenant-Id: aa10e044-e405-4c10-8353-36b4d0cce511 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=aa10e044-e405-4c10-8353-36b4d0cce511; Ip=[149.6.166.170]; Helo=[proxy.softathome.com] X-MS-Exchange-CrossTenant-AuthSource: MR2FRA01FT011.eop-fra01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRZP264MB2908 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean This commit adds the options: - SPL_ASYMMETRIC_KEY_TYPE - SPL_ASYMMETRIC_PUBLIC_KEY_SUBTYPE - SPL_RSA_PUBLIC_KEY_PARSER Reviewed-by: Simon Glass Signed-off-by: Philippe Reynes --- lib/Makefile | 3 ++- lib/crypto/Kconfig | 29 +++++++++++++++++++++++++++++ lib/crypto/Makefile | 19 +++++++++++++------ 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index 13e5d8f7a6..13fe5fb7a4 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -17,7 +17,6 @@ obj-$(CONFIG_OF_LIVE) += of_live.o obj-$(CONFIG_CMD_DHRYSTONE) += dhry/ obj-$(CONFIG_ARCH_AT91) += at91/ obj-$(CONFIG_OPTEE_LIB) += optee/ -obj-y += crypto/ obj-$(CONFIG_AES) += aes.o obj-$(CONFIG_AES) += aes/ @@ -63,6 +62,8 @@ obj-$(CONFIG_TPM_V1) += tpm-v1.o obj-$(CONFIG_TPM_V2) += tpm-v2.o endif +obj-y += crypto/ + obj-$(CONFIG_$(SPL_TPL_)GENERATE_ACPI_TABLE) += acpi/ obj-$(CONFIG_$(SPL_)MD5) += md5.o obj-$(CONFIG_ECDSA) += ecdsa/ diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig index 6369bafac0..509bc28311 100644 --- a/lib/crypto/Kconfig +++ b/lib/crypto/Kconfig @@ -8,6 +8,15 @@ menuconfig ASYMMETRIC_KEY_TYPE if ASYMMETRIC_KEY_TYPE +config SPL_ASYMMETRIC_KEY_TYPE + bool "Asymmetric (public-key cryptographic) key Support within SPL" + depends on SPL + help + This option provides support for a key type that holds the data for + the asymmetric keys used for public key cryptographic operations such + as encryption, decryption, signature generation and signature + verification in the SPL. + config ASYMMETRIC_PUBLIC_KEY_SUBTYPE bool "Asymmetric public-key crypto algorithm subtype" help @@ -16,6 +25,15 @@ config ASYMMETRIC_PUBLIC_KEY_SUBTYPE appropriate hash algorithms (such as SHA-1) must be available. ENOPKG will be reported if the requisite algorithm is unavailable. +config SPL_ASYMMETRIC_PUBLIC_KEY_SUBTYPE + bool "Asymmetric public-key crypto algorithm subtype within SPL" + depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE + help + This option provides support for asymmetric public key type handling in the SPL. + If signature generation and/or verification are to be used, + appropriate hash algorithms (such as SHA-1) must be available. + ENOPKG will be reported if the requisite algorithm is unavailable. + config RSA_PUBLIC_KEY_PARSER bool "RSA public key parser" depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE @@ -27,6 +45,17 @@ config RSA_PUBLIC_KEY_PARSER public key data and provides the ability to instantiate a public key. +config SPL_RSA_PUBLIC_KEY_PARSER + bool "RSA public key parser within SPL" + depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE + select SPL_ASN1_DECODER + select ASN1_COMPILER + select SPL_OID_REGISTRY + help + This option provides support for parsing a blob containing RSA + public key data and provides the ability to instantiate a public + key in the SPL. + config X509_CERTIFICATE_PARSER bool "X.509 certificate parser" depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile index f3a414525d..6792b1d4f0 100644 --- a/lib/crypto/Makefile +++ b/lib/crypto/Makefile @@ -3,27 +3,34 @@ # Makefile for asymmetric cryptographic keys # -obj-$(CONFIG_ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o +obj-$(CONFIG_$(SPL_)ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o asymmetric_keys-y := asymmetric_type.o -obj-$(CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o +obj-$(CONFIG_$(SPL_)ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o # # RSA public key parser # -obj-$(CONFIG_RSA_PUBLIC_KEY_PARSER) += rsa_public_key.o +obj-$(CONFIG_$(SPL_)RSA_PUBLIC_KEY_PARSER) += rsa_public_key.o rsa_public_key-y := \ rsapubkey.asn1.o \ rsa_helper.o $(obj)/rsapubkey.asn1.o: $(obj)/rsapubkey.asn1.c $(obj)/rsapubkey.asn1.h +ifdef CONFIG_SPL_BUILD +CFLAGS_rsapubkey.asn1.o += -I$(obj) +endif + $(obj)/rsa_helper.o: $(obj)/rsapubkey.asn1.h +ifdef CONFIG_SPL_BUILD +CFLAGS_rsa_helper.o += -I$(obj) +endif # # X.509 Certificate handling # -obj-$(CONFIG_X509_CERTIFICATE_PARSER) += x509_key_parser.o +obj-$(CONFIG_$(SPL_)X509_CERTIFICATE_PARSER) += x509_key_parser.o x509_key_parser-y := \ x509.asn1.o \ x509_akid.asn1.o \ @@ -40,11 +47,11 @@ $(obj)/x509_akid.asn1.o: $(obj)/x509_akid.asn1.c $(obj)/x509_akid.asn1.h # # PKCS#7 message handling # -obj-$(CONFIG_PKCS7_MESSAGE_PARSER) += pkcs7_message.o +obj-$(CONFIG_$(SPL_)PKCS7_MESSAGE_PARSER) += pkcs7_message.o pkcs7_message-y := \ pkcs7.asn1.o \ pkcs7_parser.o -obj-$(CONFIG_PKCS7_VERIFY) += pkcs7_verify.o +obj-$(CONFIG_$(SPL_)PKCS7_VERIFY) += pkcs7_verify.o $(obj)/pkcs7_parser.o: $(obj)/pkcs7.asn1.h $(obj)/pkcs7.asn1.o: $(obj)/pkcs7.asn1.c $(obj)/pkcs7.asn1.h -- 2.25.1