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 X-Spam-Level: X-Spam-Status: No, score=-21.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0AD69C433E0 for ; Thu, 21 Jan 2021 15:26:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CC32D239EB for ; Thu, 21 Jan 2021 15:26:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732664AbhAUP0t (ORCPT ); Thu, 21 Jan 2021 10:26:49 -0500 Received: from mail.kernel.org ([198.145.29.99]:43296 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732749AbhAUPZk (ORCPT ); Thu, 21 Jan 2021 10:25:40 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3A4D0239FD; Thu, 21 Jan 2021 15:24:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611242698; bh=L0Pud472BRi3AshF8Fh1sZebxJpxTvi4JjsH97V1n0E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZrhjxAjc98/bKTQk+eMROsePSSRbA2Y3MH2aj7CeZoqoJBhDHUK6zjbfXjcOxmT1b qoec7YI0r21Enc9SRmG6c+LyyzGdLs53sGd2b3Mxy1B/u331twBawkimCt80nlH11O u3BYTQDD8XtJDhqr3nRa5Z3JzR1yN7JHkFDIobuakIkVrzg+rc3/Fd43LfnWsPlCNu 15NUhlRVTGbyjFpNRFCK3fJEDBHOFpSBQj1VZRiV5JnwBgWgGnwn3fS4d8nE438be8 t9W0L/7Ce4fd1L+yqnSBzaHPkkrtcnb8Ik1m3Mm/fi8m9miDzHoZ/hT5rTm5vMBUN5 jZpbp+mg4kPQA== Date: Thu, 21 Jan 2021 17:24:56 +0200 From: Jarkko Sakkinen To: Jerome Forissier Cc: Sumit Garg , "open list:SECURITY SUBSYSTEM" , Daniel Thompson , op-tee@lists.trustedfirmware.org, Jonathan Corbet , James Bottomley , Janne Karhunen , Linux Doc Mailing List , James Morris , Mimi Zohar , Linux Kernel Mailing List , David Howells , Luke Hinds , "open list:ASYMMETRIC KEYS" , Jarkko Sakkinen , Casey Schaufler , linux-integrity@vger.kernel.org, linux-arm-kernel , "Serge E. Hallyn" Subject: Re: [PATCH v8 2/4] KEYS: trusted: Introduce TEE based Trusted Keys Message-ID: References: <01000177223f74d3-1eef7685-4a19-40d2-ace6-d4cd7f35579d-000000@email.amazonses.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: keyrings@vger.kernel.org On Thu, Jan 21, 2021 at 05:07:42PM +0200, Jarkko Sakkinen wrote: > On Thu, Jan 21, 2021 at 09:44:07AM +0100, Jerome Forissier wrote: > > > > > > On 1/21/21 1:02 AM, Jarkko Sakkinen via OP-TEE wrote: > > > On Wed, Jan 20, 2021 at 12:53:28PM +0530, Sumit Garg wrote: > > >> On Wed, 20 Jan 2021 at 07:01, Jarkko Sakkinen wrote: > > >>> > > >>> On Tue, Jan 19, 2021 at 12:30:42PM +0200, Jarkko Sakkinen wrote: > > >>>> On Fri, Jan 15, 2021 at 11:32:31AM +0530, Sumit Garg wrote: > > >>>>> On Thu, 14 Jan 2021 at 07:35, Jarkko Sakkinen wrote: > > >>>>>> > > >>>>>> On Wed, Jan 13, 2021 at 04:47:00PM +0530, Sumit Garg wrote: > > >>>>>>> Hi Jarkko, > > >>>>>>> > > >>>>>>> On Mon, 11 Jan 2021 at 22:05, Jarkko Sakkinen wrote: > > >>>>>>>> > > >>>>>>>> On Tue, Nov 03, 2020 at 09:31:44PM +0530, Sumit Garg wrote: > > >>>>>>>>> Add support for TEE based trusted keys where TEE provides the functionality > > >>>>>>>>> to seal and unseal trusted keys using hardware unique key. > > >>>>>>>>> > > >>>>>>>>> Refer to Documentation/tee.txt for detailed information about TEE. > > >>>>>>>>> > > >>>>>>>>> Signed-off-by: Sumit Garg > > >>>>>>>> > > >>>>>>>> I haven't yet got QEMU environment working with aarch64, this produces > > >>>>>>>> just a blank screen: > > >>>>>>>> > > >>>>>>>> ./output/host/usr/bin/qemu-system-aarch64 -M virt -cpu cortex-a53 -smp 1 -kernel output/images/Image -initrd output/images/rootfs.cpio -serial stdio > > >>>>>>>> > > >>>>>>>> My BuildRoot fork for TPM and keyring testing is located over here: > > >>>>>>>> > > >>>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/buildroot-tpmdd.git/ > > >>>>>>>> > > >>>>>>>> The "ARM version" is at this point in aarch64 branch. Over time I will > > >>>>>>>> define tpmdd-x86_64 and tpmdd-aarch64 boards and everything will be then > > >>>>>>>> in the master branch. > > >>>>>>>> > > >>>>>>>> To create identical images you just need to > > >>>>>>>> > > >>>>>>>> $ make tpmdd_defconfig && make > > >>>>>>>> > > >>>>>>>> Can you check if you see anything obviously wrong? I'm eager to test this > > >>>>>>>> patch set, and in bigger picture I really need to have ready to run > > >>>>>>>> aarch64 environment available. > > >>>>>>> > > >>>>>>> I would rather suggest you to follow steps listed here [1] as to test > > >>>>>>> this feature on Qemu aarch64 we need to build firmwares such as TF-A, > > >>>>>>> OP-TEE, UEFI etc. which are all integrated into OP-TEE Qemu build > > >>>>>>> system [2]. And then it would be easier to migrate them to your > > >>>>>>> buildroot environment as well. > > >>>>>>> > > >>>>>>> [1] https://lists.trustedfirmware.org/pipermail/op-tee/2020-May/000027.html > > >>>>>>> [2] https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8 > > >>>>>>> > > >>>>>>> -Sumit > > >>>>>> > > >>>>>> Can you provide 'keyctl_change'? Otherwise, the steps are easy to follow. > > >>>>>> > > >>>>> > > >>>>> $ cat keyctl_change > > >>>>> diff --git a/common.mk b/common.mk > > >>>>> index aeb7b41..663e528 100644 > > >>>>> --- a/common.mk > > >>>>> +++ b/common.mk > > >>>>> @@ -229,6 +229,7 @@ BR2_PACKAGE_OPTEE_TEST_SDK ?= $(OPTEE_OS_TA_DEV_KIT_DIR) > > >>>>> BR2_PACKAGE_OPTEE_TEST_SITE ?= $(OPTEE_TEST_PATH) > > >>>>> BR2_PACKAGE_STRACE ?= y > > >>>>> BR2_TARGET_GENERIC_GETTY_PORT ?= $(if > > >>>>> $(CFG_NW_CONSOLE_UART),ttyAMA$(CFG_NW_CONSOLE_UART),ttyAMA0) > > >>>>> +BR2_PACKAGE_KEYUTILS := y > > >>>>> > > >>>>> # All BR2_* variables from the makefile or the environment are appended to > > >>>>> # ../out-br/extra.conf. All values are quoted "..." except y and n. > > >>>>> diff --git a/kconfigs/qemu.conf b/kconfigs/qemu.conf > > >>>>> index 368c18a..832ab74 100644 > > >>>>> --- a/kconfigs/qemu.conf > > >>>>> +++ b/kconfigs/qemu.conf > > >>>>> @@ -20,3 +20,5 @@ CONFIG_9P_FS=y > > >>>>> CONFIG_9P_FS_POSIX_ACL=y > > >>>>> CONFIG_HW_RANDOM=y > > >>>>> CONFIG_HW_RANDOM_VIRTIO=y > > >>>>> +CONFIG_TRUSTED_KEYS=y > > >>>>> +CONFIG_ENCRYPTED_KEYS=y > > >>>>> > > >>>>>> After I've successfully tested 2/4, I'd suggest that you roll out one more > > >>>>>> version and CC the documentation patch to Elaine and Mini, and clearly > > >>>>>> remark in the commit message that TEE is a standard, with a link to the > > >>>>>> specification. > > >>>>>> > > >>>>> > > >>>>> Sure, I will roll out the next version after your testing. > > >>>> > > >>>> Thanks, I'll try this at instant, and give my feedback. > > >>> > > >>> I bump into this: > > >>> > > >>> $ make run-only > > >>> ln -sf /home/jarkko/devel/tpm/optee/build/../out-br/images/rootfs.cpio.gz /home/jarkko/devel/tpm/optee/build/../out/bin/ > > >>> ln: failed to create symbolic link '/home/jarkko/devel/tpm/optee/build/../out/bin/': No such file or directory > > >>> make: *** [Makefile:194: run-only] Error 1 > > >>> > > >> > > >> Could you check if the following directory tree is built after > > >> executing the below command? > > >> > > >> $ make -j`nproc` > > >> CFG_IN_TREE_EARLY_TAS=trusted_keys/f04a0fe7-1f5d-4b9b-abf7-619b85b4ce8c > > >> > > >> $ tree out/bin/ > > >> out/bin/ > > >> ├── bl1.bin -> /home/sumit/build/optee/build/../trusted-firmware-a/build/qemu/release/bl1.bin > > >> ├── bl2.bin -> /home/sumit/build/optee/build/../trusted-firmware-a/build/qemu/release/bl2.bin > > >> ├── bl31.bin -> > > >> /home/sumit/build/optee/build/../trusted-firmware-a/build/qemu/release/bl31.bin > > >> ├── bl32.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-header_v2.bin > > >> ├── bl32_extra1.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-pager_v2.bin > > >> ├── bl32_extra2.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-pageable_v2.bin > > >> ├── bl33.bin -> > > >> /home/sumit/build/optee/build/../edk2/Build/ArmVirtQemuKernel-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd > > >> ├── Image -> /home/sumit/build/optee/build/../linux/arch/arm64/boot/Image > > >> └── rootfs.cpio.gz -> > > >> /home/sumit/build/optee/build/../out-br/images/rootfs.cpio.gz > > >> > > >> 0 directories, 9 files > > >> > > >> -Sumit > > > > > > I actually spotted a build error that was unnoticed last time: > > > > > > make[2]: Entering directory '/home/jarkko/devel/tpm/optee/edk2/BaseTools/Tests' > > > /bin/sh: 1: python: not found > > > > > > I'd prefer not to install Python2. It has been EOL over a year. > > > > AFAIK, everything should build fine with Python3. On my Ubuntu 20.04 > > machine, this is accomplished by installing package "python-is-python3" > > (after uninstalling "python-is-python2" if need be). > > > > $ ls -l /usr/bin/python > > lrwxrwxrwx 1 root root 7 Apr 15 2020 /usr/bin/python -> python3 > > Right, just found about this in unrelated context :-) [*] > > Hope this will work out... > > [*] https://github.com/surge-synthesizer/surge/pull/3655 Now I get Traceback (most recent call last): File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", line 36, in allTests = GetAllTestsSuite() File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", line 33, in GetAllTestsSuite return unittest.TestSuite([GetCTestSuite(), GetPythonTestSuite()]) File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", line 25, in GetCTestSuite import CToolsTests File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/CToolsTests.py", line 22, in import TianoCompress File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/TianoCompress.py", line 69, in TheTestSuite = TestTools.MakeTheTestSuite(locals()) File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/TestTools.py", line 43, in MakeTheTestSuite for name, item in localItems.iteritems(): AttributeError: 'dict' object has no attribute 'iteritems' /Jarkko From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jarkko Sakkinen To: op-tee@lists.trustedfirmware.org Subject: Re: [PATCH v8 2/4] KEYS: trusted: Introduce TEE based Trusted Keys Date: Thu, 21 Jan 2021 17:24:56 +0200 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6646174389808026557==" List-Id: --===============6646174389808026557== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 21, 2021 at 05:07:42PM +0200, Jarkko Sakkinen wrote: > On Thu, Jan 21, 2021 at 09:44:07AM +0100, Jerome Forissier wrote: > >=20 > >=20 > > On 1/21/21 1:02 AM, Jarkko Sakkinen via OP-TEE wrote: > > > On Wed, Jan 20, 2021 at 12:53:28PM +0530, Sumit Garg wrote: > > >> On Wed, 20 Jan 2021 at 07:01, Jarkko Sakkinen wr= ote: > > >>> > > >>> On Tue, Jan 19, 2021 at 12:30:42PM +0200, Jarkko Sakkinen wrote: > > >>>> On Fri, Jan 15, 2021 at 11:32:31AM +0530, Sumit Garg wrote: > > >>>>> On Thu, 14 Jan 2021 at 07:35, Jarkko Sakkinen = wrote: > > >>>>>> > > >>>>>> On Wed, Jan 13, 2021 at 04:47:00PM +0530, Sumit Garg wrote: > > >>>>>>> Hi Jarkko, > > >>>>>>> > > >>>>>>> On Mon, 11 Jan 2021 at 22:05, Jarkko Sakkinen wrote: > > >>>>>>>> > > >>>>>>>> On Tue, Nov 03, 2020 at 09:31:44PM +0530, Sumit Garg wrote: > > >>>>>>>>> Add support for TEE based trusted keys where TEE provides the f= unctionality > > >>>>>>>>> to seal and unseal trusted keys using hardware unique key. > > >>>>>>>>> > > >>>>>>>>> Refer to Documentation/tee.txt for detailed information about T= EE. > > >>>>>>>>> > > >>>>>>>>> Signed-off-by: Sumit Garg > > >>>>>>>> > > >>>>>>>> I haven't yet got QEMU environment working with aarch64, this pr= oduces > > >>>>>>>> just a blank screen: > > >>>>>>>> > > >>>>>>>> ./output/host/usr/bin/qemu-system-aarch64 -M virt -cpu cortex-a5= 3 -smp 1 -kernel output/images/Image -initrd output/images/rootfs.cpio -seria= l stdio > > >>>>>>>> > > >>>>>>>> My BuildRoot fork for TPM and keyring testing is located over he= re: > > >>>>>>>> > > >>>>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/buildroot= -tpmdd.git/ > > >>>>>>>> > > >>>>>>>> The "ARM version" is at this point in aarch64 branch. Over time = I will > > >>>>>>>> define tpmdd-x86_64 and tpmdd-aarch64 boards and everything will= be then > > >>>>>>>> in the master branch. > > >>>>>>>> > > >>>>>>>> To create identical images you just need to > > >>>>>>>> > > >>>>>>>> $ make tpmdd_defconfig && make > > >>>>>>>> > > >>>>>>>> Can you check if you see anything obviously wrong? I'm eager to = test this > > >>>>>>>> patch set, and in bigger picture I really need to have ready to = run > > >>>>>>>> aarch64 environment available. > > >>>>>>> > > >>>>>>> I would rather suggest you to follow steps listed here [1] as to = test > > >>>>>>> this feature on Qemu aarch64 we need to build firmwares such as T= F-A, > > >>>>>>> OP-TEE, UEFI etc. which are all integrated into OP-TEE Qemu build > > >>>>>>> system [2]. And then it would be easier to migrate them to your > > >>>>>>> buildroot environment as well. > > >>>>>>> > > >>>>>>> [1] https://lists.trustedfirmware.org/pipermail/op-tee/2020-May/0= 00027.html > > >>>>>>> [2] https://optee.readthedocs.io/en/latest/building/devices/qemu.= html#qemu-v8 > > >>>>>>> > > >>>>>>> -Sumit > > >>>>>> > > >>>>>> Can you provide 'keyctl_change'? Otherwise, the steps are easy to = follow. > > >>>>>> > > >>>>> > > >>>>> $ cat keyctl_change > > >>>>> diff --git a/common.mk b/common.mk > > >>>>> index aeb7b41..663e528 100644 > > >>>>> --- a/common.mk > > >>>>> +++ b/common.mk > > >>>>> @@ -229,6 +229,7 @@ BR2_PACKAGE_OPTEE_TEST_SDK ?=3D $(OPTEE_OS_TA_D= EV_KIT_DIR) > > >>>>> BR2_PACKAGE_OPTEE_TEST_SITE ?=3D $(OPTEE_TEST_PATH) > > >>>>> BR2_PACKAGE_STRACE ?=3D y > > >>>>> BR2_TARGET_GENERIC_GETTY_PORT ?=3D $(if > > >>>>> $(CFG_NW_CONSOLE_UART),ttyAMA$(CFG_NW_CONSOLE_UART),ttyAMA0) > > >>>>> +BR2_PACKAGE_KEYUTILS :=3D y > > >>>>> > > >>>>> # All BR2_* variables from the makefile or the environment are app= ended to > > >>>>> # ../out-br/extra.conf. All values are quoted "..." except y and n. > > >>>>> diff --git a/kconfigs/qemu.conf b/kconfigs/qemu.conf > > >>>>> index 368c18a..832ab74 100644 > > >>>>> --- a/kconfigs/qemu.conf > > >>>>> +++ b/kconfigs/qemu.conf > > >>>>> @@ -20,3 +20,5 @@ CONFIG_9P_FS=3Dy > > >>>>> CONFIG_9P_FS_POSIX_ACL=3Dy > > >>>>> CONFIG_HW_RANDOM=3Dy > > >>>>> CONFIG_HW_RANDOM_VIRTIO=3Dy > > >>>>> +CONFIG_TRUSTED_KEYS=3Dy > > >>>>> +CONFIG_ENCRYPTED_KEYS=3Dy > > >>>>> > > >>>>>> After I've successfully tested 2/4, I'd suggest that you roll out = one more > > >>>>>> version and CC the documentation patch to Elaine and Mini, and cle= arly > > >>>>>> remark in the commit message that TEE is a standard, with a link t= o the > > >>>>>> specification. > > >>>>>> > > >>>>> > > >>>>> Sure, I will roll out the next version after your testing. > > >>>> > > >>>> Thanks, I'll try this at instant, and give my feedback. > > >>> > > >>> I bump into this: > > >>> > > >>> $ make run-only > > >>> ln -sf /home/jarkko/devel/tpm/optee/build/../out-br/images/rootfs.cpi= o.gz /home/jarkko/devel/tpm/optee/build/../out/bin/ > > >>> ln: failed to create symbolic link '/home/jarkko/devel/tpm/optee/buil= d/../out/bin/': No such file or directory > > >>> make: *** [Makefile:194: run-only] Error 1 > > >>> > > >> > > >> Could you check if the following directory tree is built after > > >> executing the below command? > > >> > > >> $ make -j`nproc` > > >> CFG_IN_TREE_EARLY_TAS=3Dtrusted_keys/f04a0fe7-1f5d-4b9b-abf7-619b85b4c= e8c > > >> > > >> $ tree out/bin/ > > >> out/bin/ > > >> =E2=94=9C=E2=94=80=E2=94=80 bl1.bin -> /home/sumit/build/optee/build/.= ./trusted-firmware-a/build/qemu/release/bl1.bin > > >> =E2=94=9C=E2=94=80=E2=94=80 bl2.bin -> /home/sumit/build/optee/build/.= ./trusted-firmware-a/build/qemu/release/bl2.bin > > >> =E2=94=9C=E2=94=80=E2=94=80 bl31.bin -> > > >> /home/sumit/build/optee/build/../trusted-firmware-a/build/qemu/release= /bl31.bin > > >> =E2=94=9C=E2=94=80=E2=94=80 bl32.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-header_v2.b= in > > >> =E2=94=9C=E2=94=80=E2=94=80 bl32_extra1.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-pager_v2.bin > > >> =E2=94=9C=E2=94=80=E2=94=80 bl32_extra2.bin -> > > >> /home/sumit/build/optee/build/../optee_os/out/arm/core/tee-pageable_v2= .bin > > >> =E2=94=9C=E2=94=80=E2=94=80 bl33.bin -> > > >> /home/sumit/build/optee/build/../edk2/Build/ArmVirtQemuKernel-AARCH64/= RELEASE_GCC49/FV/QEMU_EFI.fd > > >> =E2=94=9C=E2=94=80=E2=94=80 Image -> /home/sumit/build/optee/build/../= linux/arch/arm64/boot/Image > > >> =E2=94=94=E2=94=80=E2=94=80 rootfs.cpio.gz -> > > >> /home/sumit/build/optee/build/../out-br/images/rootfs.cpio.gz > > >> > > >> 0 directories, 9 files > > >> > > >> -Sumit > > >=20 > > > I actually spotted a build error that was unnoticed last time: > > >=20 > > > make[2]: Entering directory '/home/jarkko/devel/tpm/optee/edk2/BaseTool= s/Tests' > > > /bin/sh: 1: python: not found > > >=20 > > > I'd prefer not to install Python2. It has been EOL over a year. > >=20 > > AFAIK, everything should build fine with Python3. On my Ubuntu 20.04 > > machine, this is accomplished by installing package "python-is-python3" > > (after uninstalling "python-is-python2" if need be). > >=20 > > $ ls -l /usr/bin/python > > lrwxrwxrwx 1 root root 7 Apr 15 2020 /usr/bin/python -> python3 >=20 > Right, just found about this in unrelated context :-) [*] >=20 > Hope this will work out... >=20 > [*] https://github.com/surge-synthesizer/surge/pull/3655 Now I get Traceback (most recent call last): File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", li= ne 36, in allTests =3D GetAllTestsSuite() File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", li= ne 33, in GetAllTestsSuite return unittest.TestSuite([GetCTestSuite(), GetPythonTestSuite()]) File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/RunTests.py", li= ne 25, in GetCTestSuite import CToolsTests File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/CToolsTests.py",= line 22, in import TianoCompress File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/TianoCompress.py= ", line 69, in TheTestSuite =3D TestTools.MakeTheTestSuite(locals()) File "/home/jarkko/Projects/tpm/optee/edk2/BaseTools/Tests/TestTools.py", l= ine 43, in MakeTheTestSuite for name, item in localItems.iteritems(): AttributeError: 'dict' object has no attribute 'iteritems' /Jarkko --===============6646174389808026557==-- 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 X-Spam-Level: X-Spam-Status: No, score=-19.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A214C433DB for ; Thu, 21 Jan 2021 15:26:54 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B8C76239EB for ; Thu, 21 Jan 2021 15:26:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B8C76239EB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=klwAxt8iG1u/quLm/zCPhGFg+m2IgXeoPw11dVUR7IY=; b=tZdtDQUWXAhM25xAxt9VNtYQi Xvxbka5Asb3Lz9uIFw2Fqn7ePakmJpFy++9fEvGoZNBSUpXBa19eWlQgtfmBcscJWlwL7cKyDCXi4 p3r3mAH7k25ArShu/+80Wjq5Sq84IM0Syrul0gG+OU2FPQglqCYCN6R0GWXvl+gdvWAqTrFtoqugI HyOZUtffe2AebCscttYjbWW3EYPQpI/3OaS6JjMG3y5UKiKmxtIZl/mNrNVJizsEAbRGzXUQ+3NAP HAckneEzw2K4744Xq8rD3UBz3z5OX39Xb8sMUhQ8bBk4tJv0rjBhSkw+hf3vt14atvQcZzww/GGGt GFDtjQJjg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2bpW-0005zj-Ai; Thu, 21 Jan 2021 15:25:02 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2bpT-0005yv-FR for linux-arm-kernel@lists.infradead.org; Thu, 21 Jan 2021 15:25:00 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3A4D0239FD; Thu, 21 Jan 2021 15:24:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611242698; bh=L0Pud472BRi3AshF8Fh1sZebxJpxTvi4JjsH97V1n0E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZrhjxAjc98/bKTQk+eMROsePSSRbA2Y3MH2aj7CeZoqoJBhDHUK6zjbfXjcOxmT1b qoec7YI0r21Enc9SRmG6c+LyyzGdLs53sGd2b3Mxy1B/u331twBawkimCt80nlH11O u3BYTQDD8XtJDhqr3nRa5Z3JzR1yN7JHkFDIobuakIkVrzg+rc3/Fd43LfnWsPlCNu 15NUhlRVTGbyjFpNRFCK3fJEDBHOFpSBQj1VZRiV5JnwBgWgGnwn3fS4d8nE438be8 t9W0L/7Ce4fd1L+yqnSBzaHPkkrtcnb8Ik1m3Mm/fi8m9miDzHoZ/hT5rTm5vMBUN5 jZpbp+mg4kPQA== Date: Thu, 21 Jan 2021 17:24:56 +0200 From: Jarkko Sakkinen To: Jerome Forissier Subject: Re: [PATCH v8 2/4] KEYS: trusted: Introduce TEE based Trusted Keys Message-ID: References: <01000177223f74d3-1eef7685-4a19-40d2-ace6-d4cd7f35579d-000000@email.amazonses.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210121_102459_649217_E3570798 X-CRM114-Status: GOOD ( 34.80 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sumit Garg , Daniel Thompson , Jonathan Corbet , James Bottomley , Janne Karhunen , Linux Doc Mailing List , James Morris , Mimi Zohar , Linux Kernel Mailing List , David Howells , Casey Schaufler , "open list:SECURITY SUBSYSTEM" , op-tee@lists.trustedfirmware.org, "open list:ASYMMETRIC KEYS" , Jarkko Sakkinen , Luke Hinds , linux-integrity@vger.kernel.org, linux-arm-kernel , "Serge E. Hallyn" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBKYW4gMjEsIDIwMjEgYXQgMDU6MDc6NDJQTSArMDIwMCwgSmFya2tvIFNha2tpbmVu IHdyb3RlOgo+IE9uIFRodSwgSmFuIDIxLCAyMDIxIGF0IDA5OjQ0OjA3QU0gKzAxMDAsIEplcm9t ZSBGb3Jpc3NpZXIgd3JvdGU6Cj4gPiAKPiA+IAo+ID4gT24gMS8yMS8yMSAxOjAyIEFNLCBKYXJr a28gU2Fra2luZW4gdmlhIE9QLVRFRSB3cm90ZToKPiA+ID4gT24gV2VkLCBKYW4gMjAsIDIwMjEg YXQgMTI6NTM6MjhQTSArMDUzMCwgU3VtaXQgR2FyZyB3cm90ZToKPiA+ID4+IE9uIFdlZCwgMjAg SmFuIDIwMjEgYXQgMDc6MDEsIEphcmtrbyBTYWtraW5lbiA8amFya2tvQGtlcm5lbC5vcmc+IHdy b3RlOgo+ID4gPj4+Cj4gPiA+Pj4gT24gVHVlLCBKYW4gMTksIDIwMjEgYXQgMTI6MzA6NDJQTSAr MDIwMCwgSmFya2tvIFNha2tpbmVuIHdyb3RlOgo+ID4gPj4+PiBPbiBGcmksIEphbiAxNSwgMjAy MSBhdCAxMTozMjozMUFNICswNTMwLCBTdW1pdCBHYXJnIHdyb3RlOgo+ID4gPj4+Pj4gT24gVGh1 LCAxNCBKYW4gMjAyMSBhdCAwNzozNSwgSmFya2tvIFNha2tpbmVuIDxqYXJra29Aa2VybmVsLm9y Zz4gd3JvdGU6Cj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+PiBPbiBXZWQsIEphbiAxMywgMjAyMSBhdCAw NDo0NzowMFBNICswNTMwLCBTdW1pdCBHYXJnIHdyb3RlOgo+ID4gPj4+Pj4+PiBIaSBKYXJra28s Cj4gPiA+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+IE9uIE1vbiwgMTEgSmFuIDIwMjEgYXQgMjI6MDUsIEph cmtrbyBTYWtraW5lbiA8amFya2tvQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPj4+Pj4+Pj4KPiA+ ID4+Pj4+Pj4+IE9uIFR1ZSwgTm92IDAzLCAyMDIwIGF0IDA5OjMxOjQ0UE0gKzA1MzAsIFN1bWl0 IEdhcmcgd3JvdGU6Cj4gPiA+Pj4+Pj4+Pj4gQWRkIHN1cHBvcnQgZm9yIFRFRSBiYXNlZCB0cnVz dGVkIGtleXMgd2hlcmUgVEVFIHByb3ZpZGVzIHRoZSBmdW5jdGlvbmFsaXR5Cj4gPiA+Pj4+Pj4+ Pj4gdG8gc2VhbCBhbmQgdW5zZWFsIHRydXN0ZWQga2V5cyB1c2luZyBoYXJkd2FyZSB1bmlxdWUg a2V5Lgo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gUmVmZXIgdG8gRG9jdW1lbnRhdGlvbi90 ZWUudHh0IGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBURUUuCj4gPiA+Pj4+Pj4+Pj4K PiA+ID4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBTdW1pdCBHYXJnIDxzdW1pdC5nYXJnQGxpbmFy by5vcmc+Cj4gPiA+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4gSSBoYXZlbid0IHlldCBnb3QgUUVNVSBl bnZpcm9ubWVudCB3b3JraW5nIHdpdGggYWFyY2g2NCwgdGhpcyBwcm9kdWNlcwo+ID4gPj4+Pj4+ Pj4ganVzdCBhIGJsYW5rIHNjcmVlbjoKPiA+ID4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+PiAuL291dHB1 dC9ob3N0L3Vzci9iaW4vcWVtdS1zeXN0ZW0tYWFyY2g2NCAtTSB2aXJ0IC1jcHUgY29ydGV4LWE1 MyAtc21wIDEgLWtlcm5lbCBvdXRwdXQvaW1hZ2VzL0ltYWdlIC1pbml0cmQgb3V0cHV0L2ltYWdl cy9yb290ZnMuY3BpbyAtc2VyaWFsIHN0ZGlvCj4gPiA+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4gTXkg QnVpbGRSb290IGZvcmsgZm9yIFRQTSBhbmQga2V5cmluZyB0ZXN0aW5nIGlzIGxvY2F0ZWQgb3Zl ciBoZXJlOgo+ID4gPj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+IGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcv cHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2phcmtrby9idWlsZHJvb3QtdHBtZGQuZ2l0Lwo+ID4g Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+IFRoZSAiQVJNIHZlcnNpb24iIGlzIGF0IHRoaXMgcG9pbnQg aW4gYWFyY2g2NCBicmFuY2guIE92ZXIgdGltZSBJIHdpbGwKPiA+ID4+Pj4+Pj4+IGRlZmluZSB0 cG1kZC14ODZfNjQgYW5kIHRwbWRkLWFhcmNoNjQgYm9hcmRzIGFuZCBldmVyeXRoaW5nIHdpbGwg YmUgdGhlbgo+ID4gPj4+Pj4+Pj4gaW4gdGhlIG1hc3RlciBicmFuY2guCj4gPiA+Pj4+Pj4+Pgo+ ID4gPj4+Pj4+Pj4gVG8gY3JlYXRlIGlkZW50aWNhbCBpbWFnZXMgeW91IGp1c3QgbmVlZCB0bwo+ ID4gPj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+ICQgbWFrZSB0cG1kZF9kZWZjb25maWcgJiYgbWFrZQo+ ID4gPj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+IENhbiB5b3UgY2hlY2sgaWYgeW91IHNlZSBhbnl0aGlu ZyBvYnZpb3VzbHkgd3Jvbmc/IEknbSBlYWdlciB0byB0ZXN0IHRoaXMKPiA+ID4+Pj4+Pj4+IHBh dGNoIHNldCwgYW5kIGluIGJpZ2dlciBwaWN0dXJlIEkgcmVhbGx5IG5lZWQgdG8gaGF2ZSByZWFk eSB0byBydW4KPiA+ID4+Pj4+Pj4+IGFhcmNoNjQgZW52aXJvbm1lbnQgYXZhaWxhYmxlLgo+ID4g Pj4+Pj4+Pgo+ID4gPj4+Pj4+PiBJIHdvdWxkIHJhdGhlciBzdWdnZXN0IHlvdSB0byBmb2xsb3cg c3RlcHMgbGlzdGVkIGhlcmUgWzFdIGFzIHRvIHRlc3QKPiA+ID4+Pj4+Pj4gdGhpcyBmZWF0dXJl IG9uIFFlbXUgYWFyY2g2NCB3ZSBuZWVkIHRvIGJ1aWxkIGZpcm13YXJlcyBzdWNoIGFzIFRGLUEs Cj4gPiA+Pj4+Pj4+IE9QLVRFRSwgVUVGSSBldGMuIHdoaWNoIGFyZSBhbGwgaW50ZWdyYXRlZCBp bnRvIE9QLVRFRSBRZW11IGJ1aWxkCj4gPiA+Pj4+Pj4+IHN5c3RlbSBbMl0uIEFuZCB0aGVuIGl0 IHdvdWxkIGJlIGVhc2llciB0byBtaWdyYXRlIHRoZW0gdG8geW91cgo+ID4gPj4+Pj4+PiBidWls ZHJvb3QgZW52aXJvbm1lbnQgYXMgd2VsbC4KPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj4gWzFdIGh0 dHBzOi8vbGlzdHMudHJ1c3RlZGZpcm13YXJlLm9yZy9waXBlcm1haWwvb3AtdGVlLzIwMjAtTWF5 LzAwMDAyNy5odG1sCj4gPiA+Pj4+Pj4+IFsyXSBodHRwczovL29wdGVlLnJlYWR0aGVkb2NzLmlv L2VuL2xhdGVzdC9idWlsZGluZy9kZXZpY2VzL3FlbXUuaHRtbCNxZW11LXY4Cj4gPiA+Pj4+Pj4+ Cj4gPiA+Pj4+Pj4+IC1TdW1pdAo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gQ2FuIHlvdSBwcm92aWRl ICdrZXljdGxfY2hhbmdlJz8gT3RoZXJ3aXNlLCB0aGUgc3RlcHMgYXJlIGVhc3kgdG8gZm9sbG93 Lgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gJCBjYXQga2V5Y3RsX2NoYW5nZQo+ID4g Pj4+Pj4gZGlmZiAtLWdpdCBhL2NvbW1vbi5tayBiL2NvbW1vbi5tawo+ID4gPj4+Pj4gaW5kZXgg YWViN2I0MS4uNjYzZTUyOCAxMDA2NDQKPiA+ID4+Pj4+IC0tLSBhL2NvbW1vbi5tawo+ID4gPj4+ Pj4gKysrIGIvY29tbW9uLm1rCj4gPiA+Pj4+PiBAQCAtMjI5LDYgKzIyOSw3IEBAIEJSMl9QQUNL QUdFX09QVEVFX1RFU1RfU0RLID89ICQoT1BURUVfT1NfVEFfREVWX0tJVF9ESVIpCj4gPiA+Pj4+ PiAgQlIyX1BBQ0tBR0VfT1BURUVfVEVTVF9TSVRFID89ICQoT1BURUVfVEVTVF9QQVRIKQo+ID4g Pj4+Pj4gIEJSMl9QQUNLQUdFX1NUUkFDRSA/PSB5Cj4gPiA+Pj4+PiAgQlIyX1RBUkdFVF9HRU5F UklDX0dFVFRZX1BPUlQgPz0gJChpZgo+ID4gPj4+Pj4gJChDRkdfTldfQ09OU09MRV9VQVJUKSx0 dHlBTUEkKENGR19OV19DT05TT0xFX1VBUlQpLHR0eUFNQTApCj4gPiA+Pj4+PiArQlIyX1BBQ0tB R0VfS0VZVVRJTFMgOj0geQo+ID4gPj4+Pj4KPiA+ID4+Pj4+ICAjIEFsbCBCUjJfKiB2YXJpYWJs ZXMgZnJvbSB0aGUgbWFrZWZpbGUgb3IgdGhlIGVudmlyb25tZW50IGFyZSBhcHBlbmRlZCB0bwo+ ID4gPj4+Pj4gICMgLi4vb3V0LWJyL2V4dHJhLmNvbmYuIEFsbCB2YWx1ZXMgYXJlIHF1b3RlZCAi Li4uIiBleGNlcHQgeSBhbmQgbi4KPiA+ID4+Pj4+IGRpZmYgLS1naXQgYS9rY29uZmlncy9xZW11 LmNvbmYgYi9rY29uZmlncy9xZW11LmNvbmYKPiA+ID4+Pj4+IGluZGV4IDM2OGMxOGEuLjgzMmFi NzQgMTAwNjQ0Cj4gPiA+Pj4+PiAtLS0gYS9rY29uZmlncy9xZW11LmNvbmYKPiA+ID4+Pj4+ICsr KyBiL2tjb25maWdzL3FlbXUuY29uZgo+ID4gPj4+Pj4gQEAgLTIwLDMgKzIwLDUgQEAgQ09ORklH XzlQX0ZTPXkKPiA+ID4+Pj4+ICBDT05GSUdfOVBfRlNfUE9TSVhfQUNMPXkKPiA+ID4+Pj4+ICBD T05GSUdfSFdfUkFORE9NPXkKPiA+ID4+Pj4+ICBDT05GSUdfSFdfUkFORE9NX1ZJUlRJTz15Cj4g PiA+Pj4+PiArQ09ORklHX1RSVVNURURfS0VZUz15Cj4gPiA+Pj4+PiArQ09ORklHX0VOQ1JZUFRF RF9LRVlTPXkKPiA+ID4+Pj4+Cj4gPiA+Pj4+Pj4gQWZ0ZXIgSSd2ZSBzdWNjZXNzZnVsbHkgdGVz dGVkIDIvNCwgSSdkIHN1Z2dlc3QgdGhhdCB5b3Ugcm9sbCBvdXQgb25lIG1vcmUKPiA+ID4+Pj4+ PiB2ZXJzaW9uIGFuZCBDQyB0aGUgZG9jdW1lbnRhdGlvbiBwYXRjaCB0byBFbGFpbmUgYW5kIE1p bmksIGFuZCBjbGVhcmx5Cj4gPiA+Pj4+Pj4gcmVtYXJrIGluIHRoZSBjb21taXQgbWVzc2FnZSB0 aGF0IFRFRSBpcyBhIHN0YW5kYXJkLCB3aXRoIGEgbGluayB0byB0aGUKPiA+ID4+Pj4+PiBzcGVj aWZpY2F0aW9uLgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gU3VyZSwgSSB3aWxsIHJv bGwgb3V0IHRoZSBuZXh0IHZlcnNpb24gYWZ0ZXIgeW91ciB0ZXN0aW5nLgo+ID4gPj4+Pgo+ID4g Pj4+PiBUaGFua3MsIEknbGwgdHJ5IHRoaXMgYXQgaW5zdGFudCwgYW5kIGdpdmUgbXkgZmVlZGJh Y2suCj4gPiA+Pj4KPiA+ID4+PiBJIGJ1bXAgaW50byB0aGlzOgo+ID4gPj4+Cj4gPiA+Pj4gJCBt YWtlIHJ1bi1vbmx5Cj4gPiA+Pj4gbG4gLXNmIC9ob21lL2phcmtrby9kZXZlbC90cG0vb3B0ZWUv YnVpbGQvLi4vb3V0LWJyL2ltYWdlcy9yb290ZnMuY3Bpby5neiAvaG9tZS9qYXJra28vZGV2ZWwv dHBtL29wdGVlL2J1aWxkLy4uL291dC9iaW4vCj4gPiA+Pj4gbG46IGZhaWxlZCB0byBjcmVhdGUg c3ltYm9saWMgbGluayAnL2hvbWUvamFya2tvL2RldmVsL3RwbS9vcHRlZS9idWlsZC8uLi9vdXQv YmluLyc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKPiA+ID4+PiBtYWtlOiAqKiogW01ha2Vm aWxlOjE5NDogcnVuLW9ubHldIEVycm9yIDEKPiA+ID4+Pgo+ID4gPj4KPiA+ID4+IENvdWxkIHlv dSBjaGVjayBpZiB0aGUgZm9sbG93aW5nIGRpcmVjdG9yeSB0cmVlIGlzIGJ1aWx0IGFmdGVyCj4g PiA+PiBleGVjdXRpbmcgdGhlIGJlbG93IGNvbW1hbmQ/Cj4gPiA+Pgo+ID4gPj4gJCBtYWtlIC1q YG5wcm9jYAo+ID4gPj4gQ0ZHX0lOX1RSRUVfRUFSTFlfVEFTPXRydXN0ZWRfa2V5cy9mMDRhMGZl Ny0xZjVkLTRiOWItYWJmNy02MTliODViNGNlOGMKPiA+ID4+Cj4gPiA+PiAkIHRyZWUgb3V0L2Jp bi8KPiA+ID4+IG91dC9iaW4vCj4gPiA+PiDilJzilIDilIAgYmwxLmJpbiAtPiAvaG9tZS9zdW1p dC9idWlsZC9vcHRlZS9idWlsZC8uLi90cnVzdGVkLWZpcm13YXJlLWEvYnVpbGQvcWVtdS9yZWxl YXNlL2JsMS5iaW4KPiA+ID4+IOKUnOKUgOKUgCBibDIuYmluIC0+IC9ob21lL3N1bWl0L2J1aWxk L29wdGVlL2J1aWxkLy4uL3RydXN0ZWQtZmlybXdhcmUtYS9idWlsZC9xZW11L3JlbGVhc2UvYmwy LmJpbgo+ID4gPj4g4pSc4pSA4pSAIGJsMzEuYmluIC0+Cj4gPiA+PiAvaG9tZS9zdW1pdC9idWls ZC9vcHRlZS9idWlsZC8uLi90cnVzdGVkLWZpcm13YXJlLWEvYnVpbGQvcWVtdS9yZWxlYXNlL2Js MzEuYmluCj4gPiA+PiDilJzilIDilIAgYmwzMi5iaW4gLT4KPiA+ID4+IC9ob21lL3N1bWl0L2J1 aWxkL29wdGVlL2J1aWxkLy4uL29wdGVlX29zL291dC9hcm0vY29yZS90ZWUtaGVhZGVyX3YyLmJp bgo+ID4gPj4g4pSc4pSA4pSAIGJsMzJfZXh0cmExLmJpbiAtPgo+ID4gPj4gL2hvbWUvc3VtaXQv YnVpbGQvb3B0ZWUvYnVpbGQvLi4vb3B0ZWVfb3Mvb3V0L2FybS9jb3JlL3RlZS1wYWdlcl92Mi5i aW4KPiA+ID4+IOKUnOKUgOKUgCBibDMyX2V4dHJhMi5iaW4gLT4KPiA+ID4+IC9ob21lL3N1bWl0 L2J1aWxkL29wdGVlL2J1aWxkLy4uL29wdGVlX29zL291dC9hcm0vY29yZS90ZWUtcGFnZWFibGVf djIuYmluCj4gPiA+PiDilJzilIDilIAgYmwzMy5iaW4gLT4KPiA+ID4+IC9ob21lL3N1bWl0L2J1 aWxkL29wdGVlL2J1aWxkLy4uL2VkazIvQnVpbGQvQXJtVmlydFFlbXVLZXJuZWwtQUFSQ0g2NC9S RUxFQVNFX0dDQzQ5L0ZWL1FFTVVfRUZJLmZkCj4gPiA+PiDilJzilIDilIAgSW1hZ2UgLT4gL2hv bWUvc3VtaXQvYnVpbGQvb3B0ZWUvYnVpbGQvLi4vbGludXgvYXJjaC9hcm02NC9ib290L0ltYWdl Cj4gPiA+PiDilJTilIDilIAgcm9vdGZzLmNwaW8uZ3ogLT4KPiA+ID4+IC9ob21lL3N1bWl0L2J1 aWxkL29wdGVlL2J1aWxkLy4uL291dC1ici9pbWFnZXMvcm9vdGZzLmNwaW8uZ3oKPiA+ID4+Cj4g PiA+PiAwIGRpcmVjdG9yaWVzLCA5IGZpbGVzCj4gPiA+Pgo+ID4gPj4gLVN1bWl0Cj4gPiA+IAo+ ID4gPiBJIGFjdHVhbGx5IHNwb3R0ZWQgYSBidWlsZCBlcnJvciB0aGF0IHdhcyB1bm5vdGljZWQg bGFzdCB0aW1lOgo+ID4gPiAKPiA+ID4gbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvaG9t ZS9qYXJra28vZGV2ZWwvdHBtL29wdGVlL2VkazIvQmFzZVRvb2xzL1Rlc3RzJwo+ID4gPiAvYmlu L3NoOiAxOiBweXRob246IG5vdCBmb3VuZAo+ID4gPiAKPiA+ID4gSSdkIHByZWZlciBub3QgdG8g aW5zdGFsbCBQeXRob24yLiBJdCBoYXMgYmVlbiBFT0wgb3ZlciBhIHllYXIuCj4gPiAKPiA+IEFG QUlLLCBldmVyeXRoaW5nIHNob3VsZCBidWlsZCBmaW5lIHdpdGggUHl0aG9uMy4gT24gbXkgVWJ1 bnR1IDIwLjA0Cj4gPiBtYWNoaW5lLCB0aGlzIGlzIGFjY29tcGxpc2hlZCBieSBpbnN0YWxsaW5n IHBhY2thZ2UgInB5dGhvbi1pcy1weXRob24zIgo+ID4gKGFmdGVyIHVuaW5zdGFsbGluZyAicHl0 aG9uLWlzLXB5dGhvbjIiIGlmIG5lZWQgYmUpLgo+ID4gCj4gPiAkIGxzIC1sIC91c3IvYmluL3B5 dGhvbgo+ID4gbHJ3eHJ3eHJ3eCAxIHJvb3Qgcm9vdCA3IEFwciAxNSAgMjAyMCAvdXNyL2Jpbi9w eXRob24gLT4gcHl0aG9uMwo+IAo+IFJpZ2h0LCBqdXN0IGZvdW5kIGFib3V0IHRoaXMgaW4gdW5y ZWxhdGVkIGNvbnRleHQgOi0pIFsqXQo+IAo+IEhvcGUgdGhpcyB3aWxsIHdvcmsgb3V0Li4uCj4g Cj4gWypdIGh0dHBzOi8vZ2l0aHViLmNvbS9zdXJnZS1zeW50aGVzaXplci9zdXJnZS9wdWxsLzM2 NTUKCk5vdyBJIGdldAoKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUg Ii9ob21lL2phcmtrby9Qcm9qZWN0cy90cG0vb3B0ZWUvZWRrMi9CYXNlVG9vbHMvVGVzdHMvUnVu VGVzdHMucHkiLCBsaW5lIDM2LCBpbiA8bW9kdWxlPgogICAgYWxsVGVzdHMgPSBHZXRBbGxUZXN0 c1N1aXRlKCkKICBGaWxlICIvaG9tZS9qYXJra28vUHJvamVjdHMvdHBtL29wdGVlL2VkazIvQmFz ZVRvb2xzL1Rlc3RzL1J1blRlc3RzLnB5IiwgbGluZSAzMywgaW4gR2V0QWxsVGVzdHNTdWl0ZQog ICAgcmV0dXJuIHVuaXR0ZXN0LlRlc3RTdWl0ZShbR2V0Q1Rlc3RTdWl0ZSgpLCBHZXRQeXRob25U ZXN0U3VpdGUoKV0pCiAgRmlsZSAiL2hvbWUvamFya2tvL1Byb2plY3RzL3RwbS9vcHRlZS9lZGsy L0Jhc2VUb29scy9UZXN0cy9SdW5UZXN0cy5weSIsIGxpbmUgMjUsIGluIEdldENUZXN0U3VpdGUK ICAgIGltcG9ydCBDVG9vbHNUZXN0cwogIEZpbGUgIi9ob21lL2phcmtrby9Qcm9qZWN0cy90cG0v b3B0ZWUvZWRrMi9CYXNlVG9vbHMvVGVzdHMvQ1Rvb2xzVGVzdHMucHkiLCBsaW5lIDIyLCBpbiA8 bW9kdWxlPgogICAgaW1wb3J0IFRpYW5vQ29tcHJlc3MKICBGaWxlICIvaG9tZS9qYXJra28vUHJv amVjdHMvdHBtL29wdGVlL2VkazIvQmFzZVRvb2xzL1Rlc3RzL1RpYW5vQ29tcHJlc3MucHkiLCBs aW5lIDY5LCBpbiA8bW9kdWxlPgogICAgVGhlVGVzdFN1aXRlID0gVGVzdFRvb2xzLk1ha2VUaGVU ZXN0U3VpdGUobG9jYWxzKCkpCiAgRmlsZSAiL2hvbWUvamFya2tvL1Byb2plY3RzL3RwbS9vcHRl ZS9lZGsyL0Jhc2VUb29scy9UZXN0cy9UZXN0VG9vbHMucHkiLCBsaW5lIDQzLCBpbiBNYWtlVGhl VGVzdFN1aXRlCiAgICBmb3IgbmFtZSwgaXRlbSBpbiBsb2NhbEl0ZW1zLml0ZXJpdGVtcygpOgpB dHRyaWJ1dGVFcnJvcjogJ2RpY3QnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdpdGVyaXRlbXMn CgovSmFya2tvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==