Skip to content

Added uefi-library: wolfCrypt as UEFI driver#559

Merged
kaleb-himes merged 1 commit intowolfSSL:masterfrom
danielinux:uefi-library
Feb 19, 2026
Merged

Added uefi-library: wolfCrypt as UEFI driver#559
kaleb-himes merged 1 commit intowolfSSL:masterfrom
danielinux:uefi-library

Conversation

@danielinux
Copy link
Copy Markdown
Member

  • Adds a new wolfssl-examples/uefi-library module:
    - UEFI wolfCrypt boot-time protocol driver (libwolfcrypt.efi)
    - Standalone UEFI test application (test.efi) with KATs
    - Build/run targets for x86_64 and IA32, including no-hw/hw variants and QEMU flows
    • Includes runtime-safe API symbol load/relocation handling in the driver:
      • Detects whether protocol function pointers are already relocated
      • Attempting hw-first boot flow with graceful fallback (via startup.nsh script intercepting error code)

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new uefi-library module providing wolfCrypt as a UEFI boot-time protocol driver with hardware acceleration support, plus a companion uefi-static module for standalone UEFI applications. The implementation includes runtime symbol relocation, CPUID-based AES-NI detection with graceful fallback, and comprehensive cryptographic test coverage.

Changes:

  • New UEFI protocol driver (libwolfcrypt.efi) exposing wolfCrypt APIs to UEFI applications
  • Standalone test application (test.efi) with KATs for AES, SHA, RSA, ECC, ML-KEM, Dilithium, etc.
  • Build system supporting x86_64/IA32, hardware/software variants, and QEMU integration
  • Runtime symbol relocation guard and CPUID-based fallback mechanism via startup.nsh

Reviewed changes

Copilot reviewed 11 out of 19 changed files in this pull request and generated no comments.

Show a summary per file
File Description
uefi-library/Makefile Build system for x86_64/IA32 with hw/nohw variants and QEMU targets
uefi-library/wolfcrypt_api.h EFI protocol definition with 680+ lines of API typedefs
uefi-library/src/driver.c EFI driver entry point with EFIAPI wrappers and runtime relocation
uefi-library/src/test_app.c Comprehensive test suite with KATs for all crypto primitives
uefi-library/src/utility_wolf.c UEFI platform utilities (1651 lines)
uefi-library/user_settings.h wolfSSL configuration for UEFI environment
uefi-library/startup.nsh Fallback script for hw→nohw driver selection
uefi-static/* Standalone UEFI application with custom string.c implementation
README.md Documentation updates for both modules
.gitignore Added *.efi and efifs/ exclusions

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

@kaleb-himes kaleb-himes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @danielinux, the driver is easy to read and understand with good documentation. Much appreciated!

@kaleb-himes kaleb-himes merged commit 1e3c2a2 into wolfSSL:master Feb 19, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants