microsoft/mu_basecore v2025020003.0.0
microsoft/mu_basecore
Captured source
source ↗v2025020003.0.0
Repository: microsoft/mu_basecore
Tag: v2025020003.0.0
Published: 2026-01-09T06:24:23Z
Prerelease: no
Release notes:
What's Changed
Add MockSmmVariableProtocol for GoogleTest @v-boscochen (#1608)
Change Details
Description
Add MockSmmVariableProtocol for GoogleTest
- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [x] Includes tests?
- [ ] Includes documentation?
How This Was Tested
Platform testing
Integration Instructions
N/A
NetworkPkg: Add IP address error handling in PxeBcDhcp6Sarr() @makubacki (#1596)
Change Details
Description
Return EFI_DEVICE_ERROR if the IA state is invalid instead of asserting to have consistent error handling regardless of assertion enable status and to allow better error recovery in PXE boot scenarios.
- [x] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
How This Was Tested
- CI
- PXE boot on a physical Intel system
Integration Instructions
- N/A
BaseTools: Fix MSVC AARCH64 Building of tools. @apop5 (#1597)
Change Details
Description
Latest MSVC update started wanring on zero extending of ~. Add explicit casts to fix AARCH64 build errors.
Errors can be viewed in #1587 when attempting to build tools for AARCH64 using MSVC.
- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
How This Was Tested
Local build to reproduce the errors. Local build succeeds after changes.
Integration Instructions
No integration necessary.
Update mu\_crypto to enable branch protection for Aarch64 builds @kuqin12 (#1607)
Change Details
Description
This change picks up the build that enabled branch protection for Aarch64 builds as some preboot firmware entities start to enforce such security features.
- [x] Impacts functionality?
- [x] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
How This Was Tested
This was tested on physical hardware with BTI enforced and QEMU SBSA without BTI enforced, and both booted to UEFI shell.
Integration Instructions
N/A
BaseCryptOnOneCrypto Support @Flickdm (#1570)
Change Details
Description
This pull request adds support for forwarding cryptographic library calls to the new OneCrypto protocol across DXE, SMM, and Standalone MM phases, enabling modular and version-aware cryptographic provider integration. It introduces new protocol GUIDs, implements library constructors for protocol lookup, and updates build configuration to support these changes. Additionally, it provides documentation and abstracts for the new libraries, and adds a disabled external binary dependency descriptor.
OneCrypto Protocol Integration:
- Introduced new protocol GUIDs for OneCrypto Private, MM, and DXE protocols in
CryptoPkg.decto support phase-specific cryptographic operations. - Implemented DXE, SMM, and Standalone MM library modules (
DxeCryptLib.c,SmmCryptLib.c,StandaloneMmCryptLib.c) that locate and expose the OneCrypto protocol for cryptographic services, with corresponding INF build files for each phase. [[1]](diffhunk://#diff-0cce00a8895fcfa11c3c6d94c8848f47289df9bd6274150a07f2c96e09e6b927R1-R68) [[2]](diffhunk://#diff-f8f5c27ebe0e42bfcd08c8c0560cebfe8d92d8f5c8451a706c10c0618a3007bcR1-R46) [[3]](diffhunk://#diff-e42b9ec95aa65234bba458644ff74b428eb6530b31fe38e7ae64eb87f759361dR1-R70) [[4]](diffhunk://#diff-0663d5e952a302e39ec809d00f615e405bc0e55793f2383de3738a28509337f2R1-R43) [[5]](diffhunk://#diff-a9905c4823bda1f1512d3d97a09cca3a5caf6c0ffeac07749f3b2fd1ba0d6d8aR1-R70) [[6]](diffhunk://#diff-b28eb8bf90f88fa9a7288a0165c28e23bdf17d2114ac5ee841937772438060f0R1-R45)
Documentation and Descriptions:
---
config:
layout: elk
---
classDiagram
namespace Protocol {
class OneCrypto:::highlight {
>
UINT16 Major;
UINT16 Minor;
// v1.0 ------------------------------------------
ONE_CRYPTO_PROVIDED_FUNC ONE_CRYPTO_PROVIDED_FUNC;
// ...
}
}
namespace Library {
class BaseCryptLib:::highlight {
}
class TlsLib:::library {
}
class HashApiLib:::library {
}
}
namespace LibraryInstance {
class BaseCryptOnOneCrypto:::highlight {
>
EFI_STATUS CryptoFunc(..)
}
}
namespace Driver {
class OneCryptoBinSupvMm:::driver {
>
Phase Agnostic Crypto Driver
Shared across Phases
Crypto Entry(..) // phase agnostic code
SupvMm Entry(..) // stub entry
}
class OneCryptoLoaderSupvMm:::driver {
>
}
class OneCryptoLoaderDxe:::driver {
>
}
}
namespace GenericModules {
class GenericDriver:::module {
>
Any driver that needs crypto
}
class GenericLibrary:::module {
>
Any library that needs crypto
}
}
OneCryptoLoaderSupvMm --> OneCryptoBinSupvMm : Loads Phase Agnostic Code
OneCryptoLoaderDxe --> OneCryptoBinSupvMm : Loads Phase Agnostic Code
OneCryptoBinSupvMm ..> OneCryptoLoaderSupvMm : Provides Crypto
OneCryptoBinSupvMm ..> OneCryptoLoaderDxe : Provides Crypto
OneCryptoLoaderSupvMm ..|> OneCrypto : Publishes
OneCryptoLoaderDxe ..|> OneCrypto : Publishes
BaseCryptOnOneCrypto ..|> OneCrypto : Locates
BaseCryptOnOneCrypto BaseCryptLib : Uses
HashApiLib ..> BaseCryptLib : Uses
GenericLibrary ..> BaseCryptLib : Uses
GenericDriver ..> BaseCryptLib : Uses
GenericLibrary ..> TlsLib : Uses
GenericDriver ..> HashApiLib : Uses
classDef driver fill:#187286,stroke:#333,stroke-width:2px
classDef protocol fill:#d63230,stroke:#333,stroke-width:2px
classDef library fill:#1c77c3,stroke:#333,stroke-width:2px
classDef module fill:#ff8c00,stroke:#333,stroke-width:2px
classDef highlight fill:#69995d,stroke:#333,stroke-width:2pxSpecifically this PR is addressing the following (sage green in the chart):
Build and Configuration Updates:
- Removed inclusion of test-specific PCDs from the main DSC configuration to streamline production builds.
- Added a disabled external dependency descriptor for the OneCrypto binary driver in
OneCrypto_ext_dep.json.disabled.
BaseCryptLib API Enhancements:
- Added a new API to retrieve cryptographic provider version information in
BaseCryptLib.h, improving diagnostics and compatibility checks.
Code Organization and Comments:
- Improved comments and documentation in
CryptoPkg.decregarding deprecated usage and auto-generated sections for cryptographic provider configuration.
BaseCryptOnOneCrypto
- Library implementation and safe calling usage of the phase agnostic code....
Excerpt shown — open the source for the full document.