From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.9477.1604656208901474023 for ; Fri, 06 Nov 2020 01:50:09 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=imCsjt+o; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: christopher.j.zurcher@intel.com) IronPort-SDR: xkkvS/2mkxp6SS/0eXMkxNujSpsz/LP9sIThp64eeTJoadsPvz5v4k8QJP/PVSplURZG5Buv/W EJEhQxm7pl2g== X-IronPort-AV: E=McAfee;i="6000,8403,9796"; a="157305658" X-IronPort-AV: E=Sophos;i="5.77,456,1596524400"; d="scan'208";a="157305658" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Nov 2020 01:50:07 -0800 IronPort-SDR: 3ETdyEjkh8Wd1G5PDqKQhPFyPuZmqzZ64Qp9O2ET8c6r40jQ6jRLYj18SlRYqYGkVOtjaEn3Gf JVhcvcCaHQfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,456,1596524400"; d="scan'208";a="539780781" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga005.jf.intel.com with ESMTP; 06 Nov 2020 01:50:07 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 6 Nov 2020 01:50:07 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 6 Nov 2020 01:50:06 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 6 Nov 2020 01:50:06 -0800 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.54) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 6 Nov 2020 01:50:06 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BZCl146Acrt87FPFJkeve/9EysA9JgnQi8+EKQltRebcWhOukgbcZlJTEw7Xjqw+6rAlQa5yfFI3djsl3dixQ7WPIhVyeNu9f73LG65OSEUBsj0kyOy8LWcI/Xu0+xJKuJa7DEhrGLwjCeJ9x6wzQO4718bNspjZuHVhZGLiH+jZIxkb+/vfcHHqC7BuEZYXzZQZ9OU3KCwCAPri9sdY/r07sQLsK7jEb/oyo48lCOHWzWvqq6ANCM2tGS4V+pcl3CkkfSSQgkIPBbF7N9ZjxZifmfXkcvXIVZZ3spj92s3kM9bspoAEg8xlcz3Eq0/dWM1NacSCmALcF1MB3tP1Rw== 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-SenderADCheck; bh=8c803OiprvtKFzdhClhdeMkQkLxSrdK/N4gck3RHVC4=; b=Q0mYhrDKqX8WpxkOxl/dX4kgFmFr8Oxnq9tvpdtT9mGg0wR1XLqcCoiwHxJR1hVjyVsYbDkSvUk91viGHiHB4W6M/0f3z+9cGocUu7xLYwRZ7Nei66TE9icptuz7/2kSw7bTaGEiwionrRZue1Ye4adcOqwjRI/5NhYYZwiX5jlBjoVm+7ZeVelq0RETCmpZhzR3i2n4UH5sQ63ZFXmQArYUP/mT7znuOYk+xRRdCeNtxJ05rXQpvt35uxKFIRd1Go5WWLO1l3oQWStklGCMKUmUbEPDYUDJZ6VCoMheG1p0YjzMK1yJiuvaep5jDbRTyRz9PqZ3LfqznoiRYsDeZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8c803OiprvtKFzdhClhdeMkQkLxSrdK/N4gck3RHVC4=; b=imCsjt+ohyLkeV6UohxTjTu1sEkuIRCzRVl+d4QV9wJEMZGeGgINzZMcRPYcYapTgaNSch66EXgf9GpO9dAjkD9meEGQB9S4JyuICrbL8iHn5V1MHkBogAE20eyDtxHSzv+E2E/waRq+jOqXbd2XycxNLDbkMaZL42qbQMqPU9Q= Received: from MWHPR1101MB2125.namprd11.prod.outlook.com (2603:10b6:301:4d::10) by MWHPR11MB1823.namprd11.prod.outlook.com (2603:10b6:300:10e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Fri, 6 Nov 2020 09:50:05 +0000 Received: from MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::f88d:c4b1:1f6d:7a73]) by MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::f88d:c4b1:1f6d:7a73%4]) with mapi id 15.20.3499.032; Fri, 6 Nov 2020 09:50:05 +0000 From: "Zurcher, Christopher J" To: "Yao, Jiewen" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, XiaoyuX" , "Kinney, Michael D" , "Ard Biesheuvel" Subject: Re: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWsiyB4+1/v20uXEu0lqu2S9yUHqm6nppAgAAEk9CAADbo4A== Date: Fri, 6 Nov 2020 09:50:05 +0000 Message-ID: References: <20201103215834.7533-1-christopher.j.zurcher@intel.com> <1644D590FF4B7423.25549@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.53.185.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92953ff2-95a2-472b-4f29-08d8823956b7 x-ms-traffictypediagnostic: MWHPR11MB1823: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Fm1O/WaOSkNJfcPyfILVyEupZC7VzpJir+9gmb6TBoq7P1sMsHP7w3Y+z6wGguDrw3MXDUz5zXInxHKcfKpsPLcBtrduKyZ6+zT65mORMNl1hQ3n0r7js+x70zOt4eNTUcRogp7atlscrE9BbvzBdQuD/fvrnHjqDk1ZCFVwmrw1F8dt1JWHX+zxrJgqM0qHptrEa5vP9ySYcR9fo48epgeiosOgckxam5IWDNRbZH/W4Tq04Hgs5Elhth+/YRDexx2MH0IALMKCrUaTIvmLr1Al3FJ0Zek5QlGEAW1apwuHCdd/TB60Ev4vsyPk8AHgk2PxeHu2AU+yRDidfoFVyKcKUNhV/5o6wUAi347cNX1Rh/kVhJOP6WsbpkvZ899fD6UWm0boS1jVZkYHEEmBtQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1101MB2125.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(39860400002)(346002)(376002)(396003)(136003)(76116006)(71200400001)(66946007)(54906003)(19627235002)(110136005)(66556008)(64756008)(66446008)(66476007)(26005)(8936002)(55016002)(8676002)(6506007)(53546011)(316002)(4326008)(7696005)(186003)(5660300002)(966005)(86362001)(478600001)(33656002)(52536014)(83380400001)(9686003)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 8zboefSKqv9xWX3NtRXhzGKOYxVoP7CYJ6nx5XWfBrlQudJZ1ZEmd0+HbF7zlL1UybOngzg9lxpGQD8D5GKkR3IBDJUxKWbHjyuYVeDFyDU+3PisP9KZtpekakn45A2WIOKNrGW1ipEFRDHx8Gj0vmqzEsbhFTa0D2V2vd/ugOY5pkIpLPxDDgyOFrvGT3I2dKs5AXC7lstKg7U3vo2zm7ytoD+VqxN1X3XttQbT1h+wBg3z6K4exC4cWv4IeUjnTOEL1o13upbqsFClLUCV0DX1EBSbFXL2u59tPjikPlMZxIe0P3UtIDK8GFoFOogvxr6t8pP53X4TSAsvnLgBOMjnVQuee6LO+eETtksstPYOf4tfDFUXQG7YS7oYx6B9NnSqgO74+hXvDue1ZfBWiyveoBgxixUDLEQC9BkyXYjXyK7QT2q6IqtE/BqxMpiPuf2NdMZDufu3M2GrLDFGigveb6f/WgbVJRkBcnf3+87krYBEYf/br7fTpOo4pvILYvD7GLoVca0BtUXLq4oDMcan0HBnvdWocJvYa+AauOaCaQY/xfOR/xs0zUJh+5Mp53VnyaM2NCDM9xvIu7ebS/lYu0/xhySvHid7shPh/a2POdGlfQA4JRVBtUDKF9ALHhSZDN0F1XFjdWvt21ikYw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1101MB2125.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92953ff2-95a2-472b-4f29-08d8823956b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2020 09:50:05.1096 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EIh8eEYjL5TbvBIbs933iAhmdNuNmPex7R3O/9g/b69YSz1Hc7K0rLMS5akx/6kgE28tEQWuyheY4ZF4AsewaX2nB6mssKk90SDxLO+EUJQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1823 Return-Path: christopher.j.zurcher@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I think some of these errors are not relevant based on the nature of the co= mmit: One of the errors reported is that the added typedefs (ptrdiff_t, wchar_t)= do not follow coding guidelines, but the typedefs are required for OpenSSL= compatibility and they match the already-existing style: typedef UINTN size_t; typedef UINTN u_int; +typedef INTN ptrdiff_t; typedef INTN ssize_t; typedef INT32 time_t; typedef UINT8 __uint8_t; typedef UINT8 sa_family_t; typedef UINT8 u_char; typedef UINT32 uid_t; typedef UINT32 gid_t; +typedef CHAR16 wchar_t; Another error is that the auto-generated assembly files do not start with = capital letters, but these filenames come from OpenSSL with lowercase filen= ames, and we already have opensslconf.h in the Include folder which has a l= owercase filename. Another error type reported is that the auto-generated assembly files do n= ot have "SPDX-License-Identifier: BSD-2-Clause-Patent" but it was already d= iscussed on the list that these would be checked in with the OpenSSL header= similar to opensslconf.h: https://github.com/tianocore/edk2/blob/master/CryptoPkg/Library/Include/op= enssl/opensslconf.h Additionally, there is an error that OpensslLibX64.inf is not in CryptoPkg= .dsc, but I am not sure if it is appropriate to include as the module is no= t compatible with GCC builds. How should I proceed here? Thanks, Christopher Zurcher > -----Original Message----- > From: Yao, Jiewen > Sent: Thursday, November 5, 2020 22:14 > To: devel@edk2.groups.io; Yao, Jiewen ; Zurcher, > Christopher J > Cc: Wang, Jian J ; Lu, XiaoyuX ; > Kinney, Michael D ; Ard Biesheuvel > > Subject: RE: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add nativ= e > instruction support for X64 >=20 > Hi Zurcher > I created https://github.com/tianocore/edk2/pull/1092 >=20 > However, there are failures in CI test. So this patch is NOT merged. >=20 > Please take a look and resolve it. >=20 > Thank you > Yao Jiewen >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Yao, > > Jiewen > > Sent: Friday, November 6, 2020 1:56 PM > > To: Zurcher, Christopher J ; > > devel@edk2.groups.io > > Cc: Wang, Jian J ; Lu, XiaoyuX > > ; Kinney, Michael D = ; > > Ard Biesheuvel > > Subject: Re: [edk2-devel] [PATCH v5 0/2] CryptoPkg/OpensslLib: Add nat= ive > > instruction support for X64 > > > > Patch 1/2 reviewed-by: Jiewen Yao > > > > > -----Original Message----- > > > From: Christopher J Zurcher > > > Sent: Wednesday, November 4, 2020 5:59 AM > > > To: devel@edk2.groups.io > > > Cc: Yao, Jiewen ; Wang, Jian J > > > ; Lu, XiaoyuX ; Kinney, > > > Michael D ; Ard Biesheuvel > > > > > > Subject: [PATCH v5 0/2] CryptoPkg/OpensslLib: Add native instruction > > > support for X64 > > > > > > V5 Changes: > > > Move ApiHooks.c into X64 folder > > > Update process_files.pl to clean architecture-specific subfolders > without > > > removing them > > > Rebased INF file to merge latest changes regarding RngLib vs. Time= rLib > > > > > > V4 Changes: > > > Add copyright header to uefi-asm.conf > > > Move [Sources.X64] block to cover entire X64-specific config > > > > > > V3 Changes: > > > Added definitions for ptrdiff_t and wchar_t to CrtLibSupport.h for > > > LLVM/Clang build support. > > > Added -UWIN32 to GCC Flags for LLVM/Clang build support. > > > Added missing AES GCM assembly file. > > > > > > V2 Changes: > > > Limit scope of assembly config to SHA and AES functions. > > > Removed IA32 native support (reduced config was causing build fail= ure > > and > > > can be added in a later patch). > > > Removed XMM instructions from assembly generation. > > > Added automatic copyright header porting for generated assembly fi= les. > > > > > > This patch adds support for building the native instruction algorith= ms > for > > > the X64 architecture in OpensslLib. The process_files.pl script was > modified > > > to parse the .asm file targets from the OpenSSL build config data st= ruct, > and > > > generate the necessary assembly files for the EDK2 build environment= . > > > > > > For the X64 variant, OpenSSL includes calls to a Windows error handl= ing > API, > > > and that function has been stubbed out in ApiHooks.c. > > > > > > For all variants, a constructor is added to call the required CPUID > function > > > within OpenSSL to facilitate processor capability checks in the nati= ve > > > algorithms. > > > > > > Additional native architecture variants should be simple to add by > following > > > the changes made for this architecture. > > > > > > The OpenSSL assembly files are traditionally generated at build time > using a > > > perl script. To avoid that burden on EDK2 users, these end-result > assembly > > > files are generated during the configuration steps performed by the > > package > > > maintainer (through process_files.pl). The perl generator scripts in= side > > > OpenSSL do not parse file comments as they are only meant to create > > > intermediate build files, so process_files.pl contains additional ho= oks > to > > > preserve the copyright headers as well as clean up tabs and line end= ings > to > > > comply with EDK2 coding standards. The resulting file headers align = with > > > the generated .h files which are already included in the EDK2 reposi= tory. > > > > > > Cc: Jiewen Yao > > > Cc: Jian J Wang > > > Cc: Xiaoyu Lu > > > Cc: Mike Kinney > > > Cc: Ard Biesheuvel > > > > > > Christopher J Zurcher (2): > > > CryptoPkg/OpensslLib: Add native instruction support for X64 > > > CryptoPkg/OpensslLib: Commit the auto-generated assembly files for= X64 > > > > > > CryptoPkg/Library/OpensslLib/OpensslLib.inf = | > 2 +- > > > CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf = | > 2 +- > > > CryptoPkg/Library/OpensslLib/OpensslLibX64.inf = | > 653 +++ > > > CryptoPkg/Library/Include/CrtLibSupport.h = | > 2 + > > > CryptoPkg/Library/Include/openssl/opensslconf.h = | > 3 - > > > CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c = | > 34 + > > > CryptoPkg/Library/OpensslLib/X64/ApiHooks.c = | > 18 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm = | > > > 732 +++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm = | > > > 1916 ++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nas= m > > | > > > 78 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm = | > > > 5103 ++++++++++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm = | > > > 1173 +++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > | 34 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm = | > > > 1569 ++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm = | > > > 3137 ++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm = | > > > 2884 +++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > > | > > > 3461 +++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm = | > > > 3313 +++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm = | > > > 1938 ++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm = | > 491 > > > ++ > > > CryptoPkg/Library/OpensslLib/process_files.pl = | > 232 +- > > > CryptoPkg/Library/OpensslLib/uefi-asm.conf = | > 21 + > > > 22 files changed, 26746 insertions(+), 50 deletions(-) > > > create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibX64.inf > > > create mode 100644 > > CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/ApiHooks.c > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesn= i- > > > mb-x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesn= i- > > > sha1-x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesn= i- > > > sha256-x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesn= i- > > > x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpae= s- > > > x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1= - > > > mb-x86_64.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1= - > > > x86_64.nasm > > > create mode 100644 > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256- > > > mb-x86_64.nasm > > > create mode 100644 > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256- > > > x86_64.nasm > > > create mode 100644 > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512- > > > x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > > > create mode 100644 CryptoPkg/Library/OpensslLib/uefi-asm.conf > > > > > > -- > > > 2.28.0.windows.1 > > > > > > > >=20 > >