meta-wolfssl/recipes-core/images/wolfprovider-images/README.md

3.5 KiB

wolfProvider Minimal Images

Minimal demo images showcasing wolfProvider integration with OpenSSL 3.x in various configurations.

Overview

These images demonstrate different wolfProvider configurations for OpenSSL 3.x integration. Each image is self-contained and requires no local.conf configuration (except FIPS images which require wolfssl-fips.conf).

Available Images

1. wolfprovider-image-minimal

Standalone mode, non-FIPS

  • wolfProvider configured as an additional provider alongside OpenSSL's default
  • Applications can explicitly load wolfProvider or use it alongside the default provider
  • Includes test utilities and unit tests

Configuration:

# Enable demo images
WOLFSSL_DEMOS = "wolfprovider-image-minimal"

if enabling fips add:

# In build/conf/local.conf:
require /path/to/meta-wolfssl/conf/wolfssl-fips.conf

Build:

bitbake wolfprovider-image-minimal

2. wolfprovider-replace-default-image-minimal

Replace-default mode

  • wolfProvider replaces OpenSSL's default provider
  • All OpenSSL operations automatically use wolfProvider
  • No code changes needed - transparent drop-in replacement

Configuration:

# Enable demo images
WOLFSSL_DEMOS = "wolfprovider-replace-default-image-minimal"

if enabling fips add:

# In build/conf/local.conf:
require /path/to/meta-wolfssl/conf/wolfssl-fips.conf

Build:

bitbake wolfprovider-replace-default-image-minimal

What's Included

All images include:

  • Everything from wolfssl-image-minimal
  • wolfSSL (or wolfSSL FIPS) with wolfProvider support
  • OpenSSL 3.x with wolfProvider backend
  • wolfProvider environment setup tools (wolfproviderenv, wolfprovidercmd)
  • Unit tests (standalone mode images only)

Testing

Inside QEMU, test wolfProvider:

# Run wolfProvider environment setup (standalone mode only)
wolfprovidertest

# Run wolfProvider command-line tests
wolfprovidercmd

# Run wolfProvider environment setup
wolfproviderenv

# Verify provider configuration (replace-default images)
openssl list -providers

How It Works

Each image directory contains bbappend files that automatically configure packages:

  • wolfssl_%.bbappend or wolfssl-fips_%.bbappend: Configures wolfSSL with wolfProvider support
  • openssl_%.bbappend: Configures OpenSSL to support wolfProvider (standalone or replace-default)
  • wolfprovider_%.bbappend: Enables unit tests (standalone mode only)

All configurations use conditional functions (wolfssl_osp_include_if_provider) that automatically detect the provider and include the appropriate configuration files.

Mode Comparison

Standalone Mode

  • wolfProvider is an additional provider
  • Applications must explicitly load wolfProvider
  • OpenSSL's default provider remains available
  • Useful for testing and selective adoption

Replace-Default Mode

  • wolfProvider replaces OpenSSL's default provider
  • All OpenSSL operations automatically use wolfProvider
  • No application code changes needed
  • Useful for system-wide deployment

Requirements

  • FIPS images: Valid wolfSSL FIPS commercial bundle and wolfssl-fips.conf configuration
  • Non-FIPS images: No additional requirements

More Information