ReleaseMicrosoftMicrosoftpublished Jan 9, 2026seen Jun 26

microsoft/mu_basecore v2025020003.0.0

microsoft/mu_basecore

Open original ↗

Captured source

source ↗
published Jan 9, 2026seen Jun 26captured 1whttp 200method plain

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.dec to 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:2px

Specifically 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.dec regarding 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.