From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web11.30401.1688952394761105783 for ; Sun, 09 Jul 2023 18:26:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@byosoft.com.cn header.s=cloud-union header.b=Sr8DPrwf; spf=pass (domain: byosoft.com.cn, ip: 101.227.64.242, mailfrom: gaoliming@byosoft.com.cn) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 213DECD1F6A4 for ; Mon, 10 Jul 2023 09:26:31 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=byosoft.com.cn; s=cloud-union; t=1688952391; bh=2ADAcUzfmT9U4c0g7s4Ko2Ap/JurOttjuOEcSJMVkVA=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=Sr8DPrwfxnB6mYsgFzfxcHPnZAJ1dBa4mrTL84TiESd84a5wGrTjL5ijZI8hS0FEd jDgN3cL9M8e0uJMqKUgRgXPO/QPaskjlL+ozzGVEaCl413fhv4oRLMgmcm1FbS3h56 4KMv9ln86kv+WkVTRZ0Fi58rDsTeUz7eFtL7Pl6M= Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 169F7CD1F6F4 for ; Mon, 10 Jul 2023 09:26:31 +0800 (CST) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id D7A3DCD1F7D2 for ; Mon, 10 Jul 2023 09:26:30 +0800 (CST) Authentication-Results: walk.intel-email.com; none Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id 6BE35CD1F7F4 for ; Mon, 10 Jul 2023 09:26:27 +0800 (CST) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 10 Jul 2023 09:26:16 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Pierre Gondois'" Cc: "'Kinney, Michael D'" , "'Liu, Zhiguang'" , "'Wang, Jian J'" , "'Ard Biesheuvel'" , "'Sami Mujawar'" , "'Jose Marinho'" , "'Kun Qin'" References: <20230706085159.626374-1-pierre.gondois@arm.com> <20230706085159.626374-4-pierre.gondois@arm.com> <08f90a96-e053-cb5d-abeb-cb63b85f14cc@arm.com> <176F972B57840483.2683@groups.io> <03d09427-a2da-4ab8-ed9e-0955158b2b9b@arm.com> <176F9C2F554052EE.2683@groups.io> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYzIDMvNl0gTWRlUGtnL1JuZzogQWRkIEdVSURzIHRvIGRlc2NyaWJlIFJuZyBhbGdvcml0aG1z?= Date: Mon, 10 Jul 2023 09:26:24 +0800 Message-ID: <007f01d9b2cd$8aa15910$9fe40b30$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQGmjMCTqA9iIVmYaerhVjRQ+a1eRAIFkME6ASEuOx4BtJOxJQDLY22cARuEpxkBNEHZuAGzm4SdAYpbc+ivvt1icA== Sender: "gaoliming" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Pierre: Another option is to define two PCD for Rng algorithm in MdePkg. One PCD = value is ArmRndr GUID, another is UnSafe GUID. This way can also resolve th= e package dependency. Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Yao, Jiewen > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2023=E5=B9=B47=E6=9C=887=E6=97=A5 2= 2:34 > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; Yao, Jiewen ; Pierre > Gondois > =E6=8A=84=E9=80=81: Kinney, Michael D ; Gao, = Liming > ; Liu, Zhiguang ; Wang, > Jian J ; Ard Biesheuvel ; > Sami Mujawar ; Jose Marinho > ; Kun Qin > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs= to describe > Rng algorithms >=20 > I think a better way is to define a new library instance in other package= with > the new ARM APIs. > The old one can be kept as is. >=20 > That will limit the impact to existing platform. >=20 >=20 >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Yao, > Jiewen > > Sent: Friday, July 7, 2023 10:28 PM > > To: Pierre Gondois ; devel@edk2.groups.io > > Cc: Kinney, Michael D ; Gao, Liming > > ; Liu, Zhiguang ; > Wang, > > Jian J ; Ard Biesheuvel > ; > > Sami Mujawar ; Jose Marinho > > ; Kun Qin > > Subject: Re: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs to > describe > > Rng algorithms > > > > Thanks Pierre. > > Yes, I agree to move it to other package to resolve dependency issue. > > > > > -----Original Message----- > > > From: Pierre Gondois > > > Sent: Friday, July 7, 2023 10:25 PM > > > To: Yao, Jiewen ; devel@edk2.groups.io > > > Cc: Kinney, Michael D ; Gao, Liming > > > ; Liu, Zhiguang ; > Wang, > > > Jian J ; Ard Biesheuvel > ; > > > Sami Mujawar ; Jose Marinho > > > ; Kun Qin > > > Subject: Re: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs to > describe > > > Rng algorithms > > > > > > Hello Jiewen, > > > > > > We have the following dependency issue: > > > - the BaseRngTimerLib is in the MdePkg > > > - we need a GUID to describe the BaseRngTimerLib algorithm > > > - we cannot add the gEdkiiRngAlgorithmUnSafe in the MdePkg, and the > > > gZeroGuid is also not in the MdePkg > > > - the MdePkg should not have dependencies over other packages > > > > > > As the BaseRngTimerLib is not really standard and should not be used = in > > > production builds, > > > would you agree if it was moved to the MdeModulePkg or to the > SecurityPkg > > > (with the gEdkiiRngAlgorithmUnSafe definition) ? > > > > > > Regards, > > > Pierre > > > > > > > > > The issue we have > > > > > > On 7/7/23 15:05, Yao, Jiewen wrote: > > > > FYI: I filed https://bugzilla.tianocore.org/show_bug.cgi?id=3D4497 = to track > the > > > gEdkiiMemoryAcceptProtocolGuid issue. > > > > > > > > Thank you > > > > Yao, Jiewen > > > > > > > > > > > >> -----Original Message----- > > > >> From: devel@edk2.groups.io On Behalf Of > Yao, > > > Jiewen > > > >> Sent: Friday, July 7, 2023 8:57 PM > > > >> To: Pierre Gondois ; devel@edk2.groups.io > > > >> Cc: Kinney, Michael D ; Gao, Liming > > > >> ; Liu, Zhiguang = ; > > > Wang, > > > >> Jian J ; Ard Biesheuvel > > > ; > > > >> Sami Mujawar ; Jose Marinho > > > >> ; Kun Qin > > > >> Subject: Re: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs to > > > describe > > > >> Rng algorithms > > > >> > > > >> I don=E2=80=99t think MdePkg should have Edkii- style protocol. > > > >> > > > >> I am not sure why gEdkiiMemoryAcceptProtocolGuid is in MdePkg. > > > >> It should be in MdeModulePkg, IMHO. > > > >> > > > >> Thank you > > > >> Yao, Jiewen > > > >> > > > >>> -----Original Message----- > > > >>> From: Pierre Gondois > > > >>> Sent: Friday, July 7, 2023 8:49 PM > > > >>> To: devel@edk2.groups.io; Yao, Jiewen > > > >>> Cc: Kinney, Michael D ; Gao, Liming > > > >>> ; Liu, Zhiguang > ; > > > Wang, > > > >>> Jian J ; Ard Biesheuvel > > > ; > > > >>> Sami Mujawar ; Jose Marinho > > > >>> ; Kun Qin > > > >>> Subject: Re: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs to > > > describe > > > >>> Rng algorithms > > > >>> > > > >>> Hello Jiewen, > > > >>> > > > >>> The gEfiRngAlgorithmArmRndr GUID is to be added to the UEFI spec > with: > > > >>> - https://bugzilla.tianocore.org/show_bug.cgi?id=3D4441 > > > >>> - https://mantis.uefi.org/mantis/view.php?id=3D2386 > > > >>> > > > >>> the gEdkiiMemoryAcceptProtocolGuid GUID should not be in the UEFI > > spec, > > > >>> so I used the 'gEdkii' prefix as already used in MdePkg.dec for: > > > >>> - gEdkiiMemoryAcceptProtocolGuid > > > >>> > > > >>> Regards, > > > >>> Pierre > > > >>> > > > >>> On 7/7/23 11:14, Yao, Jiewen via groups.io wrote: > > > >>>> MdePkg can only add UEFI defined API. > > > >>>> > > > >>>> Is below defined by UEFI? > > > >>>> > > > >>>> Thank you > > > >>>> Yao, Jiewen > > > >>>> > > > >>>> > > > >>>> > > > >>>>> -----Original Message----- > > > >>>>> From: devel@edk2.groups.io On Behalf Of > > > >>>>> PierreGondois > > > >>>>> Sent: Thursday, July 6, 2023 4:52 PM > > > >>>>> To: devel@edk2.groups.io > > > >>>>> Cc: Kinney, Michael D ; Gao, Liming > > > >>>>> ; Liu, Zhiguang > ; > > > >> Yao, > > > >>>>> Jiewen ; Wang, Jian J > ; > > > >> Ard > > > >>>>> Biesheuvel ; Sami Mujawar > > > >>>>> ; Jose Marinho > ; > > > Kun > > > >>> Qin > > > >>>>> > > > >>>>> Subject: [edk2-devel] [PATCH v3 3/6] MdePkg/Rng: Add GUIDs to > > describe > > > >>> Rng > > > >>>>> algorithms > > > >>>>> > > > >>>>> From: Pierre Gondois > > > >>>>> > > > >>>>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4441 > > > >>>>> > > > >>>>> The EFI_RNG_PROTOCOL can rely on the RngLib. The RngLib has > > multiple > > > >>>>> implementations, some of them are unsafe (e.g. > BaseRngLibTimerLib). > > > >>>>> To allow the RngDxe to detect when such implementation is used, > > > >>>>> a GetRngGuid() function is added in a following patch. > > > >>>>> > > > >>>>> Prepare GetRngGuid() return values and add GUIDs describing > > > >>>>> Rng algorithms: > > > >>>>> - gEfiRngAlgorithmArmRndr > > > >>>>> to describe a Rng algorithm accessed through Arm's RNDR > instruction. > > > >>>>> [1] states that the implementation of this algorithm should be > > > >>>>> compliant to NIST SP900-80. The compliance is not guaranteed. > > > >>>>> - gEdkiiRngAlgorithmUnSafe > > > >>>>> to describe an unsafe implementation, cf. the BaseRngLibTimerLi= b. > > > >>>>> > > > >>>>> [1] Arm Architecture Reference Manual Armv8, for A-profile > > architecture > > > >>>>> sK12.1 'Properties of the generated random number' > > > >>>>> > > > >>>>> Signed-off-by: Pierre Gondois > > > >>>>> Reviewed-by: Sami Mujawar > > > >>>>> --- > > > >>>>> MdePkg/Include/Protocol/Rng.h | 20 ++++++++++++++++++++ > > > >>>>> MdePkg/MdePkg.dec | 2 ++ > > > >>>>> 2 files changed, 22 insertions(+) > > > >>>>> > > > >>>>> diff --git a/MdePkg/Include/Protocol/Rng.h > > > >>> b/MdePkg/Include/Protocol/Rng.h > > > >>>>> index baf425587b3c..ceae77ba9c73 100644 > > > >>>>> --- a/MdePkg/Include/Protocol/Rng.h > > > >>>>> +++ b/MdePkg/Include/Protocol/Rng.h > > > >>>>> @@ -67,6 +67,24 @@ typedef EFI_GUID EFI_RNG_ALGORITHM; > > > >>>>> { \ > > > >>>>> 0xe43176d7, 0xb6e8, 0x4827, {0xb7, 0x84, 0x7f, 0xfd, > 0xc4, 0xb6, > > > 0x85, > > > >>> 0x61 } > > > >>>>> \ > > > >>>>> } > > > >>>>> +/// > > > >>>>> +/// The Arm Architecture states the RNDR that the DRBG > algorithm > > > should > > > >>> be > > > >>>>> compliant > > > >>>>> +/// with NIST SP800-90A, while not mandating a particular > algorithm, > > so > > > as > > > >>> to > > > >>>>> be > > > >>>>> +/// inclusive of different geographies. > > > >>>>> +/// > > > >>>>> +#define EFI_RNG_ALGORITHM_ARM_RNDR \ > > > >>>>> + { \ > > > >>>>> + 0x43d2fde3, 0x9d4e, 0x4d79, {0x02, 0x96, 0xa8, 0x9b, 0xca= , > 0x78, > > > 0x08, > > > >>>>> 0x41} \ > > > >>>>> + } > > > >>>>> +/// > > > >>>>> +/// The implementation of a Random Number Generator might be > > > unsafe, > > > >>>>> when using > > > >>>>> +/// a dummy implementation for instance. Allow identifying suc= h > > > >>>>> implementation > > > >>>>> +/// with this GUID. > > > >>>>> +/// > > > >>>>> +#define EDKII_RNG_ALGORITHM_UNSAFE \ > > > >>>>> + { \ > > > >>>>> + 0x869f728c, 0x409d, 0x4ab4, {0xac, 0x03, 0x71, 0xd3, 0x09, > 0xc1, > > > 0xb3, > > > >>>>> 0xf4 } \ > > > >>>>> + } > > > >>>>> > > > >>>>> /** > > > >>>>> Returns information about the random number generation > > > >> implementation. > > > >>>>> @@ -146,5 +164,7 @@ extern EFI_GUID > > > >>> gEfiRngAlgorithmSp80090Ctr256Guid; > > > >>>>> extern EFI_GUID gEfiRngAlgorithmX9313DesGuid; > > > >>>>> extern EFI_GUID gEfiRngAlgorithmX931AesGuid; > > > >>>>> extern EFI_GUID gEfiRngAlgorithmRaw; > > > >>>>> +extern EFI_GUID gEfiRngAlgorithmArmRndr; > > > >>>>> +extern EFI_GUID gEdkiiRngAlgorithmUnSafe; > > > >>>>> > > > >>>>> #endif > > > >>>>> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > > > >>>>> index 5b8477f4cb8f..2c8f985f253e 100644 > > > >>>>> --- a/MdePkg/MdePkg.dec > > > >>>>> +++ b/MdePkg/MdePkg.dec > > > >>>>> @@ -643,6 +643,8 @@ [Guids] > > > >>>>> gEfiRngAlgorithmX9313DesGuid =3D { 0x63c4785a, > 0xca34, 0x4012, > > > >> {0xa3, > > > >>>>> 0xc8, 0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46 }} > > > >>>>> gEfiRngAlgorithmX931AesGuid =3D { 0xacd03321, > 0x777e, 0x4d3d, > > > >> {0xb1, > > > >>>>> 0xc8, 0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9 }} > > > >>>>> gEfiRngAlgorithmRaw =3D { 0xe43176d7, > 0xb6e8, 0x4827, > > {0xb7, > > > >>> 0x84, > > > >>>>> 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61 }} > > > >>>>> + gEfiRngAlgorithmArmRndr =3D { 0x43d2fde3, > 0x9d4e, 0x4d79, > > > {0x02, > > > >>> 0x96, > > > >>>>> 0xa8, 0x9b, 0xca, 0x78, 0x08, 0x41 }} > > > >>>>> + gEdkiiRngAlgorithmUnSafe =3D { 0x869f728c, 0x409d, > 0x4ab4, > > {0xac, > > > >>> 0x03, > > > >>>>> 0x71, 0xd3, 0x09, 0xc1, 0xb3, 0xf4 }} > > > >>>>> > > > >>>>> ## Include/Protocol/AdapterInformation.h > > > >>>>> gEfiAdapterInfoMediaStateGuid =3D { 0xD7C74207, > 0xA831, 0x4A26, > > > >>> {0xB1, > > > >>>>> 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }} > > > >>>>> -- > > > >>>>> 2.25.1 > > > >>>>> > > > >>>>> > > > >>>>> > > > >>>>> -=3D-=3D-=3D-=3D-=3D-=3D > > > >>>>> Groups.io Links: You receive all messages sent to this group. > > > >>>>> View/Reply Online (#106688): > > > >>> https://edk2.groups.io/g/devel/message/106688 > > > >>>>> Mute This Topic: https://groups.io/mt/99981855/1772286 > > > >>>>> Group Owner: devel+owner@edk2.groups.io > > > >>>>> Unsubscribe: https://edk2.groups.io/g/devel/unsub > > > [jiewen.yao@intel.com] > > > >>>>> -=3D-=3D-=3D-=3D-=3D-=3D > > > >>>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >> > > > >> > > > >> > > > >> > > > > > > > > > > > > >=20 >=20 >=20 >=20 >=20