public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "PierreGondois" <pierre.gondois@arm.com>
To: devel@edk2.groups.io
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	Zhiguang Liu <zhiguang.liu@intel.com>,
	Jiewen Yao <jiewen.yao@intel.com>,
	Jian J Wang <jian.j.wang@intel.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Sami Mujawar <sami.mujawar@arm.com>,
	Jose Marinho <Jose.Marinho@arm.com>,
	Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: [PATCH v1 0/8] SecurityPkg/MdePkg: RngLib GUID
Date: Tue,  9 May 2023 09:40:34 +0200	[thread overview]
Message-ID: <20230509074042.1523428-1-pierre.gondois@arm.com> (raw)

From: Pierre Gondois <pierre.gondois@arm.com>

This patchset follows the 'code first' approach and relies on [1].
This patchset follows the thread at [3] that aims to solve [2].
[1] and [2] are bound and this patchset aims to solve both.

In this patchset:
a-
The RngDxe can rely on the RngLib. However the RngLib has no
interface allowing to describe which Rng algorithm is implemented.
The RngDxe must advertise the algorithm that are available through
the RngGetInfo() callback.
Add a GetRngGuid() for interface to the RngLib.

b-
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.
The RngLib can rely on this Arm RNDR instruction. In order to
accurately describe the implementation using the RNDR instruction,
add a EFI_RNG_ALGORITHM_ARM_RNDR GUID [1].

c-
For the same reason as a/b, add a GUID describing unsafe RNG
algorithms, allowing to accurately describe the BaseRngLibTimerLib.

d-
Use a/b/c mechanisms/GUIDs to select a safe Rng algorithm in the
Arm implementation of the RngDxe.

[1] BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4441
[2] BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4151
[3] https://edk2.groups.io/g/devel/message/100806

Pierre Gondois (8):
  MdePkg/ArmTrngLib: Remove ASSERTs in Null implementation
  MdePkg/MdePkg.dec: Move PcdCpuRngSupportedAlgorithm to MdePkg
  MdePkg/DxeRngLib: Request raw algorithm instead of default
  MdePkg/Rng: Add GUIDs to describe Rng algorithms
  MdePkg/Rng: Add GetRngGuid() to RngLib
  SecurityPkg/RngDxe: Use GetRngGuid() when probing RngLib
  SecurityPkg/RngDxe: Select safe default Rng algorithm
  SecurityPkg/RngDxe: Simplify Rng algorithm selection for Arm

 MdePkg/Include/Library/RngLib.h               | 17 +++++
 MdePkg/Include/Protocol/Rng.h                 | 20 ++++++
 .../BaseArmTrngLibNull/BaseArmTrngLibNull.c   |  4 --
 MdePkg/Library/BaseRngLib/AArch64/Rndr.c      | 42 +++++++++++
 MdePkg/Library/BaseRngLib/BaseRngLib.inf      |  9 +++
 MdePkg/Library/BaseRngLib/Rand/RdRand.c       | 26 +++++++
 .../Library/BaseRngLibNull/BaseRngLibNull.c   | 22 ++++++
 .../BaseRngLibTimerLib/BaseRngLibTimerLib.inf |  3 +
 .../Library/BaseRngLibTimerLib/RngLibTimer.c  | 28 ++++++++
 MdePkg/Library/DxeRngLib/DxeRngLib.c          | 36 +++++++++-
 MdePkg/MdePkg.dec                             |  7 ++
 .../RngDxe/AArch64/AArch64Algo.c              | 70 +++++++++++++++----
 .../RandomNumberGenerator/RngDxe/ArmRngDxe.c  | 23 +++---
 .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  5 +-
 SecurityPkg/SecurityPkg.dec                   |  2 -
 15 files changed, 278 insertions(+), 36 deletions(-)

-- 
2.25.1


             reply	other threads:[~2023-05-09  7:42 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-09  7:40 PierreGondois [this message]
2023-05-09  7:40 ` [PATCH v1 1/8] MdePkg/ArmTrngLib: Remove ASSERTs in Null implementation PierreGondois
2023-06-29 10:23   ` Sami Mujawar
2023-06-29 20:34   ` [edk2-devel] " Kun Qin
2023-06-30 13:56     ` PierreGondois
2023-05-09  7:40 ` [PATCH v1 2/8] MdePkg/MdePkg.dec: Move PcdCpuRngSupportedAlgorithm to MdePkg PierreGondois
2023-06-29 10:23   ` Sami Mujawar
2023-06-29 20:36   ` [edk2-devel] " Kun Qin
2023-06-30 14:30     ` PierreGondois
2023-06-30 17:00       ` Kun Qin
2023-05-09  7:40 ` [PATCH v1 3/8] MdePkg/DxeRngLib: Request raw algorithm instead of default PierreGondois
2023-06-29 10:24   ` Sami Mujawar
2023-05-09  7:40 ` [PATCH v1 4/8] MdePkg/Rng: Add GUIDs to describe Rng algorithms PierreGondois
2023-05-09 13:45   ` Yao, Jiewen
2023-05-09 13:50     ` Samer El-Haj-Mahmoud
2023-05-09 13:55       ` Yao, Jiewen
2023-06-06 16:09       ` PierreGondois
2023-06-29 10:24   ` Sami Mujawar
2023-05-09  7:40 ` [PATCH v1 5/8] MdePkg/Rng: Add GetRngGuid() to RngLib PierreGondois
2023-06-29 10:27   ` Sami Mujawar
2023-05-09  7:40 ` [PATCH v1 6/8] SecurityPkg/RngDxe: Use GetRngGuid() when probing RngLib PierreGondois
2023-06-29 10:28   ` Sami Mujawar
2023-05-09  7:40 ` [PATCH v1 7/8] SecurityPkg/RngDxe: Select safe default Rng algorithm PierreGondois
2023-06-29 10:28   ` Sami Mujawar
2023-06-29 23:07     ` [edk2-devel] " Kun Qin
2023-06-30  7:22       ` Sami Mujawar
2023-05-09  7:40 ` [PATCH v1 8/8] SecurityPkg/RngDxe: Simplify Rng algorithm selection for Arm PierreGondois
2023-06-29 10:28   ` Sami Mujawar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230509074042.1523428-1-pierre.gondois@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox