From patchwork Tue Feb 9 20:10:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438648 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=boGCluI5; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvD45h85z9s1l for ; Wed, 10 Feb 2021 07:11:06 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9375482AC0; Tue, 9 Feb 2021 21:10:52 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="boGCluI5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6541282AC6; Tue, 9 Feb 2021 21:10:47 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3A25582A35 for ; Tue, 9 Feb 2021 21:10:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wr1-x434.google.com with SMTP id 7so23639268wrz.0 for ; Tue, 09 Feb 2021 12:10:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0vUaZEByBxwNbTiKXtm4FqQVDvKyfcDOoqR5sJkil9E=; b=boGCluI5oCfcyiyRyrjqwIwC8W+mTLC3A53EdvrN/0zfzsA49cxLJgViQN0iIUP7K2 nYfYiwlzMKkpylov/xOltV/5jbF1+sQsNWEBu1mGwzjDSPooVuSzBASY4Qyac+Atgms5 o0e3F+ktkt3b+xq+HKjc3CGNhGHXs/2ALrneJcSBsZM6ImC/2HwIWXv+CoymcNFxG4qW cLW9VeHxZoOuxsKcGud7lflsPtHZJkm5nfGozLsKKsm8jGk5iEtP/T0O1qgg2zMSi//4 Dw3/9Eg9FJ9k3BmzYNE+RhiCJujvPjssdmXEkPwFYGqQgCg3EM7kvz4W0P11lKgWaICq o8mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0vUaZEByBxwNbTiKXtm4FqQVDvKyfcDOoqR5sJkil9E=; b=fnXBelbnPuMJ4sbl8MCMFp7d7zOPx0kEdQfKBlsrWWixarVfc3D7OUB5wFPr8P+udf pgk1hKhx8bkLrCX9YKYfFzlU3VkY0YMDxCxLX+L1k68a1NSK5oAUXpBJty8azyaCyJen eDwIJ81VsfjYy7vm0CmvEtTTq1L3RCdNSjLzJcVP5cZBDyWVT5khag7KTMW0FeTJj0Ku Hwy4CQSSMpFW3qpTqsJ+/icPwMwDhARYy5oyzO5vN8yFCf9j1hVRPOwY2FtFaoPX8/wG B/VjNuBKXWD1m3F6I/MZ892wfsT2+qJjf+5ZGRdBTLxzYSXZiEIg+YcIxTdvS6ter5P/ lrlw== X-Gm-Message-State: AOAM531he28BqgIfgs10rHXm0mqKKnqJWzqPOzWO+mw4pyl5VWQEY88K 8CQP8mxqU4JTtRXll7mdBwFMlw== X-Google-Smtp-Source: ABdhPJwX4LvZ66KyMtL1cnZTnGHIpBWByNDiJ1w6COvKqjlEiRzVadq2TaIp3AAwj64+sIaiGH7+Vg== X-Received: by 2002:adf:a298:: with SMTP id s24mr10514910wra.367.1612901441761; Tue, 09 Feb 2021 12:10:41 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:41 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 1/6] common: SCP03 control (enable and provision of keys) Date: Tue, 9 Feb 2021 21:10:33 +0100 Message-Id: <20210209201038.28747-1-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean This Trusted Application allows enabling SCP03 as well as provisioning the keys on TEE controlled secure element (ie, NXP SE050). All the information flowing on buses (ie I2C) between the processor and the secure element must be encrypted. Secure elements are pre-provisioned with a set of keys known to the user so that the secure channel protocol (encryption) can be enforced on the first boot. This situation is however unsafe since the keys are publically available. For example, in the case of the NXP SE050, these keys would be available in the OP-TEE source tree [2] and of course in the documentation corresponding to the part. To address that, users are required to rotate/provision those keys (ie, generate new keys and write them in the secure element's persistent memory). For information on SCP03, check the Global Platform HomePage and google for that term [1] [1] globalplatform.org [2] https://github.com/OP-TEE/optee_os/ check: core/drivers/crypto/se050/adaptors/utils/scp_config.c Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Simon Glass --- common/Kconfig | 8 ++++++ common/Makefile | 1 + common/scp03.c | 53 ++++++++++++++++++++++++++++++++++++ include/scp03.h | 21 ++++++++++++++ include/tee/optee_ta_scp03.h | 21 ++++++++++++++ 5 files changed, 104 insertions(+) create mode 100644 common/scp03.c create mode 100644 include/scp03.h create mode 100644 include/tee/optee_ta_scp03.h diff --git a/common/Kconfig b/common/Kconfig index 2bb3798f80..482f123534 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -588,6 +588,14 @@ config AVB_BUF_SIZE endif # AVB_VERIFY +config SCP03 + bool "Build SCP03 - Secure Channel Protocol O3 - controls" + depends on OPTEE || SANDBOX + depends on TEE + help + This option allows U-Boot to enable and or provision SCP03 on an OPTEE + controlled Secured Element. + config SPL_HASH bool # "Support hashing API (SHA1, SHA256, etc.)" help diff --git a/common/Makefile b/common/Makefile index daeea67cf2..215b8b26fd 100644 --- a/common/Makefile +++ b/common/Makefile @@ -137,3 +137,4 @@ obj-$(CONFIG_CMD_LOADB) += xyzModem.o obj-$(CONFIG_$(SPL_TPL_)YMODEM_SUPPORT) += xyzModem.o obj-$(CONFIG_AVB_VERIFY) += avb_verify.o +obj-$(CONFIG_SCP03) += scp03.o diff --git a/common/scp03.c b/common/scp03.c new file mode 100644 index 0000000000..09ef7b5ba3 --- /dev/null +++ b/common/scp03.c @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * (C) Copyright 2021, Foundries.IO + * + */ + +#include +#include +#include +#include + +static int scp03_enable(bool provision) +{ + const struct tee_optee_ta_uuid uuid = PTA_SCP03_UUID; + struct tee_open_session_arg session; + struct tee_invoke_arg invoke; + struct tee_param param; + struct udevice *tee = NULL; + + tee = tee_find_device(tee, NULL, NULL, NULL); + if (!tee) + return -ENODEV; + + memset(&session, 0, sizeof(session)); + tee_optee_ta_uuid_to_octets(session.uuid, &uuid); + if (tee_open_session(tee, &session, 0, NULL)) + return -ENXIO; + + memset(¶m, 0, sizeof(param)); + param.attr = TEE_PARAM_ATTR_TYPE_VALUE_INPUT; + param.u.value.a = provision; + + memset(&invoke, 0, sizeof(invoke)); + invoke.func = PTA_CMD_ENABLE_SCP03; + invoke.session = session.session; + + if (tee_invoke_func(tee, &invoke, 1, ¶m)) + return -EIO; + + tee_close_session(tee, session.session); + + return 0; +} + +int tee_enable_scp03(void) +{ + return scp03_enable(false); +} + +int tee_provision_scp03(void) +{ + return scp03_enable(true); +} diff --git a/include/scp03.h b/include/scp03.h new file mode 100644 index 0000000000..729667ccd1 --- /dev/null +++ b/include/scp03.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * (C) Copyright 2021, Foundries.IO + * + */ + +#ifndef _SCP03_H +#define _SCP03_H + +/* + * Requests to OPTEE to enable or provision the Secure Channel Protocol on its + * Secure Element + * + * If key provisioning is requested, OPTEE shall generate new SCP03 keys and + * write them to the Secure Element. + * + * Both functions return < 0 on error else 0. + */ +int tee_enable_scp03(void); +int tee_provision_scp03(void); +#endif /* _SCP03_H */ diff --git a/include/tee/optee_ta_scp03.h b/include/tee/optee_ta_scp03.h new file mode 100644 index 0000000000..13f9956d98 --- /dev/null +++ b/include/tee/optee_ta_scp03.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * (C) Copyright 2021, Foundries.IO + * + */ +#ifndef __TA_SCP03_H +#define __TA_SCP03_H + +#define PTA_SCP03_UUID { 0xbe0e5821, 0xe718, 0x4f77, \ + { 0xab, 0x3e, 0x8e, 0x6c, 0x73, 0xa9, 0xc7, 0x35 } } + +/* + * Enable Secure Channel Protocol functionality (SCP03) on the Secure Element. + * Setting the operation value to something different than NULL will trigger + * the SCP03 provisioning request. + * + * in params[0].a = operation + */ +#define PTA_CMD_ENABLE_SCP03 0 + +#endif /*__TA_SCP03_H*/ From patchwork Tue Feb 9 20:10:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438649 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=lHQv1lPt; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvD671Vlz9s1l for ; Wed, 10 Feb 2021 07:11:18 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8CCD782AB3; Tue, 9 Feb 2021 21:10:59 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="lHQv1lPt"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F3C1582AC0; Tue, 9 Feb 2021 21:10:47 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5FA6A82A3C for ; Tue, 9 Feb 2021 21:10:43 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wr1-x42c.google.com with SMTP id b3so23589669wrj.5 for ; Tue, 09 Feb 2021 12:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1hSZkWzu1HKGxQTECBmWnVjyCwoLk2JMjm7u9CNSqVo=; b=lHQv1lPtwIOBtXfgBkoklGkEMCH2InYrlnRifbDBdGRULngsvNmiaBsdZqv0XK5pYl BMPLPUvg93ualAldnlCWhiRSE4IOfP6v9PJhRlPPRfnj7q47tqGcBRRFBhBmCd5gU4LF /NTlkVXYnSVfylQRr5PBbcyMtfsUk6wTrbFJmOGGwnC6bU86hsntRw46crfo3wPBuY8n GPvce+5EGnyqbHNySLlvSGgHxXcTTcW6jh+B/5OKvHgCcYABGo0eMoWciDCyr5g0R/pj S13esRROWJZ2fvwgIrexAvRCU3rflROTntSiYd73ned7TkO43Uk5BYlomn0UZnZwejoK U8LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1hSZkWzu1HKGxQTECBmWnVjyCwoLk2JMjm7u9CNSqVo=; b=JMAYQUdiLHfnEfspTS+M1i85OzoxZ0MnIu3kp0ZyATaLIxJ52l49Lc9Y7+nfdGsjS4 rdogTrvlQ3P84DtKnzQOjLkWguEZIFSNJxJxrvU2MEgbb/Y7U0b+uM5cY1YHPZm5X4sx Nf1dre2MDPUdlZyuWoNUPRqsZApdY4z4tikVu+J0PpdUSBUs/L/vOil/4avow36k4PlM DPdybmaeQ7gpudYeudjsosDCmDqnvgnd5m5vr5ItNbu6ni/h3T1I1psNjhcpf6By+U6v oyzRCxAMkGeCVGlIf2PLJE7hvSo39J0q9hFg4WF4qsNk5Tl46+IcXOm+J91YfYBW9ACt aUkQ== X-Gm-Message-State: AOAM532trPz0WFcYjxdFpps6s5wnbfsNteF1rqfp4qFQ3UxHD0q+0hRL zrJKp801Kr+9JPGyH56KpVtc1A== X-Google-Smtp-Source: ABdhPJynwTVXIZnxLWbvc9YFn6+COA3Vh3X+iybyCvenMXxl5qi13mb7G/FU4/LRQdt7mKa9d9hb6Q== X-Received: by 2002:a5d:6404:: with SMTP id z4mr14046568wru.103.1612901442868; Tue, 09 Feb 2021 12:10:42 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:42 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 2/6] cmd: SCP03: enable and provision command Date: Tue, 9 Feb 2021 21:10:34 +0100 Message-Id: <20210209201038.28747-2-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210209201038.28747-1-jorge@foundries.io> References: <20210209201038.28747-1-jorge@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean Enable and provision the SCP03 keys on a TEE controlled secured elemt from the U-Boot shell. Executing this command will generate and program new SCP03 encryption keys on the secure element NVM. Depending on the TEE implementation, the keys would then be stored in some persistent storage or better derived from some platform secret (so they can't be lost). Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Simon Glass --- cmd/Kconfig | 8 ++++++++ cmd/Makefile | 3 +++ cmd/scp03.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 cmd/scp03.c diff --git a/cmd/Kconfig b/cmd/Kconfig index 928a2a0a2d..6327374f2c 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -2021,6 +2021,14 @@ config HASH_VERIFY help Add -v option to verify data against a hash. +config CMD_SCP03 + bool "scp03 - SCP03 enable and rotate/provision operations" + depends on SCP03 + help + This command provides access to a Trusted Application + running in a TEE to request Secure Channel Protocol 03 + (SCP03) enablement and/or rotation of its SCP03 keys. + config CMD_TPM_V1 bool diff --git a/cmd/Makefile b/cmd/Makefile index 176bf925fd..a7017e8452 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -193,6 +193,9 @@ obj-$(CONFIG_CMD_BLOB) += blob.o # Android Verified Boot 2.0 obj-$(CONFIG_CMD_AVB) += avb.o +# Foundries.IO SCP03 +obj-$(CONFIG_CMD_SCP03) += scp03.o + obj-$(CONFIG_ARM) += arm/ obj-$(CONFIG_RISCV) += riscv/ obj-$(CONFIG_SANDBOX) += sandbox/ diff --git a/cmd/scp03.c b/cmd/scp03.c new file mode 100644 index 0000000000..655e0bba08 --- /dev/null +++ b/cmd/scp03.c @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * (C) Copyright 2021, Foundries.IO + * + */ + +#include +#include +#include +#include + +int do_scp03_enable(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + if (argc != 1) + return CMD_RET_USAGE; + + if (tee_enable_scp03()) { + printf("TEE failed to enable SCP03\n"); + return CMD_RET_FAILURE; + } + + printf("SCP03 is enabled\n"); + + return CMD_RET_SUCCESS; +} + +int do_scp03_provision(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + if (argc != 1) + return CMD_RET_USAGE; + + if (tee_provision_scp03()) { + printf("TEE failed to provision SCP03 keys\n"); + return CMD_RET_FAILURE; + } + + printf("SCP03 is provisioned\n"); + + return CMD_RET_SUCCESS; +} + +static char text[] = + "provides a command to enable SCP03 and provision the SCP03 keys\n" + " enable - enable SCP03 on the TEE\n" + " provision - provision SCP03 on the TEE\n"; + +U_BOOT_CMD_WITH_SUBCMDS(scp03, "Secure Channel Protocol 03 control", text, + U_BOOT_SUBCMD_MKENT(enable, 1, 1, do_scp03_enable), + U_BOOT_SUBCMD_MKENT(provision, 1, 1, do_scp03_provision)); + From patchwork Tue Feb 9 20:10:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438650 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=EK67OS1g; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvDR5QgNz9sCD for ; Wed, 10 Feb 2021 07:11:35 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 246CF82A54; Tue, 9 Feb 2021 21:11:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="EK67OS1g"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BEED582AAA; Tue, 9 Feb 2021 21:10:53 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7236982AAA for ; Tue, 9 Feb 2021 21:10:44 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wm1-x331.google.com with SMTP id j11so4410077wmi.3 for ; Tue, 09 Feb 2021 12:10:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ngwfLorTKmlyJWQMMFaeTqN5Sc3z161KaBCynHKL3+0=; b=EK67OS1gTx1qe1aS1nu4FtkFMqyuT/8B+5kaONWn2TVbjeuujHH9T23dRRn3N3jVv3 5FjOeO6dERCo5yFIRck2A24KS37cqQNiM9UhENh694CTpT8f6qI9v3U75zofi+tcLZwY hxGqz2mX+Wyl3nK+iHCC6nOSE0TFt9jG/0GHLcO93XwC8xManp2gSemGwhRib/Kpk+ei qK0iH5mPbcBp9m/xzpBHzi1a6m2xlGcyMG9n85/h28t3gjCs6go6ZPPGFQ5CS5DdgOyc EtyNNCgq0KK+eDUXsaPJaT/pogelutgl5AKDyegwkoEAb0u3+PRJl08u5fhZX645M1pT ZpVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ngwfLorTKmlyJWQMMFaeTqN5Sc3z161KaBCynHKL3+0=; b=ZpMZAPcWrM7MrRL2lN7ynv39xx/nCBl41SWQ46BFrgMW3/eAhFiQHECX6XXGDDZuTp z3F/7EolSQJN5aH987dNOn1PSIVXnhOY2VR4BIf76qfvoTWha8hh0f2HkJUQC1xZeymW y8aztIYvLbPn2xENsOH2PCCumd6IYfpviv1s7+XGNmBAEjkmdTjQ1AWRBLqGsvoF4Y58 3kZwJGFxjywlFVIucghJIf1vqYpGM7NusUNB5kP5OhyoFfwZcIEqfvMqtq6PTZTsJkUY aOjRNUpwQKOflE+3dY4O2MYvBtRazsZB+s4wbAWCHcl+tZgpgCbtc7sg35PvmwtNdIMr aZ/Q== X-Gm-Message-State: AOAM532DhNIKkp1U5KouBkjd6Ju9YDG1lrCwk5LOyCT3ETIcqkxd4J+N xejZsbiqJYd6fujoKY1WAL76xw== X-Google-Smtp-Source: ABdhPJzVUR8/7kcQgjXSDbYAdhB0V3zvZ83QmSH8pCKStnYMVJHxvoF9TlOV6gtM2U9njC2X5rGRQg== X-Received: by 2002:a1c:1f4d:: with SMTP id f74mr5188017wmf.12.1612901443985; Tue, 09 Feb 2021 12:10:43 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:43 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 3/6] drivers: tee: sandbox: SCP03 control emulator Date: Tue, 9 Feb 2021 21:10:35 +0100 Message-Id: <20210209201038.28747-3-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210209201038.28747-1-jorge@foundries.io> References: <20210209201038.28747-1-jorge@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean Adds support for a working SCP03 emulation. Input parameters are validated however the commands (enable, provision) executed by the TEE are assumed to always succeed. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Simon Glass --- drivers/tee/optee/Kconfig | 6 +++++ drivers/tee/sandbox.c | 57 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/drivers/tee/optee/Kconfig b/drivers/tee/optee/Kconfig index d489834df9..98988c38f0 100644 --- a/drivers/tee/optee/Kconfig +++ b/drivers/tee/optee/Kconfig @@ -22,6 +22,12 @@ config OPTEE_TA_AVB The TA can support the "avb" subcommands "read_rb", "write"rb" and "is_unlocked". +config OPTEE_TA_SCP03 + bool "Support SCP03 TA" + default y + help + Enables support for controlling (enabling, provisioning) the + Secure Channel Protocol 03 operation in the OP-TEE SCP03 TA. endmenu endif diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c index e1ba027fd6..f25cdd47e4 100644 --- a/drivers/tee/sandbox.c +++ b/drivers/tee/sandbox.c @@ -7,6 +7,7 @@ #include #include #include +#include /* * The sandbox tee driver tries to emulate a generic Trusted Exectution @@ -32,7 +33,7 @@ struct ta_entry { struct tee_param *params); }; -#ifdef CONFIG_OPTEE_TA_AVB +#if defined(CONFIG_OPTEE_TA_SCP03) || defined(CONFIG_OPTEE_TA_AVB) static u32 get_attr(uint n, uint num_params, struct tee_param *params) { if (n >= num_params) @@ -44,7 +45,7 @@ static u32 get_attr(uint n, uint num_params, struct tee_param *params) static u32 check_params(u8 p0, u8 p1, u8 p2, u8 p3, uint num_params, struct tee_param *params) { - u8 p[] = { p0, p1, p2, p3}; + u8 p[] = { p0, p1, p2, p3 }; uint n; for (n = 0; n < ARRAY_SIZE(p); n++) @@ -62,6 +63,52 @@ bad_params: return TEE_ERROR_BAD_PARAMETERS; } +#endif + +#ifdef CONFIG_OPTEE_TA_SCP03 +static u32 pta_scp03_open_session(struct udevice *dev, uint num_params, + struct tee_param *params) +{ + /* + * We don't expect additional parameters when opening a session to + * this TA. + */ + return check_params(TEE_PARAM_ATTR_TYPE_NONE, TEE_PARAM_ATTR_TYPE_NONE, + TEE_PARAM_ATTR_TYPE_NONE, TEE_PARAM_ATTR_TYPE_NONE, + num_params, params); +} + +static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params, + struct tee_param *params) +{ + u32 res; + static bool enabled; + + switch (func) { + case PTA_CMD_ENABLE_SCP03: + res = check_params(TEE_PARAM_ATTR_TYPE_VALUE_INPUT, + TEE_PARAM_ATTR_TYPE_NONE, + TEE_PARAM_ATTR_TYPE_NONE, + TEE_PARAM_ATTR_TYPE_NONE, + num_params, params); + if (res) + return res; + + if (!enabled) { + enabled = true; + } else { + } + + if (params[0].u.value.a) + + return TEE_SUCCESS; + default: + return TEE_ERROR_NOT_SUPPORTED; + } +} +#endif + +#ifdef CONFIG_OPTEE_TA_AVB static u32 ta_avb_open_session(struct udevice *dev, uint num_params, struct tee_param *params) @@ -223,6 +270,12 @@ static const struct ta_entry ta_entries[] = { .invoke_func = ta_avb_invoke_func, }, #endif +#ifdef CONFIG_OPTEE_TA_SCP03 + { .uuid = PTA_SCP03_UUID, + .open_session = pta_scp03_open_session, + .invoke_func = pta_scp03_invoke_func, + }, +#endif }; static void sandbox_tee_get_version(struct udevice *dev, From patchwork Tue Feb 9 20:10:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438653 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=czNMcPph; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvDg4vLMz9s1l for ; Wed, 10 Feb 2021 07:11:47 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E62C782ABE; Tue, 9 Feb 2021 21:11:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="czNMcPph"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7200182AB7; Tue, 9 Feb 2021 21:10:56 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6B27782AB3 for ; Tue, 9 Feb 2021 21:10:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wm1-x32f.google.com with SMTP id w4so4421019wmi.4 for ; Tue, 09 Feb 2021 12:10:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M76zgkg51jsSiGaAz5wiwNelUViZSJPCbB0L4hflxDg=; b=czNMcPphIGNZOl0Y9Zzk/loV0j1jSTWQbj/XWyHXbQVsd/KfB7OTNvwk3MPxVKByOb Bc4/wFAZi6YyqqsjCRsjDoxjFf0p8+NfGvnPoTwPzmasLtGFFxrz4h2IyFTA9lACOgoH 1S0F6jN9Ri7OSxYxZo53WL/nNo0WSOzjdPv2iF8J2u1PQTAEF4K7XRbM7NwFlfvjmWrd lrRjLyuXbKOwm2qzCGTui3Ok3OlnMUfuQhmWbrttT5bpqy5ito0Q++6bT6NZiEEVR4k/ L/ZTq9cQYREfYOy62Plt+qKyfonEVDlYgMgiV/nohnoZp4ETsz7arkQRBbsGZn9rdZwM TxDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=M76zgkg51jsSiGaAz5wiwNelUViZSJPCbB0L4hflxDg=; b=pbAtpMw/SRm+qYZKv4p/4yZjXB3zH/YnmTyhKtA3trbYdZbPJ6bnqXI48Hvn0Kgzxf vRLE8xjja4+MTJGHU0MU/KThXjk42tDmFXEm+ssMPDpReRVLGa4QPKYoNeCoG5Ilbk5E 9wA+k0hmvntmPrsqLwmvw6sW/3W7a0hVMHMuFer1JAU9cFR+3QqBj1WHW/+OcxPVpR1d A8cL0xyzAiFOROV63NsC1TMGZ7YLJbTDxYml8kNnEU+pzOgKV9xhMhrjdLmlqrfOAdO/ Qbqi3C1YhnJ6e7P80XvAZqynC4YfUwub2Yb3xrnEmrUv8sxL7AnopZc8Lw0G7vHldYUW d+Pw== X-Gm-Message-State: AOAM531WpkzU7/X+bHptdDaY0TXrcWIqpZ23Ekq2tswYUvj2Qrv8VA5Y e78zAmLNhm0lj0e9JzZfonNeOg== X-Google-Smtp-Source: ABdhPJyRUuoTT4TLQgbbF5Frhr/TA5uNwNi73VnWDnEo57TnoQ6oH3lafGVsdzT6yS4CW7R+YIz2vg== X-Received: by 2002:a1c:c903:: with SMTP id f3mr5036138wmb.69.1612901445004; Tue, 09 Feb 2021 12:10:45 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:44 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 4/6] doc: describe the scp03 command Date: Tue, 9 Feb 2021 21:10:36 +0100 Message-Id: <20210209201038.28747-4-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210209201038.28747-1-jorge@foundries.io> References: <20210209201038.28747-1-jorge@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean The Secure Channel Protocol 03 command sends control requests (enable/provision) to the TEE implementing the protocol between the processor and the secure element. Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Simon Glass --- doc/usage/index.rst | 1 + doc/usage/scp03.rst | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 doc/usage/scp03.rst diff --git a/doc/usage/index.rst b/doc/usage/index.rst index 5754958d7e..fa1c4160b9 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -29,3 +29,4 @@ Shell commands pstore sbi true + scp03 diff --git a/doc/usage/scp03.rst b/doc/usage/scp03.rst new file mode 100644 index 0000000000..7ff87ed85a --- /dev/null +++ b/doc/usage/scp03.rst @@ -0,0 +1,33 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +scp03 command +============= + +Synopsis +-------- + +:: + + scp03 enable + scp03 provision + +Description +----------- + +The *scp03* command calls into a Trusted Application executing in a +Trusted Execution Environment to enable (if present) the Secure +Channel Protocol 03 stablished between the processor and the secure +element. + +This protocol encrypts all the communication between the processor and +the secure element using a set of pre-defined keys. These keys can be +rotated (provisioned) using the *provision* request. + +See also +-------- + +For some information on the internals implemented in the TEE, please +check the GlobalPlatform documentation on `Secure Channel Protocol '03'`_ + +.. _Secure Channel Protocol '03': + https://globalplatform.org/wp-content/uploads/2014/07/GPC_2.3_D_SCP03_v1.1.2_PublicRelease.pdf From patchwork Tue Feb 9 20:10:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438655 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=k8asTNaw; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvF95z6tz9s1l for ; Wed, 10 Feb 2021 07:12:13 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D51F882AED; Tue, 9 Feb 2021 21:11:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="k8asTNaw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E9A7482AC6; Tue, 9 Feb 2021 21:10:51 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7E89C82ABE for ; Tue, 9 Feb 2021 21:10:46 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wm1-x32a.google.com with SMTP id o10so2392117wmc.1 for ; Tue, 09 Feb 2021 12:10:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6T5BDZMSxydYlchC9aG21XxBviV5UOY8Itme+Om7PjQ=; b=k8asTNawr1NvnxeSiimt9h/gd77u5RQvFhNVGjzO5Iab9vl1AKqJLaEYESLyCiDYeF DnKm2IZtHg+1z6jPkoJG0spkbqdpqPh5Y+hfHez6axUukIZFyVHnId9esjyi53GAx4u5 Gf+DNdUNl3mvzk+6kXogsCtr8us44sH/ysBBh61W0Nr0oPwzqNQJGMewkm/wrGRw6Q0G ywbOOvuOFbHEkklX1U1PVRGqQ+J64BJe/m/vIzMfhglotIotkOU7n6oJncGxchWPr3/I njkRdUtLraMzFG3esKRXFGggiXYpo/gtOMm0AaEls8Nb3uMs76Yzogsx0eTr1rH7c4H8 YRkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6T5BDZMSxydYlchC9aG21XxBviV5UOY8Itme+Om7PjQ=; b=Ua5mdtmEjYU5Wlk5eabCsYIhGiJHzoFXM+gL2eiJ+eihs3wYsVDKkWcWe4BFWzj/Vh Cqf2TvoS3PGb+lU4rra51yvJ6kN+wU9X66pBSYHwuGRxbh2FlHX37HcWio+8tRGbFjiq bnfVoglP4OC8qiaUetMdG5GpbqCz+8goIRABfzCyG6zJ9MlalcknZpePYmNs5EJA9CeV yF40xfyak7Rfqq5XXZPFkfla8TocKh5EfXYMlTTQXWL68KpiYgxDizsjznh4zLM8biNZ X/G3mzDDBq09QOBZoR1Z3WsDbratPwFYyhOfkCH3XpoHQWf4qZLp18JLFqqMGvSBgjXW V5qg== X-Gm-Message-State: AOAM5308tZyD1dHHN2AS2flFECmFzyckziakoH2bVbWYaPAoZHxYTtVA qVEnDZOrQwdcQbuKyF3WjyP80Q== X-Google-Smtp-Source: ABdhPJyY/oBV8vHnsN9XTiqtTN56sToTcrhF4bGXl4cZUC28X0kpYtlDDmYynSM0PtK/h64mdn8Yuw== X-Received: by 2002:a1c:e903:: with SMTP id q3mr5125515wmc.100.1612901446164; Tue, 09 Feb 2021 12:10:46 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:45 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 5/6] sandbox: imply SCP03 and CMD_SCP03 Date: Tue, 9 Feb 2021 21:10:37 +0100 Message-Id: <20210209201038.28747-5-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210209201038.28747-1-jorge@foundries.io> References: <20210209201038.28747-1-jorge@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean From: Igor Opaniuk Enable by default SCP_03/CMD_SCP03 for sandbox target. Signed-off-by: Igor Opaniuk Reviewed-by: Simon Glass --- arch/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/Kconfig b/arch/Kconfig index 27843cd79c..7023223927 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -142,6 +142,8 @@ config SANDBOX imply AVB_VERIFY imply LIBAVB imply CMD_AVB + imply SCP03 + imply CMD_SCP03 imply UDP_FUNCTION_FASTBOOT imply VIRTIO_MMIO imply VIRTIO_PCI From patchwork Tue Feb 9 20:10:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1438654 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=Kt3HF2aw; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DZvDv4Pkhz9sCD for ; Wed, 10 Feb 2021 07:11:59 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7C29682ADC; Tue, 9 Feb 2021 21:11:46 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="Kt3HF2aw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E153182ACB; Tue, 9 Feb 2021 21:10:54 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A5B3282AB7 for ; Tue, 9 Feb 2021 21:10:47 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wm1-x333.google.com with SMTP id j21so4730381wmj.0 for ; Tue, 09 Feb 2021 12:10:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pMNHW9hzSZJYP9BJ8NfXBd+Ktyc8kuz7JtyZ3/isqq0=; b=Kt3HF2awRM+i3DkskA3PzVTjurwqhnhfJzrL4xCcCrcP+Pc6pa7QRvBBNF2GvaDuom wTVWtdf49wTH4Wzye4xhX3qfengSIf5WFkn1w9pzvfuLdurgsczxZ5kLs+pQtvdrTS7X b62WhBVCWxiuqVEukd3LunGS/yKHvbhc/a1NmEZFUyPQqRagFi0bufsGZiZnFYyonekq fmcKaW6a4+dOkdK/akEsNlslzwivIojDclWDacyEuJEpmQrxkosB9ExwuPLcSd3vVmLg CZSrXW9He3ux4NQyW4PIbif9kVepvUnQBX6a8rg9G7a4gJmE1uthuS5mL8+DJdlAA+nN PFrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pMNHW9hzSZJYP9BJ8NfXBd+Ktyc8kuz7JtyZ3/isqq0=; b=Mq2fRRseaQsz7hOhBNw2IgDBOwsqrJbXle6yPz65sK/angtiIAWsSQAe3G1yW1ZS/n 2spA6F2O/eC3zDrk0wOzkSun78O0+ONvF8T3uLYREaA+ufktrOgRMBM3ZiFTWoE+d4eU 72T+ZscPcTaWpGwFQdcYgNfc2T9USGSe63UDvM0swrUW89mVcpiTkuWXFDc3HOg2tb/c ub7JtBtBis2n73ztxNI2Ap7rdvQWADyhs/FhWsZgDmgvzvZB3A0pXnUJVf1aVXmVZIq6 twCuTO+5FiOmfiTNcF+S46UDQ2qzSSH+we64BblHgHe3CMP4ZBO4R3wtnLWNMgzTXrLE tSQA== X-Gm-Message-State: AOAM531iEfVUmDURgLEziKl7QBbvRu/wzI/14QY1Y0CagJKjXDYQCcGW JW7dAZDXqtG9p4Z/9TYXkO3hsg== X-Google-Smtp-Source: ABdhPJyJ3zxWhNYgh1ho+rxQ8dSBytUXltreqk5gRmueKwmDj8FrIUlgZYiyp9ZsscqF5pt48Mj5pA== X-Received: by 2002:a7b:cc98:: with SMTP id p24mr5076249wma.113.1612901447268; Tue, 09 Feb 2021 12:10:47 -0800 (PST) Received: from localhost.localdomain (182.red-79-146-86.dynamicip.rima-tde.net. [79.146.86.182]) by smtp.gmail.com with ESMTPSA id r17sm37951601wro.46.2021.02.09.12.10.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 12:10:46 -0800 (PST) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org Cc: igor.opaniuk@foundries.io, u-boot@lists.denx.de Subject: [PATCHv5 6/6] test: py: add initial coverage for scp03 cmd Date: Tue, 9 Feb 2021 21:10:38 +0100 Message-Id: <20210209201038.28747-6-jorge@foundries.io> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210209201038.28747-1-jorge@foundries.io> References: <20210209201038.28747-1-jorge@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.102.3 at phobos.denx.de X-Virus-Status: Clean From: Igor Opaniuk Add initial test coverage for SCP03 command. Signed-off-by: Igor Opaniuk Reviewed-by: Simon Glass --- test/py/tests/test_scp03.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 test/py/tests/test_scp03.py diff --git a/test/py/tests/test_scp03.py b/test/py/tests/test_scp03.py new file mode 100644 index 0000000000..1f689252dd --- /dev/null +++ b/test/py/tests/test_scp03.py @@ -0,0 +1,27 @@ +# Copyright (c) 2021 Foundries.io Ltd +# +# SPDX-License-Identifier: GPL-2.0+ +# +# SCP03 command test + +""" +This tests SCP03 command in U-boot. + +For additional details check doc/usage/scp03.rst +""" + +import pytest +import u_boot_utils as util + +@pytest.mark.buildconfigspec('cmd_scp03') +def test_scp03(u_boot_console): + """Enable and provision keys with SCP03 + """ + + success_str1 = "SCP03 is enabled" + success_str2 = "SCP03 is provisioned" + + response = u_boot_console.run_command('scp03 enable') + assert success_str1 in response + response = u_boot_console.run_command('scp03 provision') + assert success_str2 in response