Skip to content

Commit

Permalink
REBASE: Fixed Markdown errors in new Readme.md file
Browse files Browse the repository at this point in the history
  • Loading branch information
kenlautner committed Dec 16, 2023
1 parent 928294f commit 572dcd7
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions CryptoPkg/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ There may be firmware image size differences between the static and dynamic
options. Some experimentation may be required to find the solution that
provides the smallest overall firmware overhead.

# Public Library Classes
## Public Library Classes

* **BaseCryptLib** - Provides library functions based on OpenSSL for
cryptographic primitives.
Expand All @@ -26,14 +26,14 @@ provides the smallest overall firmware overhead.
* **TlsLib** - Provides TLS library functions for EFI TLS protocol.
* **HashApiLib** - Provides Unified API for different hash implementations.

# Private Library Classes
## Private Library Classes

* **OpensslLib** - Provides library functions from the openssl project.
* **MbedTlsLib** - Provides library functions from the mbedtls project.
* **IntrinsicLib** - Provides C runtime library (CRT) required by openssl
and mbedtls.

# Private Protocols and PPIs
## Private Protocols and PPIs

* **EDK II Crypto PPI** - PPI that provides all the services from
the BaseCryptLib and TlsLib library classes.
Expand All @@ -43,7 +43,7 @@ provides the smallest overall firmware overhead.
from the BaseCryptLib and TlsLib library
classes.

## Statically Linking Cryptographic Services
### Statically Linking Cryptographic Services

The figure below shows an example of a firmware module that requires the use of
cryptographic services. The cryptographic services are provided by three library
Expand All @@ -62,7 +62,7 @@ service requirements in each UEFI/PI firmware phase (SEC, PEI, DXE, UEFI,
UEFI RT, and SMM), firmware image size requirements, and firmware boot
performance requirements.

```
```text
+================================+
| EDK II Firmware Module/Library |
+================================+
Expand Down Expand Up @@ -107,7 +107,7 @@ to use static linking or dynamic linking. It is a platform configuration option
to select static linking or dynamic linking. This choice can be made globally,
per firmware module type, or for individual modules.

```
```text
+===================+ +===================+ +===================+
| EDK II PEI | | EDK II DXE/UEFI | | EDK II SMM |
| Module/Library | | Module/Library | | Module/Library |
Expand Down Expand Up @@ -172,7 +172,7 @@ also configured.

|Key | Description |
|---------|--------------------------------------------------------------------------------|
| <blank> | Family or service is always disabled. |
| blank | Family or service is always disabled. |
| C | Configurable using PcdCryptoServiceFamilyEnable. |
| C-Tls | Configurable using PcdCryptoServiceFamilyEnable. Requires TlsLib.inf. |
| C-Full | Configurable using PcdCryptoServiceFamilyEnable. Requires OpensslLibFull*.inf. |
Expand Down Expand Up @@ -261,7 +261,7 @@ following library mappings are recommended for the SEC Phase. It uses the SEC
specific version of the BaseCryptLib and the null version of the TlsLib because
TLS services are not typically used in SEC.

```
```text
[LibraryClasses.common.SEC]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
Expand All @@ -277,7 +277,7 @@ services. The following library mappings are recommended for the PEI Phase. It
uses the PEI specific version of the BaseCryptLib and the null version of the
TlsLib because TLS services are not typically used in PEI.

```
```text
[LibraryClasses.common.PEIM]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
Expand All @@ -289,7 +289,7 @@ TlsLib because TLS services are not typically used in PEI.
If dynamic linking is used, then all PEIMs except CryptoPei use the following
library mappings. The CryptoPei module uses the static linking settings.

```
```text
[LibraryClasses.common.PEIM]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLibOnProtocolPpi/PeiCryptLib.inf
Expand All @@ -312,7 +312,7 @@ It uses the DXE specific version of the BaseCryptLib and the full version of the
OpensslLib and TlsLib. If ECC services are not required then a smaller
OpensslLib instance can be used.

```
```text
[LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
Expand All @@ -325,7 +325,7 @@ If dynamic linking is used, then all DXE Drivers except CryptoDxe use the
following library mappings. The CryptoDxe module uses the static linking
settings.

```
```text
[LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf
Expand All @@ -347,7 +347,7 @@ services. The following library mappings are recommended for the SMM Phase. It
uses the SMM specific version of the BaseCryptLib and the null version of the
TlsLib.

```
```text
[LibraryClasses.common.DXE_SMM_DRIVER]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
Expand All @@ -360,7 +360,7 @@ If dynamic linking is used, then all SMM Drivers except CryptoSmm use the
following library mappings. The CryptoDxe module uses the static linking
settings.

```
```text
[LibraryClasses.common.DXE_SMM_DRIVER]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLibOnProtocolPpi/SmmCryptLib.inf
Expand All @@ -382,7 +382,7 @@ The following library mappings are recommended for UEFI Runtime Drivers. They
use the runtime specific version of the BaseCryptLib and the null version of the
TlsLib because TLS services are not typically used at runtime.

```
```text
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
Expand Down Expand Up @@ -452,7 +452,7 @@ and CryptoSmm modules.

#### Common PEI PcdCryptoServiceFamilyEnable Settings

```
```text
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
Expand All @@ -471,7 +471,7 @@ and CryptoSmm modules.

#### Common DXE and SMM PcdCryptoServiceFamilyEnable Settings

```
```text
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
Expand Down

0 comments on commit 572dcd7

Please sign in to comment.