From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-io1-f68.google.com (mail-io1-f68.google.com [209.85.166.68]) by mx.groups.io with SMTP id smtpd.web10.3284.1597347764862182304 for ; Thu, 13 Aug 2020 12:42:45 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20161025 header.b=V3lQs1sh; spf=pass (domain: gmail.com, ip: 209.85.166.68, mailfrom: matthewfcarlson@gmail.com) Received: by mail-io1-f68.google.com with SMTP id z6so8551872iow.6 for ; Thu, 13 Aug 2020 12:42:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tMXgFdLo9MvNprpcusTO2QVFrpvhlwM4OcfNOKMWb/U=; b=V3lQs1sh91yMxHW8/j2OisKff+Dzi7XAYpPoMdc6ZQS23tTqP/WlXZD2Pp2g/tfE7/ URKkGaD2luQj21UqDHmepO/H3kOU7rIDwHaJ2NOzTgGzvbt74Ats73y5b71kPb6b+jzc +1UMQ/mEIvoRcQS1Qq59iA2z6s7ZPltzO3vrA83KrUPJrmkFTUlxieJ4OEJ8mySrCooV 3GRK1Y7oDgpVhBE6enGkHW0ByAIktcIuaXDBzQfdefIPp13tx+lP4oZr76vcgyLho/ON O+wFpwZ0P5TMHROOwFBsGB/FrpcC1RdpiRX1fWyJ9aJ0LHxzJ6OW44FIQ5iiPaS3eaev vVKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tMXgFdLo9MvNprpcusTO2QVFrpvhlwM4OcfNOKMWb/U=; b=RwkWh2s8SfwxCdhpblCcXbgjwRy/n0aW1N3ysKcNCOkMESRGw61xyIOSfyBBX+P6NH JYV5OPMv93TDe//7ZTCTUNDLBrRLdNl1VXklWvfp1T4wWhRdUXKQqJkjAiboQcmx1brV 0jQ8iXuVbZFfpwRXRCaL4BIb1eEfOQaAk98aKLKhg756yEb5kQyDeUeYYn5krliBloao EuOpZScrRiK3MetrgGxvy2dC5yiA34df7W2Mwj+hG/SFzakGntNVkhIkoHr/eEFm7XBf 71GDtFkhs5NKoorEtIB9vaPXDhlr/pFG0+O/C/eVwAv9N011kDlg/RXC67kZ6TYcN3U5 s2tQ== X-Gm-Message-State: AOAM531HFEHob55K92Na5VbZrX+DuuvDBbY+6ZtHTDf3GfV/OGzBVjIh hvoAMtkc8OOGjltildbGpKsCuJT3hvTt9YHi9qQ= X-Google-Smtp-Source: ABdhPJxvd5jfcWJrC9EGaEaopLuhRV/6Jst6nHlrnPmFuOxwinsoYs2/V39158ghNAgoiBM7g3itP2QhG3GHhKadk4I= X-Received: by 2002:a05:6602:24d8:: with SMTP id h24mr6275329ioe.145.1597347764098; Thu, 13 Aug 2020 12:42:44 -0700 (PDT) MIME-Version: 1.0 References: <20200812224338.287-1-matthewfcarlson@gmail.com> In-Reply-To: From: "Matthew Carlson" Date: Thu, 13 Aug 2020 12:42:34 -0700 Message-ID: Subject: Re: [PATCH v6 0/5] Use RngLib instead of TimerLib for OpensslLib To: "Yao, Jiewen" Cc: "devel@edk2.groups.io" , Ard Biesheuvel , Anthony Perard , "Wang, Jian J" , Julien Grall , "Justen, Jordan L" , Laszlo Ersek , "Gao, Liming" , Leif Lindholm , "Kinney, Michael D" , "Lu, XiaoyuX" , "Liu, Zhiguang" , Sean Brogan Content-Type: multipart/alternative; boundary="0000000000000fdcdf05acc7827f" --0000000000000fdcdf05acc7827f Content-Type: text/plain; charset="UTF-8" I'll file a new bugzilla. https://bugzilla.tianocore.org/show_bug.cgi?id=2897 -Matthew Carlson On Thu, Aug 13, 2020 at 8:15 AM Yao, Jiewen wrote: > Thanks Matthew. > > I am OK, if you want to address the RDSEED in follow-up patch series. > > Would you please file a new Bugzilla to record this, so we won't lose the > information ? > > > > > -----Original Message----- > > From: matthewfcarlson@gmail.com > > Sent: Thursday, August 13, 2020 6:44 AM > > To: devel@edk2.groups.io > > Cc: Ard Biesheuvel ; Anthony Perard > > ; Yao, Jiewen ; Wang, > > Jian J ; Julien Grall ; Justen, > Jordan L > > ; Laszlo Ersek ; Gao, > Liming > > ; Leif Lindholm ; Kinney, > Michael D > > ; Lu, XiaoyuX ; Liu, > > Zhiguang ; Sean Brogan > > ; Matthew Carlson > > > > Subject: [PATCH v6 0/5] Use RngLib instead of TimerLib for OpensslLib > > > > From: Matthew Carlson > > > > Hello all, > > > > This patch contains a fix for Bugzilla 1871. > > There's been a good bit of community discussion around the topic, > > so below follows a general overview of the discussion and what this > patch does. > > > > Back in Devel message#40590 ( > https://edk2.groups.io/g/devel/message/40590) > > around the patch series that updates OpenSSL to 1.1.1b, a comment was > made > > that suggested that platforms be in charge of the entropy/randomness that > > is provided to OpenSSL as currently the entropry source seems to be a > > hand-rolled random number generator that uses the PerformanceCounter from > > TimerLib. This causes OpenSSL to depend on TimerLib, which is often > platform > > specific. In addition to being a potentially weaker source of randomness, > > this also poses a challenge to compile BaseCryptLibOnProtocol with a > platform- > > agnostic version of TimerLib that works universally. > > > > The solution here is to allow platform to specify their source of > entropy in > > addition to providing two new RngLibs: one that uses the TimerLib as > well as > > one that uses RngProtocol to provide randomness. Then the decision to use > > RDRAND or other entropy sources is up to the platform. Mixing various > entropy > > sources is the onus of the platform. It has been suggested on > Devel#40590 and > > BZ#1871 that there should be mixing of the PerformanceCounter and RDRAND > > using > > something similar to the yarrow alogirthm that FreeBSD uses for example. > This > > patch series doesn't offer an RngLib that offers that sort of mixing as > the > > ultimate source of random is defined by the platform. > > > > This patch series offers three benefits: > > 1. Dependency reduction: Removes the need for a platform specific timer > > library. We publish a single binary used on numerous platforms for > > crypto and the introduced timer lib dependency caused issues because we > > could not fulfill our platform needs with one library instance. > > > > 2. Code maintenance: Removing this additional code and leveraging an > existing > > library within Edk2 means less code to maintain. > > > > 3. Platform defined quality: A platform can choose which instance to use > and > > the implications of that instance. > > > > This patch series seeks to address five seperate issues. > > 1) Use RngLib interface to generate random entropy in rand_pool > > 2) Remove dependency on TimerLib in OpensslLib > > 3) Add a new version of RngLib implemented by TimerLib > > 4) Add a new version of RngLib implemented by EFI_RNG_PROTOCOL > > 5) Add RngLib to platforms in EDK2 such as ArmVirtPkg and OvmfPkg > > > > Since this changes the dependencies of OpenSSL, this has the potential > of being > > a breaking change for platforms in edk2-platforms. The easiest solution > is just > > to use the RngLib that uses the TimerLib as this closely mimics the > behavior of > > OpenSSL prior to this patch series. There is also a null version of > RngLib for > > CI environments that need this change > > (https://edk2.groups.io/g/devel/message/50432). Though it should be > pointed > > out > > that in CI environments, the null version of BaseCryptLib or OpenSSL > should be > > used. > > > > In addition, it has been suggested that > > 1) Add AsmRdSeed to BaseLib. > > 2) Update BaseRngLib to use AsmRdSeed() for the random number, > > if RdSeed is supported (CPUID BIT18) > > > > However, this is largely out of scope for this particular patch series > and > > will likely need to be in a follow-up series later. > > > > It is my understanding that the OpenSSL code uses the values provided as > a > > randomness pool rather than a seed or random numbers itself, so the > > requirements for randomness are not quite as stringent as other > applications. > > > > For the ArmVirtPkg and OvmfPkg platforms, the patch series here just > adds in > > the TimerLib based RngLib as that is similar to the functionality of > before. > > It is added as a common library so any custom RngLib defined in the DSC > > should take precedence over the TimerLibRngLib. > > > > Ref: https://github.com/tianocore/edk2/pull/845 > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1871 > > > > Cc: Ard Biesheuvel > > Cc: Anthony Perard > > Cc: Jiewen Yao > > Cc: Jian J Wang > > Cc: Julien Grall > > Cc: Jordan Justen > > Cc: Laszlo Ersek > > Cc: Liming Gao > > Cc: Leif Lindholm > > Cc: Michael D Kinney > > Cc: Xiaoyu Lu > > Cc: Zhiguang Liu > > Cc: Sean Brogan > > > > Signed-off-by: Matthew Carlson > > > > > > Matthew Carlson (5): > > MdePkg: TimerRngLib: Added RngLib that uses TimerLib > > MdePkg: BaseRngLibDxe: Add RngLib that uses RngDxe > > OvmfPkg: Add RngLib based on TimerLib for Crypto > > ArmVirtPkg: Add RngLib based on TimerLib for CryptoPkg > > CryptoPkg: OpensslLib: Use RngLib to generate entropy in rand_pool > > > > CryptoPkg/Library/OpensslLib/rand_pool.c | 203 > ++------------------ > > CryptoPkg/Library/OpensslLib/rand_pool_noise.c | 29 --- > > CryptoPkg/Library/OpensslLib/rand_pool_noise_tsc.c | 43 ----- > > MdePkg/Library/BaseRngLibDxe/RngDxeLib.c | 200 > > +++++++++++++++++++ > > MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c | 187 > > ++++++++++++++++++ > > ArmVirtPkg/ArmVirt.dsc.inc | 1 + > > CryptoPkg/CryptoPkg.dsc | 1 + > > CryptoPkg/Library/OpensslLib/OpensslLib.inf | 15 +- > > CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 15 +- > > CryptoPkg/Library/OpensslLib/rand_pool_noise.h | 29 --- > > MdePkg/Library/BaseRngLibDxe/BaseRngLibDxe.inf | 38 ++++ > > MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 40 ++++ > > MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni | 17 ++ > > MdePkg/MdePkg.dsc | 5 +- > > OvmfPkg/Bhyve/BhyvePkgX64.dsc | 1 + > > OvmfPkg/OvmfPkgIa32.dsc | 1 + > > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > > OvmfPkg/OvmfPkgX64.dsc | 1 + > > OvmfPkg/OvmfXen.dsc | 1 + > > 19 files changed, 514 insertions(+), 314 deletions(-) > > delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise.c > > delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise_tsc.c > > create mode 100644 MdePkg/Library/BaseRngLibDxe/RngDxeLib.c > > create mode 100644 MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c > > delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise.h > > create mode 100644 MdePkg/Library/BaseRngLibDxe/BaseRngLibDxe.inf > > create mode 100644 > > MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf > > create mode 100644 > > MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni > > > > -- > > 2.27.0.windows.1 > > --0000000000000fdcdf05acc7827f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I'll file a new bugzilla.

On Thu, Aug 13, 2020 at 8:15 AM Yao,= Jiewen <jiewen.yao@intel.com> wrote:
Tha= nks Matthew.

I am OK, if you want to address the RDSEED in follow-up patch series.

Would you please file a new Bugzilla to record this, so we won't lose t= he information ?



> -----Original Message-----
> From:
m= atthewfcarlson@gmail.com <matthewfcarlson@gmail.com>
> Sent: Thursday, August 13, 2020 6:44 AM
> To: devel@ed= k2.groups.io
> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>; Anthony Perard
> <ant= hony.perard@citrix.com>; Yao, Jiewen <jiewen.yao@intel.com>; Wang,
> Jian J <= jian.j.wang@intel.com>; Julien Grall <julien@xen.org>; Justen, Jordan L
> <jor= dan.l.justen@intel.com>; Laszlo Ersek <lersek@redhat.com>; Gao, Liming
> <liming.g= ao@intel.com>; Leif Lindholm <leif@nuviainc.com>; Kinney, Michael D
> <mi= chael.d.kinney@intel.com>; Lu, XiaoyuX <xiaoyux.lu@intel.com>; Liu,
> Zhiguang <zhiguang.liu@intel.com>; Sean Brogan
> <sea= n.brogan@microsoft.com>; Matthew Carlson
> <mat= thewfcarlson@gmail.com>
> Subject: [PATCH v6 0/5] Use RngLib instead of TimerLib for OpensslLib<= br> >
> From: Matthew Carlson <macarl@microsoft.com>
>
> Hello all,
>
> This patch contains a fix for Bugzilla 1871.
> There's been a good bit of community discussion around the topic,<= br> > so below follows a general overview of the discussion and what this pa= tch does.
>
> Back in Devel message#40590 (https://edk2.groups.io= /g/devel/message/40590)
> around the patch series that updates OpenSSL to 1.1.1b, a comment was = made
> that suggested that platforms be in charge of the entropy/randomness t= hat
> is provided to OpenSSL as currently the entropry source seems to be a<= br> > hand-rolled random number generator that uses the PerformanceCounter f= rom
> TimerLib. This causes OpenSSL to depend on TimerLib, which is often pl= atform
> specific. In addition to being a potentially weaker source of randomne= ss,
> this also poses a challenge to compile BaseCryptLibOnProtocol with a p= latform-
> agnostic version of TimerLib that works universally.
>
> The solution here is to allow platform to specify their source of entr= opy in
> addition to providing two new RngLibs: one that uses the TimerLib as w= ell as
> one that uses RngProtocol to provide randomness. Then the decision to = use
> RDRAND or other entropy sources is up to the platform. Mixing various = entropy
> sources is the onus of the platform. It has been suggested on Devel#40= 590 and
> BZ#1871 that there should be mixing of the PerformanceCounter and RDRA= ND
> using
> something similar to the yarrow alogirthm that FreeBSD uses for exampl= e. This
> patch series doesn't offer an RngLib that offers that sort of mixi= ng as the
> ultimate source of random is defined by the platform.
>
> This patch series offers three benefits:
> 1. Dependency reduction: Removes the need for a platform specific time= r
> library.=C2=A0 We publish a single binary used on numerous platforms f= or
> crypto and the introduced timer lib dependency caused issues because w= e
> could not fulfill our platform needs with one library instance.
>
> 2. Code maintenance: Removing this additional code and leveraging an e= xisting
> library within Edk2 means less code to maintain.
>
> 3. Platform defined quality: A platform can choose which instance to u= se and
> the implications of that instance.
>
> This patch series seeks to address five seperate issues.
>=C2=A0 =C2=A01) Use RngLib interface to generate random entropy in rand= _pool
>=C2=A0 =C2=A02) Remove dependency on TimerLib in OpensslLib
>=C2=A0 =C2=A03) Add a new version of RngLib implemented by TimerLib
>=C2=A0 =C2=A04) Add a new version of RngLib implemented by EFI_RNG_PROT= OCOL
>=C2=A0 =C2=A05) Add RngLib to platforms in EDK2 such as ArmVirtPkg and = OvmfPkg
>
> Since this changes the dependencies of OpenSSL, this has the potential= of being
> a breaking change for platforms in edk2-platforms. The easiest solutio= n is just
> to use the RngLib that uses the TimerLib as this closely mimics the be= havior of
> OpenSSL prior to this patch series. There is also a null version of Rn= gLib for
> CI environments that need this change
> (https://edk2.groups.io/g/devel/message/50432).= Though it should be pointed
> out
> that in CI environments, the null version of BaseCryptLib or OpenSSL s= hould be
> used.
>
> In addition, it has been suggested that
> 1) Add AsmRdSeed to BaseLib.
> 2) Update BaseRngLib to use AsmRdSeed() for the random number,
> if RdSeed is supported (CPUID BIT18)
>
> However, this is largely out of scope for this particular patch series= and
> will likely need to be in a follow-up series later.
>
> It is my understanding that the OpenSSL code uses the values provided = as a
> randomness pool rather than a seed or random numbers itself, so the > requirements for randomness are not quite as stringent as other applic= ations.
>
> For the ArmVirtPkg and OvmfPkg platforms, the patch series here just a= dds in
> the TimerLib based RngLib as that is similar to the functionality of b= efore.
> It is added as a common library so any custom RngLib defined in the DS= C
> should take precedence over the TimerLibRngLib.
>
> Ref: https://github.com/tianocore/edk2/pull/845 > Ref: https://bugzilla.tianocore.org/show_b= ug.cgi?id=3D1871
>
> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
> Cc: Anthony Perard <anthony.perard@citrix.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Julien Grall <julien@xen.org>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Leif Lindholm <leif@nuviainc.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
>
> Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com>
>
>
> Matthew Carlson (5):
>=C2=A0 =C2=A0MdePkg: TimerRngLib: Added RngLib that uses TimerLib
>=C2=A0 =C2=A0MdePkg: BaseRngLibDxe: Add RngLib that uses RngDxe
>=C2=A0 =C2=A0OvmfPkg: Add RngLib based on TimerLib for Crypto
>=C2=A0 =C2=A0ArmVirtPkg: Add RngLib based on TimerLib for CryptoPkg
>=C2=A0 =C2=A0CryptoPkg: OpensslLib: Use RngLib to generate entropy in r= and_pool
>
>=C2=A0 CryptoPkg/Library/OpensslLib/rand_pool.c=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 203 ++------------------
>=C2=A0 CryptoPkg/Library/OpensslLib/rand_pool_noise.c=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 29 ---
>=C2=A0 CryptoPkg/Library/OpensslLib/rand_pool_noise_tsc.c=C2=A0 =C2=A0 = =C2=A0 =C2=A0|=C2=A0 43 -----
>=C2=A0 MdePkg/Library/BaseRngLibDxe/RngDxeLib.c=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 200
> +++++++++++++++++++
>=C2=A0 MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 | 187
> ++++++++++++++++++
>=C2=A0 ArmVirtPkg/ArmVirt.dsc.inc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 =C2=A01 +
>=C2=A0 CryptoPkg/CryptoPkg.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 |=C2=A0 =C2=A01 +
>=C2=A0 CryptoPkg/Library/OpensslLib/OpensslLib.inf=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 15 +-
>=C2=A0 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf=C2=A0 =C2=A0 = =C2=A0 =C2=A0 |=C2=A0 15 +-
>=C2=A0 CryptoPkg/Library/OpensslLib/rand_pool_noise.h=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 29 ---
>=C2=A0 MdePkg/Library/BaseRngLibDxe/BaseRngLibDxe.inf=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 38 ++++
>=C2=A0 MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf |=C2=A0= 40 ++++
>=C2=A0 MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni |=C2=A0= 17 ++
>=C2=A0 MdePkg/MdePkg.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A05 +-
>=C2=A0 OvmfPkg/Bhyve/BhyvePkgX64.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2= =A01 +
>=C2=A0 OvmfPkg/OvmfPkgIa32.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 |=C2=A0 =C2=A01 +
>=C2=A0 OvmfPkg/OvmfPkgIa32X64.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|= =C2=A0 =C2=A01 +
>=C2=A0 OvmfPkg/OvmfPkgX64.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0|=C2=A0 =C2=A01 +
>=C2=A0 OvmfPkg/OvmfXen.dsc=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 |=C2=A0 =C2=A01 +
>=C2=A0 19 files changed, 514 insertions(+), 314 deletions(-)
>=C2=A0 delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise.= c
>=C2=A0 delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise_= tsc.c
>=C2=A0 create mode 100644 MdePkg/Library/BaseRngLibDxe/RngDxeLib.c
>=C2=A0 create mode 100644 MdePkg/Library/BaseRngLibTimerLib/RngLibTimer= .c
>=C2=A0 delete mode 100644 CryptoPkg/Library/OpensslLib/rand_pool_noise.= h
>=C2=A0 create mode 100644 MdePkg/Library/BaseRngLibDxe/BaseRngLibDxe.in= f
>=C2=A0 create mode 100644
> MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf
>=C2=A0 create mode 100644
> MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni
>
> --
> 2.27.0.windows.1

--0000000000000fdcdf05acc7827f--