edk2/SecurityPkg/Library
Doug Flick bfb1a45eec SecurityPkg: SecureBootVariableLib: Prevent Invalid DBX
This commit adds the ability to skip the setting the Dbx variable if
the Default being provided is less than the size of the
EFI_SIGNATURE_LIST structure. This is to prevent the
setting of an invalid DBX which would cause the system to fail to boot.

Additionally, this can be used to signal that setting the DBX
should leave DBX undefined for Platforms that want to let the OS
be the sole servicer of the DBX.

Breakdown of the math is as follows:

1. **`sizeof(EFI_SIGNATURE_LIST)`**:
   - This is the size of the `EFI_SIGNATURE_LIST` structure itself,
   which includes:
     - `EFI_GUID SignatureType` (16 bytes)
     - `UINT32 SignatureListSize` (4 bytes)
     - `UINT32 SignatureHeaderSize` (4 bytes)
     - `UINT32 SignatureSize` (4 bytes)
   - Total: `16 + 4 + 4 + 4 = 28 bytes`

2. **`SignatureHeaderSize`**:
   - This is the size of the optional signature header. If no header is
   provided, this value is `0`.

3. **`SignatureSize`**:
   - This is the size of each `EFI_SIGNATURE_DATA` entry. For an empty
   list, this value is `0`.

The total size of an empty `EFI_SIGNATURE_LIST` is:
```c
sizeof(EFI_SIGNATURE_LIST) + SignatureHeaderSize
```

1. **No Signature Header**:
   - If `SignatureHeaderSize = 0`, the size is:
     ```c
     28 + 0 = 28 bytes
     ```

2. **With a Signature Header**:
   - If `SignatureHeaderSize = 16` (example size for a header), the
   size is:
     ```c
     28 + 16 = 44 bytes
     ```

- **Minimum Size**: `28 bytes` (if `SignatureHeaderSize = 0`).
- **Additional Size**: Add the value of `SignatureHeaderSize` if a
header is included.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
2025-04-17 05:37:37 +00:00
..
AuthVariableLib Remove unnecessary RsaFree call in failing path 2025-04-17 04:11:48 +00:00
DxeImageAuthenticationStatusLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DxeImageVerificationLib SecurityPkg: Improving HashPeImageByType () logic 2025-04-09 00:13:21 +00:00
DxeRsa2048Sha256GuidedSectionExtractLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DxeTcg2PhysicalPresenceLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DxeTcgPhysicalPresenceLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DxeTpm2MeasureBootLib SecurityPkg: DxeTpm2MeasureBootLib: SECURITY PATCH 4117/4118 symbol rename 2024-01-18 19:25:14 +00:00
DxeTpmMeasureBootLib SecurityPkg: DxeTpmMeasureBootLib: SECURITY PATCH 4117/4118 symbol rename 2024-01-18 19:25:14 +00:00
DxeTpmMeasurementLib SecurityPkg: Support CcMeasurementProtocol in DxeTpmMeasurementLib 2021-12-11 17:00:53 +00:00
FmpAuthenticationLibPkcs7 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
FmpAuthenticationLibRsa2048Sha256 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashInstanceLibSha1 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashInstanceLibSha256 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashInstanceLibSha384 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashInstanceLibSha512 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashInstanceLibSm3 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
HashLibBaseCryptoRouter SecurityPkg: Add TCG PFP 1.06 support. 2024-04-30 02:21:13 +00:00
HashLibTpm2 SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PeiDxeTpmPlatformHierarchyLib SecurityPkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
PeiDxeTpmPlatformHierarchyLibNull ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib 2021-10-05 09:54:11 +00:00
PeiRsa2048Sha256GuidedSectionExtractLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PeiTcg2PhysicalPresenceLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PeiTpmMeasurementLib SecurityPkg/PeiTpmMeasurementLib: Support CC Measurement 2024-12-10 02:09:29 +00:00
PlatformPKProtectionLibVarPolicy SecurityPkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
PlatformSecureLibNull SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SecTpmMeasurementLib SecurityPkg: Add TpmMeasurementLib for SEC phase 2025-03-20 02:37:31 +00:00
SecureBootVariableLib SecurityPkg: SecureBootVariableLib: Prevent Invalid DBX 2025-04-17 05:37:37 +00:00
SecureBootVariableProvisionLib SecurityPkg: remove unused EfiSig variable in SecureBootFetchData 2024-12-04 11:05:10 +00:00
SmmTcg2PhysicalPresenceLib SecurityPkg:Consume gEdkiiTcgPhysicalPresenceInterfaceVerHobGuid 2024-07-02 03:31:31 +00:00
Tcg2PpVendorLibNull SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TcgEventLogRecordLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TcgPpVendorLibNull SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TcgStorageCoreLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TcgStorageOpalLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Tpm2CommandLib SecurityPkg/Library/TpmCommandLib: Change xor to xor_ 2024-12-03 06:25:32 +00:00
Tpm2DeviceLibDTpm SecurityPkg/Tpm2DeviceLibDTpm: Add TPM2 lib supporting SVSM vTPM 2025-03-16 20:21:44 +01:00
Tpm2DeviceLibRouter SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Tpm2DeviceLibTcg2 SecurityPkg/Tpm2DeviceLibTcg2: Make mTcg2Protocol static 2023-08-30 00:05:52 +00:00
Tpm12CommandLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Tpm12DeviceLibDTpm SecurityPkg: fix possible out of bond array access in debug traces 2025-03-03 03:14:15 +00:00
Tpm12DeviceLibTcg SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TpmCommLib SecurityPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00