Commit Graph

136 Commits (master)

Author SHA1 Message Date
Chris Conlon 16aae6f302
Merge pull request #170 from MarkAtwood/fix/license-identifiers
fix: correct recipe licenses to match upstream sources
2026-10-23 11:42:29 -06:00
David Garske ca2044554c wolfboot: build the PolarFire SoC M-mode target with the Yocto RISC-V toolchain and sign its FIT with ECC384 2026-10-09 15:33:32 -07:00
Mark Atwood 8d24ad250c fix: correct recipe licenses to match upstream sources
Every recipe below builds sources whose headers say "or (at your
option) any later version", so none is -only.

- 15 recipes GPL-3.0-only -> GPL-3.0-or-later (wolfssl, linuxkm,
  wolfcrypttest/benchmark, wolfprovider(+cmd/test), wolfengine,
  wolfssh, wolfpkcs11, wolfhsm, wolfboot, wolftpm, wolfcrypt-py)
- wolfmqtt, wolfclu: GPL-2.0-only -> GPL-3.0-or-later (sources are
  v3+). wolfclu checksum moved from LICENSE (GPLv2 text) to COPYING
  (GPLv3 text) at the pinned rev.
- wolfssl-py, wolf-py-tests, wolftpm-wrap-test: GPL-2.0-only ->
  GPL-2.0-or-later (sources at those pins are v2+).
- README: wolfSSL is GPLv3 (or later), not GPLv2.

Unchanged: fips-ready recipes (source is a user-supplied bundle) and
wolfssl-gnutls-wrapper (upstream has no license file).
2026-10-06 13:19:28 -07:00
night1rider 363b20b222 Update wolfssl to 5.9.4, wolfprovider to 1.2.2 and wolfengine to 1.4.1
update-version.sh: use the release tag from the GitHub API and report successful updates.
wolfhsm: note its version-guard patch is a no-op on 5.9.4, kept for older FIPS/commercial bundles.
2026-09-29 13:20:21 -06:00
Aidan Garske 1f23db5eaa Update wolfTPM recipe to 4.2.0 2026-09-14 16:05:59 -07:00
JacobBarthelmeh 22d7b05406 patch for WC_PK_TYPE_EC_CHECK_PUB_KEY enum missing in wolfSSL 5.9.2 2026-09-03 14:20:55 -06:00
JacobBarthelmeh 4311e14978 fix for rebuild of wolfboot check, change wolfhsm name to match convention, add depend on virtual/wolfssl 2026-09-01 10:05:42 -06:00
JacobBarthelmeh 8128ebd873 narrow scope of changes and resolve for different versions of Yocto used 2026-08-26 14:53:11 -06:00
JacobBarthelmeh bab0239f81 use compatibility helper for yocto syntax 2026-08-26 14:53:01 -06:00
JacobBarthelmeh 7434ef2b9d add wolfHSM recipe 2026-07-28 10:22:27 -06:00
JacobBarthelmeh 965c98d134 add option to use external wolfSSL source with wolfBOOT build 2026-07-28 10:14:03 -06:00
night1rider f5f38d5728 Gate wolfcrypt-py typing-extensions dependency to unpatched releases so legacy series without the package still build 2026-07-23 20:44:31 -06:00
night1rider c76704c3c0 Add typing-extensions compat patch and runtime dependency for wolfcrypt-py 2026-07-23 20:38:04 -06:00
night1rider 239acd51b3 Fix old fips/commerical package building method 2026-07-20 09:31:42 -06:00
night1rider ca8c764cc8 wolfcrypt-py: apply PEP 621 license compat patch on setuptools 61-76 Yocto releases 2026-07-17 18:48:32 -06:00
night1rider 39b5f26e7b Update wolfssl python packages 2026-07-17 15:43:31 -06:00
night1rider 4c1ac71efc Add helper function to remove values associated with bitbake variables 2026-07-17 13:41:11 -06:00
night1rider 35c4c41f97 Upgrade wolftpm to v4.1.0 and add compile macro map for AES_BLOCK_SIZE 2026-07-17 11:41:47 -06:00
night1rider 43398082fa disable fwtpm server 2026-07-17 10:40:25 -06:00
night1rider f80ebaa522 Add needed hook to get mlkem fix for wolfSSH packages 2026-07-17 09:38:35 -06:00
night1rider cf7678d892 Update wolfSSL and related recipes to latest releases
- wolfssl:      5.9.1  -> 5.9.2
- wolfmqtt:     2.0.0  -> 2.1.0
- wolfssh:      1.4.22 -> 1.5.0
- wolftpm:      3.10.0 -> 4.0.0
- wolfclu:      0.1.8  -> 0.2.0
- wolfprovider: 1.1.1  -> 1.2.0
2026-07-06 12:06:14 -06:00
JacobBarthelmeh 1f5a9bb273 update wolfboot recipe for use with older Thud builds 2026-06-12 11:39:58 -06:00
night1rider 429eea37f2 Revise logic regarding version switching for specific syntax, and add needed updates to use Wrynose yocto lts release 2026-06-05 01:53:05 -06:00
JacobBarthelmeh a727d8674b
Merge pull request #164 from dgarske/wolfboot_bb
wolfBoot: add Yocto/OE secure bootloader recipes
2026-05-11 14:55:44 -06:00
David Garske d592d2cff6 wolfboot: switch to upstream wolfssl/wolfBoot master after PR #763 merge 2026-05-05 10:21:45 -07:00
Kareem 1450a76899 Ensure target directory exists for dummy autogen.sh file in do_configure_disable_autogen. 2026-04-29 17:06:04 -07:00
David Garske c7c735d939 wolfboot: pin to fit_compressed branch for FIT ramdisk + gzip support
Bumps SRC_URI to dgarske/wolfBoot fit_compressed and updates SRCREVs to
pull in the FIT ramdisk extraction (RAMDISK build switch +
linux,initrd-{start,end} DTB fixup) and the gzip subimage decompression
work. Required by ZynqMP boards (e.g. Gilat ZCU102) that ship the
initramfs as a separate FIT ramdisk node rather than bundling it into
the kernel image.

wolfssl SRCREV pinned to v5.9.1-stable to match what fit_compressed
points at via lib/wolfssl.

Validated end-to-end on ZCU102: FSBL -> ATF -> wolfBoot loads kernel +
ramdisk to 0x40000000, patches /chosen/linux,initrd-{start,end}, signed
image (RSA4096+SHA3-384) verifies, kernel boots and unpacks initramfs.
2026-04-29 15:41:08 -07:00
David Garske 1b58000aa4 wolfBoot: add Yocto/OE secure bootloader recipes
Add wolfBoot secure boot support to meta-wolfssl. Four new recipes
cross-compile wolfboot.elf, build host-side signing/keygen tools,
and sign kernel FIT images with RSA4096+SHA3-384 for verified boot.

New recipes:
  wolfboot.inc                    - shared SRC_URI, LICENSE, SRCREVs
  wolfboot_git.bb                 - cross-compiles wolfboot.elf from a
                                    user-selected config/examples/ template;
                                    embeds a user-supplied RSA4096 public key
  wolfboot-keytools-native_git.bb - native wolfboot-keygen / wolfboot-sign
  wolfboot-signed-image.bb        - signs kernel FIT with RSA4096+SHA3-384

Supporting files:
  xilinx-bootbin_%.bbappend       - replaces U-Boot with wolfBoot in BOOT.BIN
                                    on ZynqMP (gated by WOLFBOOT_ENABLE="1");
                                    uses BBFILES_DYNAMIC for meta-xilinx-tools
  conf/layer.conf                 - registers wolfboot BBFILES globs and
                                    PREFERRED_PROVIDER
  README.md                       - usage guide, key provisioning, ZynqMP notes

Design decisions:
- Signing key is user-supplied out-of-band (WOLFBOOT_SIGNING_KEY) to
  avoid leaking private key material through sstate or DEPLOY_DIR_IMAGE.
- wolfboot_git.bb uses raw make (not oe_runmake) because wolfBoot is a
  bare-metal bootloader with its own -nostdlib/-ffreestanding toolchain
  flags that conflict with Yocto's CC/CFLAGS/LDFLAGS injection.
- SRCREVs use weak assignment (?=) so downstream users can override via
  local.conf to track unreleased upstream fixes.

Tested on AMD/Xilinx ZCU102 hardware with PetaLinux 2025.2:
  FSBL -> PMU FW -> ATF -> wolfBoot (EL2) -> signed FIT -> Linux
  WOLFBOOT_CONFIG="zynqmp_sdcard.config"
  WOLFBOOT_LINUX_BOOTARGS_ROOT="/dev/mmcblk0p4"
2026-04-28 11:37:27 -07:00
Zackery Backman 1d05b59a8f Remove unneeded settings for fips ready build 2026-04-17 13:39:49 -06:00
night1rider 30ac6ef992 Fips ready readme and recipes for the linux kernel and standard library package 2026-04-17 09:27:29 -06:00
Zackery Backman 1593dfdda2 Update wolfCLU to point to master to resolve compile issues with MACROs 2026-04-13 10:38:53 -06:00
night1rider b3406dc185 Update to latest packages 2026-04-13 09:09:56 -06:00
night1rider 1bf91331a0 Update the md5 license checksum 2026-03-05 17:59:05 -07:00
night1rider ae17e51ace Update mqtt, ssh, tpm, and wolfssl py packages 2026-03-05 10:40:48 -07:00
Andrew Hutchings f1ef384800
Merge pull request #159 from night1rider/fips-update-config
Fix some issues related to using FIPs kernel module and userland configurations
2026-03-04 05:45:53 +00:00
night1rider 56cfb5840c Prep for eventual update to pass a HOST CC to linux km fips auto hash process 2026-02-27 14:53:18 -07:00
night1rider 2a26716073 Auto hash for kernel module builds 2026-02-27 12:37:49 -07:00
night1rider 186bb07d83 Update the config 2026-02-25 15:06:40 -07:00
night1rider 0545779401 Update to remove kcapi setting 2026-02-23 11:07:41 -07:00
night1rider 135e920976 update configuration 2026-02-23 11:00:24 -07:00
aidan garske 34ac6f163b Update ref for WP release 2026-02-18 09:54:12 -08:00
Aidan Garske 24cc7adb4b Add back correct ref for WP 2026-02-18 09:54:12 -08:00
Paul Adelsbach b2233588a2 Wolfprov: Ensure libwolfprov.so is installed 2026-02-04 12:37:07 -08:00
Zackery 9eb5563329
Refactor finalization (#149)
* Refactor meta-wolfssl: modularize feature enablement and centralize helpers in bbclass

Refactored layer.conf to unconditionally include all recipes, moved feature-specific configuration into modular .inc files, created wolfssl-helper.bbclass with reusable do_wolfssl_autogen and do_wolfssl_check_package tasks, updated all recipes to use the new pattern, and standardized commercial license variables to be recipe-specific.

Use a virtual wolfssl to make library switching easier for fips vs non fips or other wolfSSL packages

Set wolfssl libraries as the deafualt weak Preferred_Provider option for packages

* Merged refactor and new test changes

* Combine refactor changes and add replace default and fips modes

* Add working and tested fips, replace default, non-fips, non-replace-default work

* Add FIPS replace default to layers and test all options

* Refactor bbappends to be more yocto like

* Add overide to openssl configure

* Address comment concerns

* Only do neccesary simlinks

* Only do neccesary simlinks

* Convert wolfprovider test bbappend to inc file

* Add Image minimals for all wolfprovider modes

* Fully tested images

* Get conf files from source

* Fix FIPS package issues

* Fixes 7z extraction issues, mostly around using password when the
  password has already been stripped out
* Fixes autoreconf and configure issues with the FIPS package
* Fixes wolfcrypttest and wolfcryptbenchmark not being isntalled with
  FIPS when they are selected

* Fix unstable meta data for fips package

* Fix the execution command for QEMU

The execution of QEMU to get the hash would fail when cross-compiling to
a different CPU target. This fixes it.

* gnutls-wolfssl layers

Added 3 layers
- gnutls: gnutls fork patched to use wolfssl as cryptographic
  provider
- wolfssl: wolfssl configured to work against gnutls
- wolfssl-gnutls-wrapper: shim layer that gets called by gnutls
  applications when linked against gnutls-wolfssl
- gnutls-wolfssl-tests: tests from the wolfssl-gnutls-wrapper folder
  installed under /usr/lib/wolfssl-gnutls-wrapper/

Everything gets installed under /usr ovverriding the system installed
recipes, the wrapper is symlinked in /opt.
Fips currently not supported.

* fips support

* Removed hmac generation and installation since this step is already
happening on the base recipe

* gnutls layers (from https://github.com/wolfSSL/meta-wolfssl/pull/111/)
rebased against the new staging branch (refactor-meta-wolfssl)

* - added gnutls-image-minimal;
- update layer.conf to conditionally include gnutls-image-minimal if
  included in the WOLFSSL_DEMOS;
- minor update to inc/gnutls/gnutls-enable-wolfssl.inc to by pass the
  fuzzing binaries from the base recipes;

* added do_configure[network] = "1" to the inc file (fixes networking issues on
some builds)

* Add support for GCP and tarballs

The commercial package can now be retrieved from GCP and can be a
tarball without password protection.

* fix stamp.h in append rather than main .bb

* Update wolfprovider include files with local changes

* Add messages for debug files

* Follow Debian convention for provider config in openssl.cnf

- Install provider*.conf files to /etc/ssl/openssl.cnf.d/ instead of /opt
- Remove OPENSSL_CONF environment variable approach
- Add .include directive to openssl.cnf automatically in explicit load mode
- This allows OpenSSL to automatically load the provider configuration
- Update script output to reflect the new approach

* Append conf fil

* Don't use fixed version for FIPS

User can use any FIPS wolfSSL package

* Fix naming for new fips rename

* Add final wolfprovider refactor changes

* Benchmark and GPG Error Patch to resolve build issues and disable benchmarking due to length of time it takes to run AES GCM in current port

* Fixes for when GNUPG is needed

* Update wolfProvider images to match other demo images,
add to bbclass to ensure configurations are not added
to reciepes automatically.

* Fips Image for reference

* Fix openssl target detection

This was not working properly on an ARM64 build.

* Add symlink in ossl-modules, install provider.conf from main module

* Remove debug for wolfprovider

* Add fix for loading conf in wolfproviderenv

* linuxkm: add non-FIPS kernel module recipe and initramfs integration class

This introduces support for building the wolfSSL Linux kernel module (linuxkm)
in non-FIPS configurations and adds a generic bbclass for including the module
in any initramfs image.

Key additions:
 - New recipe: wolfssl-linuxkm.bb (non-FIPS)
   * Builds linuxkm against the target kernel
   * Installs libwolfssl.ko into /lib/modules/.../extra
   * Adds auto-load entry under /etc/modules-load.d/
   * Tracks upstream wolfSSL master at commit 3062d1524

 - New class: wolfssl-initramfs.bbclass
   * Allows any initramfs image to include the linuxkm module
   * Intended to be inherited from BSP/distro override layers

This prepares the layer for future FIPS/non-FIPS split support and provides
a clean mechanism for systems that need early-boot availability of the
wolfSSL kernel module.

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>

* Add openssl ptest patch

* Fix openssl patch

* linuxkm: update to latest commit to include randomness changes for Tegra kernel

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>

* Add wolfssl-kernel-random.bbclass for kernel randomness patches

Bbclass to apply wolfSSL DRBG callback hooks to Linux kernel.
Fetches patches from wolfSSL GitHub, works with any kernel flavor.

Usage in kernel bbappend:
  inherit wolfssl-kernel-random
  WOLFSSL_KERNEL_RANDOM_PATCH = "5.17-ubuntu-jammy-tegra"

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>

* Add curl ptest patch

* Make RD and FIPS detection more robust

* Refactor to handle all cases

* Wrong file location for curl .inc

* - Updated gnutls to point to the 3.8.11 branch to get the 3.8.11 version
  of gnutls-wolfssl (https://github.com/wolfSSL/gnutls/tree/gnutls-wolfssl-3.8.11);
- added nettle 3.10 recipe, gnutls depends on nettle to be >= 3.10;
- removed conditional bbappends in favor of the demo image and
  recipes-core + inc configuration setup;

* Add fix for wolfProvider curl FIPS

* Add openssh ptest patch for wolfprovider

* Fix location of openSSH patch to point to upstream osp

* linuxkm-fips: add Yocto recipe

Add commercial FIPS LinuxKM recipe.

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>
Signed-off-by: Zackery Backman <zackery@wolfssl.com>

* Wolfprovider patch fix and other cleanup

* Add librelp ptest patch for FIPS

* Add support for wolfProvider RD unit test

* Add replace default method for fips image

* Update rev for wolfProvider

* Update wolfProvider ref

* Update ref version for pr 347

* fixing compatability and file layout for .incs porting

* fix pathing for gcrypt patch file

* FIPS-off gnutls recipes + minimal fips-off image.

* Update ref version for cmd test specific commit to pr 347

* fix buggy paths in meta-wolfssl

* Fix issue with missing config script and also add gcs to linuxkm recipe

* Move commercial bundle evaluation outside of recipes and into bbclass

* Cleanup to readmes

* remove the need for the librelp patch

* Update emails to point at support email

* add Gnutls images to the main readme

* Fix typo in example for wolfprovider meta-data and update licensing to point to 2024/correct md5sum

---------

Signed-off-by: Sameeh Jubran <sameeh@wolfssl.com>
Signed-off-by: Zackery Backman <zackery@wolfssl.com>
Co-authored-by: Aidan Garske <aidan@wolfssl.com>
Co-authored-by: Andrew Hutchings <andrew@linuxjedi.co.uk>
Co-authored-by: Reda Chouk <reda@wolfssl.com>
Co-authored-by: Paul Adelsbach <paul.adelsbach@wolfssl.com>
Co-authored-by: Sameeh Jubran <sameeh@wolfssl.com>
Co-authored-by: Andrew Hutchings <andrew@wolfssl.com>
2026-02-02 15:43:35 -07:00
JacobBarthelmeh fde10fdfc5 update wolfSSL version to 5.8.4 2025-11-24 16:44:33 -07:00
Andrew Hutchings da16487f42 Update default license file and MD5 hash
Releases currently carry the Jan 2024 license document.
2025-11-10 17:48:49 +00:00
Daniel Pouzzner 9ecf52d761
Merge pull request #113 from julek-wolfssl/wolfpkcs11
Add wolfpkcs11 recipe
2025-11-08 09:37:20 -06:00
Juliusz Sosinowicz 3d7b6acb54 Add wolfpkcs11 recipe 2025-11-07 16:30:22 +01:00
night1rider d3babe412f Update to wolfProvider and wolfSSH versions to latest 2025-11-06 16:53:03 -07:00
night1rider af10f20ae6 Update to set wolfTPM to use correct license and add call to obtain upstream batch for wolfcrypt-py 2025-11-06 15:37:02 -07:00