From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id 34EF3740035 for ; Thu, 9 May 2024 22:12:07 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=A3R3q4Z3eE9DNau5+PoXjBfBM17I/eP4kC6AHrSAKtw=; c=relaxed/simple; d=groups.io; h=From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type; s=20240206; t=1715292725; v=1; b=fvL7U7xxnZ8dt9laIWQOjqzU/+Q4Ytje1BGzXYPiEG6FrLipliAi60Fnq4gFHWRiM8BO5ppe cImWwAnKa6X2feINtjwjtQXsP777grLBh4i2Z7sDk08jweM/kXHOtt8ImTPpFzOpOM6Ls1lpX7p dTgLcKLFYCysO9z3+054ebdtS0jIiHaUr447uH3pgkF3Tzt024FZRx4SAEaODHuqOcL32an9xNg DoVXWHnEH7pyv1CFDCp+dw1BXy+GwLUbPyAJ7cz3aOrK9AgZQQ9i2Qr7G0GiqJ2YCprdCRnVp+w 32deW2hoNUokLeHfWPq1Sx+5lU6uFuHZo0be6TQTyB5hA== X-Received: by 127.0.0.2 with SMTP id QFnVYY7687511xH7ixEgjoe6; Thu, 09 May 2024 15:12:05 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by mx.groups.io with SMTP id smtpd.web11.4202.1715292724791505607 for ; Thu, 09 May 2024 15:12:04 -0700 X-CSE-ConnectionGUID: KRnKUpttTUaHz4c6fjw8mw== X-CSE-MsgGUID: bYov+pl/QpWhXSLoV73yIQ== X-IronPort-AV: E=McAfee;i="6600,9927,11068"; a="21845324" X-IronPort-AV: E=Sophos;i="6.08,149,1712646000"; d="scan'208";a="21845324" X-Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 May 2024 15:12:04 -0700 X-CSE-ConnectionGUID: jdQvIXz4R8+hufxmYgcNiA== X-CSE-MsgGUID: rocCVUXiQLycJ+v/V54DXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,149,1712646000"; d="scan'208";a="60246228" X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orviesa002.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 09 May 2024 15:12:03 -0700 X-Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 9 May 2024 15:12:03 -0700 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 9 May 2024 15:12:03 -0700 X-Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 9 May 2024 15:12:03 -0700 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) 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.2507.35; Thu, 9 May 2024 15:12:02 -0700 X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com (2603:10b6:510:3b::20) by SN7PR11MB7092.namprd11.prod.outlook.com (2603:10b6:806:29b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.43; Thu, 9 May 2024 22:11:55 +0000 X-Received: from PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::ae9e:f9e:2825:244c]) by PH0PR11MB5046.namprd11.prod.outlook.com ([fe80::ae9e:f9e:2825:244c%4]) with mapi id 15.20.7544.047; Thu, 9 May 2024 22:11:55 +0000 From: "Wenxing Hou" To: gaoliming , "devel@edk2.groups.io" , "Li, Yi1" , Leif Lindholm , "Andrew (EFI) Fish" , "Kinney, Michael D" CC: "Yao, Jiewen" Subject: Re: [edk2-devel][edk2-stable202405] [PATCH v3 00/11] Add more crypt APIs based on Mbedtls Thread-Topic: [edk2-devel][edk2-stable202405] [PATCH v3 00/11] Add more crypt APIs based on Mbedtls Thread-Index: AQHaog12fGncGyCF8Eyf0WqqpYku5LGPdu4w Date: Thu, 9 May 2024 22:11:55 +0000 Message-ID: References: <20240509062700.2062-1-wenxing.hou@intel.com> <011101daa1ef$13f46390$3bdd2ab0$@byosoft.com.cn> <000001daa20d$602457c0$206d0740$@byosoft.com.cn> In-Reply-To: <000001daa20d$602457c0$206d0740$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5046:EE_|SN7PR11MB7092:EE_ x-ms-office365-filtering-correlation-id: dec31d09-ae35-4856-ce96-08dc7075097c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: =?utf-8?B?YVRyRmtTUFk3VXhISHBqZExXT1RwWFZBUm51c1Z5MVJ6L09oYk03bXVidzNT?= =?utf-8?B?V1Y3N2pySytsYlRZRU9iRmtXQ1pZSmcrdWQ2NGpTRU93UVMrWWNWSDEvRDBk?= =?utf-8?B?VUlKQnJGNmRWSWdGb2dzZ1QwNnIwcEJScHB3dVQvWkJabTlsUVdCR3N6cmNa?= =?utf-8?B?aW9EdGZ6cy9HbW1YVGRYVXU2cHAvem9MeURoNVJKOEczNHVaV3ZVZ0VWWkxr?= =?utf-8?B?a3NJRTBUQnBoMXlWc2Q0eXZnenpjQndnMGFRcVZxelFFMGtEZTlWaWJQVW5D?= =?utf-8?B?S0RFZXRKMGlUa1c0RmV2R3E1eVJRN1VFNGwwVGsybGszNmNWZEZYZU80azVW?= =?utf-8?B?Q00xZThNWW1RS3ZYUWg2UlliYWFIYUNMdW0rWVF3NkRKdm9YUDIyNnQ5ZUJm?= =?utf-8?B?NlliVGNHQjAvZ09YQ0hNRW1WS3NuOGppTEEySkZLTXVRUTRzaFhkOXBIU3Fu?= =?utf-8?B?RnA1ZFBNQjBod0Yva2J1VHp0WFFtNFNNYUVZN2V4N0NrV25BNzRudGhETVVC?= =?utf-8?B?d1FNY1pmK0JFTjFFWjhoU1BIaHNKNUlRWVVNSEdTQjVhSjlBajFWQ29qY1RO?= =?utf-8?B?aHUxK3prTnk4QzFjNTh0aStnYTBIeUlBTGtDdkRmNjcxdkZQdnF0dEpoM0ZS?= =?utf-8?B?bEgrejVDelVVZ1R2Qy9KS1ZqTUFGby81angyTmtLeHRkdm50Q2hKcnI1VXI2?= =?utf-8?B?VW1neEROaThOZTBEaDRZVUs0ZjUrMGVIWktjOUF1U0JzM014Z0szNlUyNnRk?= =?utf-8?B?c0FGT1hld0ZoMmRHQUVXSkQ5T2RzVTc4R09tSzR5cVcrcll6Y1Mreis1ZlJY?= =?utf-8?B?ZS9Vd2t3VldBZmQ3bUw3akR4YjB6WG5SYnZ1akhpRFZEeVEyenJ0QzFxK2Z3?= =?utf-8?B?UHBtZGZkbUovM2lUQUp1SVJ0UHYwYzZXTGVUeThmYThJUGNMUGREZktKektP?= =?utf-8?B?NDVYSTNVNVAvbUhNSmYrVUZLRTQ3RkJyR0RTZnNQcnhuM2FYUkRmWGlaY1dO?= =?utf-8?B?QUpXRUN1Q0t3UHpkYk5scTU4aitNb3NzaG9HSmxTNGdUdVhjZ0g1dEhNSE8z?= =?utf-8?B?RWd1Rnh5elhKSmhkS1ZpQlRWcktUamFJeExzdkhoRDdSRTV2VHh3aklsSHEy?= =?utf-8?B?YlVMWjZCeTRRcnR3ZjZRZkVrc3Z5ZWVpOVhoNXc3dmN2UmhVaFQ1bFBBOGNa?= =?utf-8?B?RUlWNElTakRONEtBYjA3bEZlOERhTGduNUNYVDlsNkdmTVRoNWFDcS9oQ25z?= =?utf-8?B?M1hTTk5Qbm00cFUzY0hyeDZ0bExpb3ArRlZucFdTdVJtUlB1QmJPbkhvOGhC?= =?utf-8?B?QlJMWitjUjM0MU05TGl5cGV6SGh3ci9LQWpVU3l3RjVKK2lLSHg5Yi9qelBQ?= =?utf-8?B?M2hyVGp0WTJKTXNUT1c4Vm10aFV2ay9kMmdqVDFtR1owbjVpbUtWVnNwWmhR?= =?utf-8?B?TjNXc3BOdG14eTZKUXJtOU00U2xidG9FZnY5SytRVnljaUhyWXhiWHdYTk9C?= =?utf-8?B?K2ppdWNGSms2MlQxYzNubHRRN25QejdsU3J5QUI1OGw1MGdwUDJXRHdBWXEz?= =?utf-8?B?YTZTMVlZc0tYVDR1dWJyemx4R09INElaREtKeVB6cXBMbHV1L0lYbWN2Y1o3?= =?utf-8?B?SEpuMW1sNmd3ZHJJOVNzK05kVU1DUGNUcmEvSnR4ODA0OFM5RlhtZms3ZTZE?= =?utf-8?B?UTk4cWtXemc3MHVDM254Lzd5Wm9Za01WR3hQZ2Vjb2xCcjJqMU15TEFNbm5p?= =?utf-8?Q?DKHHhcMn/zMOgS1Hy4=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UmZXdmJlaCttaFlDSHVISlZuNFQxL2FGeTIxYlk5RWNoeEdmbVdpS0pHenNs?= =?utf-8?B?UU9HMzdhQmh1akVjOWFDTEViNko4L1Bvcy9rcnU5L2g5VFpnQnRXY0xuN0s2?= =?utf-8?B?WEJDOU1tMFU1MXV0NStaRkR1NGJpWXZCRWFPVGNSK0UvWHh0RjRCTHNOTVZn?= =?utf-8?B?RkhmR0Z4QjZGWTFleDd0WnlEMXZHdjZJaEhHc012ZkpVay9IbVBMb3A2ZWMx?= =?utf-8?B?cE1ZUUxON2x3M1c0dEt3ZnlsWnBNZmgrYklzSHFKWk04b3NTUWh0SmFwVUk0?= =?utf-8?B?RjFVVktCcjRvRFRENWd3M2ZtTTJJQWRFai9mTWVxajZ0cFlWZkNndVRQWW0z?= =?utf-8?B?OGFBOUNiOXY2Nm5uTnhVQXNYcFFDdHh2NERQblZVZVAzZGNydEJaSTkxQXNo?= =?utf-8?B?YWpHSGQ0SXFSTmJRVGpCdGZ1WjhkQmFrTFFMcEw2YzZHdEt3NjdDb1NxV294?= =?utf-8?B?YU1wVzdCcnZ0NDZUV3dvdS8xR0FVakNHUno1Wkd0dmdMbmJ2Tmxkc09vV2Yx?= =?utf-8?B?eW9vcXJ5ZWxKS2pvcnJvTzZYeEhlbzhGWWtRbUtPYnhQdk45a0wzQXhtQTBy?= =?utf-8?B?TG5KWGdMWHVvM2p2aE5HOVJIbmgrUWZkb2RTQ0M1OE5YazhkWldIdURNQ2tz?= =?utf-8?B?WEthKy9oaEtoQUIwN05xQ0FqV1hzdWZYbWl5YlFNUzhhSHFDZkFaQ3MxZ2JG?= =?utf-8?B?RHYwK1dtcVFFdFpWaWE1NWdZcDJSaE4zODBlTENjQVpIRzVHNTcySlpBWEhs?= =?utf-8?B?aXBNL1RCVHFjZnBKOUJsNzJXYjlhOTk3VmszVC9wYmhFakpIVmVPT2grQVAx?= =?utf-8?B?eHQ3SmtjS0drWlBKdmtBWEZpcnh5ZHNwZkdaOXFncUtSWExiKzVETnpmaFhF?= =?utf-8?B?Mm42L3gxcEdpNGFid2JhbXVncjlXUGR4RXk2MVFBeEttTW1pdjd2RmhrajZu?= =?utf-8?B?SUE1S2JFVlpoL3hMb0laYzJGZmY2eUd3dmVHbi9nRjNMS1U0bThNaTl0Rys0?= =?utf-8?B?VzRHQTV2RXN3MFFkNFJNZVMzbytkQ1JjanZZeFh2a2M5Mkw0TzRhbk9KcSt4?= =?utf-8?B?RmNMVmhIVFFhV1M4NzFSVXB4bWxxSGpKNldmcTRWNjJ5VldoREU3dVd2ekVq?= =?utf-8?B?ZHBSV1Rkazhrcy9qVnNuSWRkTkQ3bDh4VnZKRkdnU2RITE9CRXhFWWJBNjkz?= =?utf-8?B?bVVFdEZzVElPTTZSa3ZVYWhtWGZ5MmdmM3ZSQ2pFSlFjRjl2K1Q2c1hqNUdU?= =?utf-8?B?bHhNNmZBUlFtYWUrSjFtTGU2cWFlMWExQVJ6amJQa1EwNDRHck5PRUliQWVa?= =?utf-8?B?L3piV0cvdGZMV0p6ejB3TXZNbTJjeXBsd2IzdFcza3F1UW5qNVRVUmh5V2hh?= =?utf-8?B?N1EyYnREL1BtTEptY3FSYjYrOEpSa0xvL0Q0eUdtd0RFNlRqU3dtelJCYXRI?= =?utf-8?B?QWJiS0taa3BzOWR4SThQSVhWSXM2R3paWnV1RXJOSnQwcXFJdzNkeW1FSWJt?= =?utf-8?B?NVNNVnBUUjkybFNZVGhnWXV5Z0thTUlqS2pZdWI2dDBjZXRkV2o5YzVMWVZD?= =?utf-8?B?Tkk3dU12UzgrOEdweFFmc3MrS1RxYjhpRzNlaE9uRWxJY3NGMGcvcjRadG1P?= =?utf-8?B?VzY0c0tHUW10ZHIwYmtLYklyL3JydEpPVTJ4cElqVVkvTDhDZy85NysvRC9x?= =?utf-8?B?bUZoOUgzOGNTck9NVTVNSW1lNWkrblNhYm5yNkgyckxNc2F5L3B0UFhVeVp0?= =?utf-8?B?cE0zVDU0a0tqeW4xemZSczFieW1rL3JaazBKMFhVQWhMd1ZHNEsxTGZncXlQ?= =?utf-8?B?enF5R1NrZG5WdmJIaGJNb28xT2F2MlZYOXJ4L0JpUnVZTDk1T1NTYzduMkNK?= =?utf-8?B?cnFldlJyUXdVS2VBdks5SU1WWHQ3SGNXZWV1VlgzRVlTOEZpbjhQNlgyREtE?= =?utf-8?B?NzA2S202aVZDaEdFdTRmOGtmTVZQeHh2ZFp4Qkh3dWFzeHpaaXF4NHlnM0ls?= =?utf-8?B?MWdrYU1TS2duR09WWU1kTDZPZ2I4eDN1bnZ5MlY3NmQ5bmtJSGxSUWloVzd5?= =?utf-8?B?KzNnbjBOMDhYaTVWa0hGaTlWanFoMXh4VjVVTmNxTFREelM0ek1PTmtoR2h2?= =?utf-8?Q?uMMV9khFdJsPEcs87NXYcTgCe?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5046.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dec31d09-ae35-4856-ce96-08dc7075097c X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2024 22:11:55.2240 (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: V3A5gP9b2gkclF3Qkd6D+xZ9gc7GW5P6ifrlf4vtLS1kfI/ILIPL7L2wFrzVcXapSTEJOGNkVwckyMvwBYzW7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7092 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Thu, 09 May 2024 15:12:05 -0700 Resent-From: wenxing.hou@intel.com Reply-To: devel@edk2.groups.io,wenxing.hou@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: jUglKOa1NuXKqaOSmJubTpYpx7686176AA= Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_PH0PR11MB5046161C28B8A905D356E4D9F7E62PH0PR11MB5046namp_" X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=fvL7U7xx; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io --_002_PH0PR11MB5046161C28B8A905D356E4D9F7E62PH0PR11MB5046namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgYWxsLA0KDQpEbyB5b3UgaGF2ZSBhbnkgZmVlZGJhY2s/DQoNCiBUaGUgY3VycmVudCBQYXRj aCBTZXQgc3RhdHVzIGlzOg0KIAlUaGlzIHBhdGNoIHNldCB3YXMgc3VibWl0dGVkIGJlZm9yZSBz b2Z0IGZlYXR1cmUgZnJlZXplLg0KCVNvbWUgcmV2aWV3ZC1ieSB3YXMgYWRkZWQgYmVmb3JlIHNv ZnQgZmVhdHVyZSBmcmVlemUgc3RhcnRzLg0KIAlTb21lIHJldmlld2QtYnkgd2FzIGFkZGVkIGFm dGVyIHNvZnQgZmVhdHVyZSBmcmVlemUgc3RhcnRzLg0KIAlBbmQgdGhlIFBhdGNoIHNldCBpczog QWNrZWQtYnk6IEppZXdlbiBZYW8gPEppZXdlbi55YW9AaW50ZWwuY29tPg0KIAkgICAgICAgICAg ICAgIAkJICAgICAgICAgUmV2aWV3ZWQtYnk6IFlpIExpIDx5aTEubGlAaW50ZWwuY29tPg0KDQpN aWtlIGlzIG9uIHZhY2F0aW9uLCBtYXliZSBoZSB3aWxsIG5vdCBoYXZlIGZlZWRiYWNrLg0KDQpE ZWFyIFRpYW5vY29yZSBTdGV3YXJkcywgIElmIHlvdSBkb24ndCBoYXZlIGFueSBmZWVkYmFjay4N CldlIHdpbGwgbWVyZ2UgaXQgdG9kYXkuDQoNCg0KVGhhbmtzIQ0KV2VueGluZw0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+IA0KU2VudDogVGh1cnNkYXksIE1heSA5LCAyMDI0IDg6MzUgUE0NClRvOiBIb3UsIFdl bnhpbmcgPHdlbnhpbmcuaG91QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMaSwg WWkxIDx5aTEubGlAaW50ZWwuY29tPg0KQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT47ICdMZWlmIExpbmRob2xtJyA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT47ICdBbmRy ZXcgRmlzaCcgPGFmaXNoQGFwcGxlLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NClN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdW2VkazItc3Rh YmxlMjAyNDA1XSBbUEFUQ0ggdjMgMDAvMTFdIEFkZCBtb3JlIGNyeXB0IEFQSXMgYmFzZWQgb24g TWJlZHRscw0KDQpJbmNsdWRlIG1vcmUgcGVvcGxlIGZvciBmZWVkYmFjay4NCg0KPiAtLS0tLemC ruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogSG91LCBXZW54aW5nIDx3ZW54aW5nLmhvdUBp bnRlbC5jb20+DQo+IOWPkemAgeaXtumXtDogMjAyNOW5tDXmnIg55pelIDE3OjM1DQo+IOaUtuS7 tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjsgTGks IFlpMSANCj4gPHlpMS5saUBpbnRlbC5jb20+DQo+IOaKhOmAgTogWWFvLCBKaWV3ZW4gPGppZXdl bi55YW9AaW50ZWwuY29tPg0KPiDkuLvpopg6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDAw LzExXSBBZGQgbW9yZSBjcnlwdCBBUElzIGJhc2VkIG9uIA0KPiBNYmVkdGxzDQo+IA0KPiBIaSBM aW1pbmcsDQo+IFRoYW5rcyBmb3IgeW91ciBzdWdnZXN0aW9uLg0KPiANCj4gDQo+IEhpIGFsbCwN Cj4gVGhlIGN1cnJlbnQgUGF0Y2ggU2V0IHN0YXR1cyBpczoNCj4gCVRoaXMgcGF0Y2ggc2V0IHdh cyBzdWJtaXR0ZWQgYmVmb3JlIHNvZnQgZmVhdHVyZSBmcmVlemUuDQo+IAlJdCBwYXNzZWQgY29k ZSByZXZpZXcgYWZ0ZXIgc29mdCBmZWF0dXJlIGZyZWV6ZSBzdGFydHMuDQo+IAlBbmQgdGhlIFBh dGNoIHNldCBpczogQWNrZWQtYnk6IEppZXdlbiBZYW8gPEppZXdlbi55YW9AaW50ZWwuY29tPg0K PiAJICAgICAgICAgICAgICAJCSAgICAgICAgIFJldmlld2VkLWJ5OiBZaSBMaSA8eWkxLmxpQGlu dGVsLmNvbT4NCj4gDQo+IFdlIHdhbnQgdG8gY2F0Y2ggdGhpcyAyMDI0MDUgc3RhYmxlIHRhZy4N Cj4gSWYgYW55b25lIGhhdmUgZmVlZGJhY2ssIHBsZWFzZSBsZXQgbWUga25vdy4NCj4gDQo+IFRo YW5rcywNCj4gV2VueGluZw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYg T2YgDQo+IGdhb2xpbWluZyB2aWEgZ3JvdXBzLmlvDQo+IFNlbnQ6IFRodXJzZGF5LCBNYXkgOSwg MjAyNCA0OjU5IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTGksIFlpMSA8eWkxLmxp QGludGVsLmNvbT47IEhvdSwgV2VueGluZyANCj4gPHdlbnhpbmcuaG91QGludGVsLmNvbT4NCj4g Q2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gU3ViamVjdDog5Zue5aSN OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDAwLzExXSBBZGQgbW9yZSBjcnlwdCBBUElzIGJhc2Vk IA0KPiBvbiBNYmVkdGxzDQo+IA0KPiBTZWVtbHksIHRoaXMgY2hhbmdlIGlzIG5ldyBmZWF0dXJl IHRvIGFkZCBtb3JlIGNyeXB0IEFQSXMgYmFzZWQgb24gTWJlZHRscy4NCj4gDQo+IFRoaXMgcGF0 Y2ggc2V0IHdhcyBzdWJtaXR0ZWQgYmVmb3JlIHNvZnQgZmVhdHVyZSBmcmVlemUuIEJ1dCwgaXQg DQo+IHBhc3NlZCBjb2RlIHJldmlldyBhZnRlciBzb2Z0IGZlYXR1cmUgZnJlZXplIHN0YXJ0cy4N Cj4gDQo+IEJhc2VkIG9uIGN1cnJlbnQgcnVsZSwgdGhpcyBwYXRjaCBzZXQgaXMgbm90IGFsbG93 ZWQgdG8gYmUgbWVyZ2VkIGZvciANCj4gdGhpcyBzdGFibGUgdGFnIDIwMjQwNS4NCj4gDQo+IElm IHlvdSB3YW50IHRvIGNhdGNoIHRoaXMgc3RhYmxlIHRhZywgcGxlYXNlIHJhaXNlIHRoaXMgcmVx dWlyZW1lbnQgdG8gDQo+IHRoZSBtYWlsIGxpc3QgYW5kIGNvbGxlY3QgdGhlIGZlZWRiYWNrLg0K PiANCj4gVGhhbmtzDQo+IExpbWluZw0KPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiDl j5Hku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g5Luj 6KGoIExpLCBZaQ0KPiA+IOWPkemAgeaXtumXtDogMjAyNOW5tDXmnIg55pelIDE2OjMzDQo+ID4g 5pS25Lu25Lq6OiBIb3UsIFdlbnhpbmcgPHdlbnhpbmcuaG91QGludGVsLmNvbT47IGdhb2xpbWlu ZyANCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiDmioTpgIE6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiDkuLvp opg6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDAwLzExXSBBZGQgbW9yZSBjcnlwdCBBUElz IGJhc2VkIG9uDQo+IE1iZWR0bHMNCj4gPg0KPiA+IFRoaXMgcGF0Y2ggc2V0IHdhcyBzdWJtaXR0 ZWQgYmVmb3JlIHNvZnQgZnJlZXplIGFuZCB3aWxsIG5vdCBhZmZlY3QgDQo+ID4gb3RoZXINCj4g ZXhpc3RlZA0KPiA+IGNvZGVzLCBJIGFtIE9LIHRvIG1lcmdlIGl0Lg0KPiA+DQo+ID4gSGkgTGlt aW5nLA0KPiA+DQo+ID4gRG8geW91IGhhdmUgYW55IGNvbW1lbnRzPyAgSSB3aWxsIG1lcmdlIGl0 IGlmIG5vIG9iamVjdGlvbnMuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gWWkNCj4gPg0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSG91LCBXZW54aW5nIDx3ZW54aW5n LmhvdUBpbnRlbC5jb20+DQo+ID4gU2VudDogVGh1cnNkYXksIE1heSA5LCAyMDI0IDQ6MjkgUE0N Cj4gPiBUbzogTGksIFlpMSA8eWkxLmxpQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGdhb2xpbWluZyAN Cj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0gg djMgMDAvMTFdIEFkZCBtb3JlIGNyeXB0IEFQSXMgYmFzZWQgb24gTWJlZHRscw0KPiA+DQo+ID4g SGksDQo+ID4NCj4gPiBUaGFua3MgZm9yIHlvdXIgZmVlZGJhY2suDQo+ID4gVGhlIG5ldyBQUiBp czogaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvNTY0NQ0KPiA+DQo+ID4g Q291bGQgTGkgWWkgaGVscCBtZSBtZXJnZSB0aGUgUFI/DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4g V2VueGluZw0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBM aSwgWWkxIDx5aTEubGlAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXkgOSwgMjAy NCAyOjU0IFBNDQo+ID4gVG86IEhvdSwgV2VueGluZyA8d2VueGluZy5ob3VAaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjMgMDAvMTFdIEFkZCBtb3JlIGNyeXB0 IEFQSXMgYmFzZWQgb24gTWJlZHRscw0KPiA+DQo+ID4gRm9yIHRoaXMgcGF0Y2ggc2V0Og0KPiA+ DQo+ID4gTG9va3MgZ29vZCB0byBtZS4NCj4gPiBSZXZpZXdlZC1ieTogWWkgTGkgPHlpMS5saUBp bnRlbC5jb20+DQo+ID4NCj4gPg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g RnJvbTogSG91LCBXZW54aW5nIDx3ZW54aW5nLmhvdUBpbnRlbC5jb20+DQo+ID4gU2VudDogVGh1 cnNkYXksIE1heSA5LCAyMDI0IDI6MjcgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiBDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgTGksIFlpMSA8eWkx LmxpQGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBbUEFUQ0ggdjMgMDAvMTFdIEFkZCBtb3JlIGNy eXB0IEFQSXMgYmFzZWQgb24gTWJlZHRscw0KPiA+DQo+ID4gUkVGOiBodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxNzcNCj4gPg0KPiA+IEFkZCBBZWFkQWVz R2NtL1BlbShvbmx5IFJTQSkvWDUwOShvbmx5IFJTQSkvTW9yZSANCj4gPiBSU0EvUEtDUzUvcEtD UzcvQXV0aGVudGljb2RlL1RpbWVzdGFtcA0KPiA+IGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIE1i ZWR0bHMuDQo+ID4NCj4gPiBUaGUgcGF0Y2ggaGFzIHBhc3NlZCB0aGUgRURLSUkgQ0kgY2hlY2s6 DQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvNTU1Mg0KPiA+DQo+ ID4gQW5kIHRoZSBwYXRjaCBoYXMgcGFzc2VkIHVuaXRfdGVzdCBpbiBFREtJSSBhbmQgaW50ZWdy YXRpb24gdGVzdCBmb3INCj4gcGxhdGZvcm0uDQo+ID4gQW5kIHRoZSBwYXRjaCBoYXNzIHBhc3Nl ZCB0aGUgZnV6eiB0ZXN0Og0KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1z dGFnaW5nL2NvbW1pdC80ZjE5Mzk4MDUzYzkyZTRmNzc5DQo+ID4gMWQNCj4gPiA0DQo+ID4gNjhh MTg0NTMwYjZhYjg5MTI4DQo+ID4NCj4gPiB2MiBjaGFuZ2VzOg0KPiA+ICAtIEZpeCBmb3JtYXQg dmFyaWFibGUgbmFtZS9oYXJkY29kZSBudW1iZXIgaXNzdWU7DQo+ID4gIC0gRml4IFBrY3M3IG1l bW9yeSBsZWFrOw0KPiA+DQo+ID4gdjMgY2hhbmdlczoNCj4gPiAgLSBGaXggc29tZSBpc3N1ZXMg Zm9ybSByZXZpZXdlcjsNCj4gPiAgLSBBZGQgU0hBMy9TTTMgaW1wbGVtZW50YXRpb247DQo+ID4g IC0gVXBkYXRlICouaW5mIGZpbGVzOw0KPiA+DQo+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55 YW9AaW50ZWwuY29tPg0KPiA+IENjOiBZaSBMaSA8eWkxLmxpQGludGVsLmNvbT4NCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBXZW54aW5nIEhvdSA8d2VueGluZy5ob3VAaW50ZWwuY29tPg0KPiA+DQo+ID4g V2VueGluZyBIb3UgKDExKToNCj4gPiAgIENyeXB0b1BrZzogQWRkIEFlYWRBZXNHY20gYmFzZWQg b24gTWJlZHRscw0KPiA+ICAgQ3J5cHRvUGtnOiBBZGQgcmFuZCBmdW5jdGlvbiBmb3IgQmFzZUNy eXB0TGliTWJlZFRscw0KPiA+ICAgQ3J5cHRvUGtnOiBBZGQgUGVtIEFQSXMgYmFzZWQgb24gTWJl ZHRscw0KPiA+ICAgQ3J5cHRvUGtnOiBBZGQgWDUwOSBmdW5jdGlvbnMgYmFzZWQgb24gTWJlZHRs cw0KPiA+ICAgQ3J5cHRvUGtnOiBBZGQgUGtjczcgcmVsYXRlZCBmdW5jdGlvbnMgYmFzZWQgb24g TWJlZHRscw0KPiA+ICAgQ3J5cHRvUGtnOiBBZGQgUGtjczUgZnVuY3Rpb25zIGJhc2VkIG9uIE1i ZWR0bHMNCj4gPiAgIENyeXB0b1BrZzogQWRkIG1vcmUgUlNBIHJlbGF0ZWQgZnVuY3Rpb25zIGJh c2VkIG9uIE1iZWR0bHMNCj4gPiAgIENyeXB0b1BrZzogQWRkIEF1dGhlbnRpY29kZVZlcmlmeSBi YXNlZCBvbiBNYmVkdGxzDQo+ID4gICBDcnlwdG9Qa2c6IEFkZCBJbWFnZVRpbWVzdGFtcFZlcmlm eSBiYXNlZCBvbiBNYmVkdGxzDQo+ID4gICBDcnlwdG9Qa2c6IFVwZGF0ZSAqLmluZiBpbiBCYXNl Q3J5cHRMaWJNYmVkVGxzDQo+ID4gICBBZGQgU0hBMy9TTTMgZnVuY3Rpb25zIHdpdGggb3BlbnNz bCBmb3IgTWJlZHRscw0KPiA+DQo+ID4gIENyeXB0b1BrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUNy eXB0TGliLmggICAgICB8ICAgIDQgKw0KPiA+ICAuLi4vQmFzZUNyeXB0TGliTWJlZFRscy9CYXNl Q3J5cHRMaWIuaW5mICAgICAgfCAgIDQ3ICstDQo+ID4gIC4uLi9DaXBoZXIvQ3J5cHRBZWFkQWVz R2NtLmMgICAgICAgICAgICAgICAgICB8ICAyMjcgKysNCj4gPiAgLi4uL0Jhc2VDcnlwdExpYk1i ZWRUbHMvSW50ZXJuYWxDcnlwdExpYi5oICAgIHwgICA0OSArDQo+ID4gIC4uLi9CYXNlQ3J5cHRM aWJNYmVkVGxzL1BlaUNyeXB0TGliLmluZiAgICAgICB8ICAgMjcgKy0NCj4gPiAgLi4uL0Jhc2VD cnlwdExpYk1iZWRUbHMvUGVtL0NyeXB0UGVtLmMgICAgICAgIHwgIDEzOCArKw0KPiA+ICAuLi4v UGsvQ3J5cHRBdXRoZW50aWNvZGUuYyAgICAgICAgICAgICAgICAgICAgfCAgMjE0ICsrDQo+ID4g IC4uLi9CYXNlQ3J5cHRMaWJNYmVkVGxzL1BrL0NyeXB0UGtjczFPYWVwLmMgICB8ICAyNzggKysr DQo+ID4gIC4uLi9CYXNlQ3J5cHRMaWJNYmVkVGxzL1BrL0NyeXB0UGtjczVQYmtkZjIuYyB8ICAx MDAgKw0KPiA+ICAuLi4vUGsvQ3J5cHRQa2NzN0ludGVybmFsLmggICAgICAgICAgICAgICAgICAg fCAgIDI5ICstDQo+ID4gIC4uLi9CYXNlQ3J5cHRMaWJNYmVkVGxzL1BrL0NyeXB0UGtjczdTaWdu LmMgICB8ICA2MzUgKysrKysrDQo+ID4gIC4uLi9Qay9DcnlwdFBrY3M3VmVyaWZ5QmFzZS5jICAg ICAgICAgICAgICAgICB8ICAxMTMgKw0KPiA+ICAuLi4vUGsvQ3J5cHRQa2NzN1ZlcmlmeUNvbW1v bi5jICAgICAgICAgICAgICAgfCAxMzU0ICsrKysrKysrKysrKw0KPiA+ICAuLi4vUGsvQ3J5cHRQ a2NzN1ZlcmlmeUVrdS5jICAgICAgICAgICAgICAgICAgfCAgNjg5ICsrKysrKw0KPiA+ICAuLi4v QmFzZUNyeXB0TGliTWJlZFRscy9Qay9DcnlwdFJzYUV4dC5jICAgICAgfCAgMzUyICsrKw0KPiA+ ICAuLi4vQmFzZUNyeXB0TGliTWJlZFRscy9Qay9DcnlwdFJzYVBzc1NpZ24uYyAgfCAgMTQwDQo+ ID4gKysgIC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYk1iZWRUbHMvUGsvQ3J5cHRUcy5jICB8ICAz ODEgKysrKw0KPiA+ICAuLi4vQmFzZUNyeXB0TGliTWJlZFRscy9Qay9DcnlwdFg1MDkuYyAgICAg ICAgfCAxOTQwDQo+ID4gKysrKysrKysrKysrKysrKysNCj4gPiAgLi4uL0Jhc2VDcnlwdExpYk1i ZWRUbHMvUmFuZC9DcnlwdFJhbmQuYyAgICAgIHwgIDExNCArDQo+ID4gIC4uLi9CYXNlQ3J5cHRM aWJNYmVkVGxzL1JhbmQvQ3J5cHRSYW5kVHNjLmMgICB8ICAxMTQgKw0KPiA+ICAuLi4vQmFzZUNy eXB0TGliTWJlZFRscy9SdW50aW1lQ3J5cHRMaWIuaW5mICAgfCAgIDI2ICstDQo+ID4gIC4uLi9C YXNlQ3J5cHRMaWJNYmVkVGxzL1NtbUNyeXB0TGliLmluZiAgICAgICB8ICAgMzYgKy0NCj4gPiAg Li4uL0Jhc2VDcnlwdExpYk1iZWRUbHMvVGVzdEJhc2VDcnlwdExpYi5pbmYgIHwgICAzOSArLQ0K PiA+ICBDcnlwdG9Qa2cvTGlicmFyeS9NYmVkVGxzTGliL01iZWRUbHNMaWIuaW5mICAgfCAgICA2 ICsNCj4gPiAgLi4uL0xpYnJhcnkvTWJlZFRsc0xpYi9NYmVkVGxzTGliRnVsbC5pbmYgICAgIHwg ICAgNiArDQo+ID4gIDI1IGZpbGVzIGNoYW5nZWQsIDY5NzMgaW5zZXJ0aW9ucygrKSwgODUgZGVs ZXRpb25zKC0pICBjcmVhdGUgbW9kZQ0KPiA+IDEwMDY0NCANCj4gPiBDcnlwdG9Qa2cvTGlicmFy eS9CYXNlQ3J5cHRMaWJNYmVkVGxzL0NpcGhlci9DcnlwdEFlYWRBZXNHY20uYw0KPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPiBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJNYmVkVGxz L1BlbS9DcnlwdFBlbS5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IENyeXB0b1BrZy9M aWJyYXJ5L0Jhc2VDcnlwdExpYk1iZWRUbHMvUGsvQ3J5cHRBdXRoZW50aWNvZGUuYw0KPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJNYmVk VGxzL1BrL0NyeXB0UGtjczFPYWVwLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliTWJlZFRscy9Qay9DcnlwdFBrY3M1UGJrZGYyLmMN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0 TGliTWJlZFRscy9Qay9DcnlwdFBrY3M3U2lnbi5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiA+IENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk1iZWRUbHMvUGsvQ3J5cHRQa2NzN1Zl cmlmeUJhc2UuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBDcnlwdG9Qa2cvTGlicmFy eS9CYXNlQ3J5cHRMaWJNYmVkVGxzL1BrL0NyeXB0UGtjczdWZXJpZnlDb21tb24uYw0KPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJNYmVk VGxzL1BrL0NyeXB0UGtjczdWZXJpZnlFa3UuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4g PiBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJNYmVkVGxzL1BrL0NyeXB0UnNhRXh0LmMN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0 TGliTWJlZFRscy9Qay9DcnlwdFJzYVBzc1NpZ24uYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQg DQo+ID4gQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliTWJlZFRscy9Qay9DcnlwdFRzLmMN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0 TGliTWJlZFRscy9Qay9DcnlwdFg1MDkuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBD cnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJNYmVkVGxzL1JhbmQvQ3J5cHRSYW5kLmMNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli TWJlZFRscy9SYW5kL0NyeXB0UmFuZFRzYy5jDQo+ID4NCj4gPiAtLQ0KPiA+IDIuMjYuMi53aW5k b3dzLjENCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+ IA0KDQoNCg0KDQoKLT0tPS09LT0tPS09LT0tPS09LT0tPS0KR3JvdXBzLmlvIExpbmtzOiBZb3Ug cmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLgpWaWV3L1JlcGx5IE9ubGlu ZSAoIzExODc3Mik6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExODc3 MgpNdXRlIFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210LzEwNjAxMDczMC83Njg2MTc2 Ckdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbwpVbnN1YnNjcmliZTogaHR0 cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViIFtyZWJlY2NhQG9wZW5mdy5pb10KLT0t PS09LT0tPS09LT0tPS09LT0tPS0KCg0K --_002_PH0PR11MB5046161C28B8A905D356E4D9F7E62PH0PR11MB5046namp_ Content-Type: message/rfc822 Content-Disposition: attachment; creation-date="Thu, 09 May 2024 22:11:51 GMT"; modification-date="Thu, 09 May 2024 22:11:54 GMT" Received: from CY5PR11MB6116.namprd11.prod.outlook.com (2603:10b6:930:2b::14) by PH0PR11MB5046.namprd11.prod.outlook.com with HTTPS; Thu, 25 Apr 2024 06:55:01 +0000 Received: from SJ1PR11MB6227.namprd11.prod.outlook.com (2603:10b6:a03:45a::10) by CY5PR11MB6116.namprd11.prod.outlook.com (2603:10b6:930:2b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.46; Thu, 25 Apr 2024 06:54:59 +0000 Received: from SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::301:5dbd:207b:5578]) by SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::301:5dbd:207b:5578%4]) with mapi id 15.20.7519.021; Thu, 25 Apr 2024 06:54:59 +0000 From: "Li, Yi1" To: "Hou, Wenxing" , "devel@edk2.groups.io" CC: "Yao, Jiewen" Subject: RE: [PATCH v2] Add SHA3/SM3 functions with openssl for Mbedtls Thread-Topic: [PATCH v2] Add SHA3/SM3 functions with openssl for Mbedtls Thread-Index: AQHaliDmhGljBl1YxkC9N0W1jsHpMrF4jqlQ Date: Thu, 25 Apr 2024 06:54:59 +0000 Message-ID: References: <20240424082449.1781-1-wenxing.hou@intel.com> In-Reply-To: <20240424082449.1781-1-wenxing.hou@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Exchange-Organization-AuthAs: Internal X-MS-Exchange-Organization-AuthMechanism: 04 X-MS-Exchange-Organization-AuthSource: SJ1PR11MB6227.namprd11.prod.outlook.com X-MS-Has-Attach: X-MS-Exchange-Organization-Network-Message-Id: a8bfb1e7-ee18-401e-00b2-08dc64f49fa0 X-MS-Exchange-Organization-SCL: 1 X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 x-ms-exchange-organization-originalserveripaddress: 2603:10b6:a03:45a::10 x-ms-exchange-organization-originalclientipaddress: 192.198.143.12 x-ms-publictraffictype: Email authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ1PR11MB6227.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(41050700001);DIR:INT; x-ms-office365-filtering-correlation-id: a8bfb1e7-ee18-401e-00b2-08dc64f49fa0 x-ms-traffictypediagnostic: SJ1PR11MB6227:EE_|CY5PR11MB6116:EE_|PH0PR11MB5046:EE_ x-microsoft-antispam: BCL:0; x-ms-exchange-crosstenant-originalarrivaltime: 25 Apr 2024 06:54:59.2094 (UTC) x-ms-exchange-crosstenant-network-message-id: a8bfb1e7-ee18-401e-00b2-08dc64f49fa0 x-ms-exchange-crosstenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d x-ms-exchange-crosstenant-fromentityheader: Hosted x-ms-exchange-transport-crosstenantheadersstamped: CY5PR11MB6116 x-ms-exchange-transport-endtoendlatency: 00:00:02.6734635 x-ms-exchange-processed-by-bccfoldering: 15.20.7519.018 x-ms-exchange-crosstenant-mailboxtype: HOSTED x-ms-exchange-crosstenant-userprincipalname: 5yiHH/CD7um5jP+x7IPK63J/udgol254F5CmN6gCissd54gz4rE8YmOsH5aoZtw7UmliEs3IBrOLCk/d/VWG1A== x-ms-exchange-crosstenant-authas: Internal x-ms-exchange-crosstenant-authsource: SJ1PR11MB6227.namprd11.prod.outlook.com X-Microsoft-Antispam-Mailbox-Delivery: ucf:0;jmr:0;auth:0;dest:I;ENG:(910001)(944506478)(944626604)(920097)(425001)(930097)(140003); X-Microsoft-Antispam-Message-Info: ZJhkfqeG/ndERWx3ie/P3GcLa2CFUx15FaiTmTD3jICKJTiBNulsDQmso00Wu1ucgTSAL7HflD+Jkt04ct+570ZXhFp46n0/HWxQb7Y/D9zfodF2Cwu/X0am3AVqYiuCDgp0iJ1j/HLEX1fKWBwXd4quGxKo0iLXaObog2djgCpaX20FeioW8LsgyoPjE53ZGLhbnxZfnbIrMiXkoZjTHZUEKQ+/aUS/wjNKBwGuvN20Somrnc5YC9w8Kzdw0+R4cBa+okXosM2Wbmn2RAYp4/Obd9UnNl494T8s+/N/lbJu4gNN1UK/Lf9VsG6XDC/fUGMMQzX3jMutgrCgCrLnJOxgePP+oXMR8CN8oPDry5X+UwcSJKnlYqKuRsRnwBFi5PdLRFdkhyxSuy9mAuusdWZZbRxrCMyGIsF/k86Os5xQO1+y2BoxkML0x49aksN50X5oB2wFXzgJbukj2n86Zyz+2/61xtimZdGrkzxKh2MJoPgKfNx28NYd/XEPJg55VJWO2YflADaqSsGmbaLEi9pnY7lRHQuHbCISoPmjpPJ61/71QsLiLenKVdcW1x5JjQoGRIG5ljWtGuKN0WJfoR9Qw2/u+ykteQQ4dz6Y1xZx9UACwuBwznfiSp6/9LuqBxU4TmRbTudq2HtZHczJ1Ez2/XVr5mKqJ1zAuLy4N9nuo/LOzNBumrzsk+31EPWynGiHJB3lN6WSLlUg1aJkdUsHR76kjlY1peegi4g7eU1Jj8hC3R2dfViOjfKIglf+xwvwc3iDwW3kpX6N7M8x1NQ+O/pWKnkblnfK1NGmlD3SCNks7zy7IpQ6KG8D3naO1GJyrsibm8GFG01/rjB73Q== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Looks good to me. Reviewed-by: Yi Li -----Original Message----- From: Hou, Wenxing =20 Sent: Wednesday, April 24, 2024 4:25 PM To: devel@edk2.groups.io Cc: Yao, Jiewen ; Li, Yi1 Subject: [PATCH v2] Add SHA3/SM3 functions with openssl for Mbedtls REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4177 Because the Mbedlts 3.3.0 doesn't have SHA3 and Sm3, the SHA3 and Sm3 implementaion based on Openssl. And the implementaion has passed build check. Cc: Jiewen Yao Cc: Yi Li Signed-off-by: Wenxing Hou --- CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf | 9 +++++++-- CryptoPkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf | 9 +++++++-- .../Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf | 3 ++- CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf | 9 +++++++-- .../Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf | 4 +++- CryptoPkg/Library/MbedTlsLib/MbedTlsLib.inf | 6 ++++++ CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf | 6 ++++++ 7 files changed, 38 insertions(+), 8 deletions(-) diff --git a/CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf b/Crypt= oPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf index 16def792c5..999054500f 100644 --- a/CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf @@ -18,6 +18,7 @@ MODULE_TYPE =3D DXE_DRIVER VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D BaseCryptLib|DXE_DRIVER DXE_CORE UEFI= _APPLICATION UEFI_DRIVER + DEFINE BASE_CRYPT_PATH =3D ../BaseCryptLib =20 # # The following information is for reference only and not required by the = build tools. @@ -31,10 +32,14 @@ Cipher/CryptAes.c Hash/CryptSha256.c Hash/CryptSha512.c - Hash/CryptParallelHashNull.c - Hash/CryptSm3Null.c Hash/CryptMd5.c Hash/CryptSha1.c + $(BASE_CRYPT_PATH)/Hash/CryptCShake256.c + $(BASE_CRYPT_PATH)/Hash/CryptDispatchApDxe.c + $(BASE_CRYPT_PATH)/Hash/CryptParallelHash.c + $(BASE_CRYPT_PATH)/Hash/CryptSha3.c + $(BASE_CRYPT_PATH)/Hash/CryptSm3.c + $(BASE_CRYPT_PATH)/Hash/CryptXkcp.c Hmac/CryptHmac.c Kdf/CryptHkdf.c Pk/CryptRsaBasic.c diff --git a/CryptoPkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf b/Crypto= Pkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf index 72b22a24e8..a153c0c8e4 100644 --- a/CryptoPkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf @@ -26,6 +26,7 @@ MODULE_TYPE =3D PEIM VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D BaseCryptLib|PEIM PEI_CORE + DEFINE BASE_CRYPT_PATH =3D ../BaseCryptLib =20 # # The following information is for reference only and not required by the = build tools. @@ -38,9 +39,13 @@ Hash/CryptMd5.c Hash/CryptSha1.c Hash/CryptSha256.c - Hash/CryptSm3Null.c Hash/CryptSha512.c - Hash/CryptParallelHashNull.c + $(BASE_CRYPT_PATH)/Hash/CryptCShake256.c + $(BASE_CRYPT_PATH)/Hash/CryptDispatchApPei.c + $(BASE_CRYPT_PATH)/Hash/CryptParallelHash.c + $(BASE_CRYPT_PATH)/Hash/CryptSha3.c + $(BASE_CRYPT_PATH)/Hash/CryptSm3.c + $(BASE_CRYPT_PATH)/Hash/CryptXkcp.c Hmac/CryptHmac.c Kdf/CryptHkdf.c Cipher/CryptAes.c diff --git a/CryptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf b/Cr= yptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf index 9f17ef00bf..1b33dbdaad 100644 --- a/CryptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf @@ -25,6 +25,7 @@ VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D BaseCryptLib|DXE_RUNTIME_DRIVER CONSTRUCTOR =3D RuntimeCryptLibConstructor + DEFINE BASE_CRYPT_PATH =3D ../BaseCryptLib =20 # # The following information is for reference only and not required by the = build tools. @@ -37,9 +38,9 @@ Hash/CryptMd5.c Hash/CryptSha1.c Hash/CryptSha256.c - Hash/CryptSm3Null.c Hash/CryptSha512.c Hash/CryptParallelHashNull.c + $(BASE_CRYPT_PATH)/Hash/CryptSm3.c Hmac/CryptHmac.c Kdf/CryptHkdf.c Cipher/CryptAes.c diff --git a/CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf b/Crypto= Pkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf index 40c56d1b7d..d9a9cb8d10 100644 --- a/CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf @@ -24,6 +24,7 @@ VERSION_STRING =3D 1.0 PI_SPECIFICATION_VERSION =3D 0x0001000A LIBRARY_CLASS =3D BaseCryptLib|DXE_SMM_DRIVER SMM_CORE = MM_STANDALONE + DEFINE BASE_CRYPT_PATH =3D ../BaseCryptLib =20 # # The following information is for reference only and not required by the = build tools. @@ -36,9 +37,13 @@ Hash/CryptMd5.c Hash/CryptSha1.c Hash/CryptSha256.c - Hash/CryptSm3Null.c Hash/CryptSha512.c - Hash/CryptParallelHashNull.c + $(BASE_CRYPT_PATH)/Hash/CryptCShake256.c + $(BASE_CRYPT_PATH)/Hash/CryptDispatchApMm.c + $(BASE_CRYPT_PATH)/Hash/CryptParallelHash.c + $(BASE_CRYPT_PATH)/Hash/CryptSha3.c + $(BASE_CRYPT_PATH)/Hash/CryptSm3.c + $(BASE_CRYPT_PATH)/Hash/CryptXkcp.c Hmac/CryptHmac.c Kdf/CryptHkdf.c Cipher/CryptAes.c diff --git a/CryptoPkg/Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf b/C= ryptoPkg/Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf index def990b996..6a7f4bdbf6 100644 --- a/CryptoPkg/Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf +++ b/CryptoPkg/Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf @@ -18,6 +18,7 @@ MODULE_TYPE =3D DXE_DRIVER VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D BaseCryptLib|DXE_DRIVER DXE_CORE UEFI= _APPLICATION UEFI_DRIVER + DEFINE BASE_CRYPT_PATH =3D ../BaseCryptLib =20 # # The following information is for reference only and not required by the = build tools. @@ -31,9 +32,10 @@ Cipher/CryptAes.c Hash/CryptSha256.c Hash/CryptSha512.c - Hash/CryptSm3Null.c Hash/CryptMd5.c Hash/CryptSha1.c + $(BASE_CRYPT_PATH)/Hash/CryptSm3.c + Hash/CryptParallelHashNull.c Hmac/CryptHmac.c Kdf/CryptHkdf.c Pk/CryptRsaBasic.c diff --git a/CryptoPkg/Library/MbedTlsLib/MbedTlsLib.inf b/CryptoPkg/Librar= y/MbedTlsLib/MbedTlsLib.inf index adcf770902..93f8e69383 100644 --- a/CryptoPkg/Library/MbedTlsLib/MbedTlsLib.inf +++ b/CryptoPkg/Library/MbedTlsLib/MbedTlsLib.inf @@ -13,6 +13,7 @@ MODULE_TYPE =3D BASE VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D MbedTlsLib + DEFINE OPENSSL_PATH =3D ../OpensslLib/openssl =20 # # The following information is for reference only and not required by the = build tools. @@ -21,6 +22,11 @@ # =20 [Sources] +# Openssl files list starts here + $(OPENSSL_PATH)/crypto/mem_clr.c + $(OPENSSL_PATH)/crypto/sha/keccak1600.c + $(OPENSSL_PATH)/crypto/sm3/sm3.c +# Openssl files list ends here Include/mbedtls/mbedtls_config.h mbedtls/library/aes.c mbedtls/library/asn1parse.c diff --git a/CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf b/CryptoPkg/Li= brary/MbedTlsLib/MbedTlsLibFull.inf index 7715392a9d..98695312cf 100644 --- a/CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf +++ b/CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf @@ -13,6 +13,7 @@ MODULE_TYPE =3D BASE VERSION_STRING =3D 1.0 LIBRARY_CLASS =3D MbedTlsLib + DEFINE OPENSSL_PATH =3D ../OpensslLib/openssl =20 # # The following information is for reference only and not required by the = build tools. @@ -21,6 +22,11 @@ # =20 [Sources] +# Openssl files list starts here + $(OPENSSL_PATH)/crypto/mem_clr.c + $(OPENSSL_PATH)/crypto/sha/keccak1600.c + $(OPENSSL_PATH)/crypto/sm3/sm3.c +# Openssl files list ends here Include/mbedtls/mbedtls_config.h mbedtls/library/aes.c mbedtls/library/asn1parse.c --=20 2.26.2.windows.1 --_002_PH0PR11MB5046161C28B8A905D356E4D9F7E62PH0PR11MB5046namp_--