Building FIPS-certified embedded systems just got easier. wolfSSL provides comprehensive Yocto Project support through the meta-wolfssl layer, enabling developers to integrate FIPS-validated cryptography into embedded Linux builds with reproducible, cross-platform consistency. Whether you’re developing medical devices, industrial controllers, defense systems, or IoT products, this combination delivers the security compliance regulators demand with the flexibility embedded developers need, and all in a lightweight package that’s up to 20 times smaller than alternatives.
In the world of embedded systems and IoT devices, security isn’t just a feature, it’s a fundamental requirement. For organizations building products that handle sensitive data or operate in regulated industries, FIPS (Federal Information Processing Standards) certification is often mandatory. But achieving FIPS certification while maintaining the flexibility and efficiency needed for modern embedded development can be challenging. This is where the combination of wolfSSL and the Yocto Project becomes a powerful solution.
Understanding the Challenge: Why Embedded Security Matters
Embedded systems are everywhere. They’re in medical devices monitoring patient health, industrial controllers managing critical infrastructure, automotive systems ensuring vehicle safety, and defense systems protecting national security. When these systems communicate over networks or store sensitive data, they need robust cryptographic protection. However, embedded devices face unique constraints that make security implementation challenging:
- Limited Resources: Many embedded devices have constrainedmemory, processing power, and storage capacity
- Long Lifecycles: Embedded products often remain in service for years or decades, requiring long-term security maintenance
- Regulatory Requirements: Industries like healthcare, finance, defense, and government require FIPS 140-2 or FIPS 140-3 validated cryptography
- Custom Hardware: Embedded systems run on diverse processor architectures and hardware platforms
- Build Complexity: Creating reproducible, maintainable builds across different hardware targets is essential
What is Yocto and Why Does It Matter?
The Yocto Project is an open-source collaboration that provides templates, tools, and methods to create custom Linux-based systems for embedded products, regardless of the hardware architecture. Think of it as a flexible framework that lets you build exactly the Linux distribution you need for your specific hardware and application requirements.
For companies developing FIPS-certified embedded systems, Yocto offers several critical advantages:
Reproducible Builds
FIPS certification requires demonstrating that the cryptographic module is built consistently and correctly. Yocto’s build system ensures that every build is reproducible, meaning you can recreate the exact same binary from the same source code and build configuration. This reproducibility is essential for maintaining FIPS validation across product lifecycles.
Cross-Platform Consistency
Whether you’re targeting ARM or x86, Yocto provides a consistent build environment. This means you can develop and test your FIPS-certified cryptography on one platform and deploy it confidently across multiple hardware targets.
Dependency Management
FIPS-certified cryptographic modules have specific dependencies and build requirements. Yocto’s recipe system manages these dependencies automatically, ensuring that all required libraries, tools, and configurations are present and correctly versioned.
Long-Term Maintenance
Embedded products often have support lifecycles measured in years or decades. Yocto’s layered architecture and version management make it possible to maintain and update systems over extended periods while preserving FIPS validation.
Integration with Existing Ecosystems
Many embedded developers already use Yocto or OpenEmbedded for their Linux-based products. Having FIPS-certified cryptography available as a Yocto recipe means it integrates seamlessly into existing development workflows without requiring major toolchain changes.
wolfSSL: Purpose-Built for Embedded FIPS Requirements
wolfSSL is a lightweight SSL/TLS library specifically designed for embedded and resource-constrained environments. Unlike general-purpose cryptographic libraries that were designed for servers and desktops, wolfSSL was built from the ground up with embedded systems in mind. The library typically requires only 20-100KB of memory, making it up to 20 times smaller than alternatives, while still providing comprehensive cryptographic functionality.
What makes wolfSSL particularly valuable for FIPS-certified applications is its proven track record of validation. The wolfCrypt cryptographic library that powers wolfSSL has achieved multiple FIPS certifications.
These certifications aren’t just checkboxes, they represent rigorous third-party testing and validation of the cryptographic implementations, key management, and security boundaries. For organizations in regulated industries, using a FIPS-validated cryptographic module is often a legal requirement, not just a best practice.
wolfSSL’s Comprehensive Yocto Integration
wolfSSL provides first-class support for Yocto through the meta-wolfssl layer, a dedicated OpenEmbedded/Yocto layer that makes integrating wolfSSL products into embedded Linux builds straightforward and maintainable.
The meta-wolfssl Layer
The meta-wolfssl repository (https://github.com/wolfssl/meta-wolfssl) is a complete Yocto layer that provides recipes for the entire wolfSSL product family:
- wolfSSL: The core SSL/TLS library with FIPS-validated cryptography
- wolfSSH: Lightweight SSH library for secure remote access
- wolfMQTT: MQTT client library for IoT messaging
- wolfTPM: Portable TPM 2.0 library for hardware security modules
- wolfCLU: Command-line utilities for cryptographic operations
- wolfPKCS11: PKCS#11 implementation for cryptographic token interfaces
The layer has been tested and verified across multiple Yocto releases, from older versions like Sumo (v2.5) and Zeus (v3.0) through current releases like Kirkstone (v4.0), Langdale (v4.1), Nanbield (v4.3), and Scarthgap (v5.0). This broad compatibility ensures that whether you’re maintaining legacy systems or developing new products, wolfSSL’s Yocto support will work with your chosen Yocto version.
Simple Integration Process
Adding wolfSSL to a Yocto build is straightforward. After cloning the meta-wolfssl repository, developers simply add the layer to their bblayers.conf configuration file and specify which wolfSSL products they want to include in their image. For example, to include wolfSSL with FIPS support, wolfSSH, and wolfMQTT, you would add to your local.conf:
IMAGE_INSTALL:append = " wolfssl wolfssh wolfmqtt "
The Yocto build system then handles downloading the source code, applying any necessary patches, configuring the build with appropriate options, compiling the libraries, and installing them into the target image—all automatically.
FIPS-Ready and Commercial Bundle Support
For organizations pursuing FIPS certification, the meta-wolfssl layer provides dedicated support for both FIPS-Ready and fully validated FIPS bundles. The FIPS-Ready configuration allows developers to build and test with the FIPS-validated cryptographic boundary before obtaining the commercial FIPS bundle, streamlining the development process.
The layer includes detailed documentation for building FIPS configurations, including the critical hash verification step required for FIPS integrity checking. This process ensures that the cryptographic module hasn’t been tampered with and maintains its validated state.
To use FIPS-Ready builds, developers set the WOLFSSL_TYPE variable:
WOLFSSL_TYPE = "fips-ready"
For commercial FIPS bundles, the layer supports password-protected archives and automated hash verification, ensuring that the validated cryptographic module is correctly integrated into the build.
Customization and Flexibility
Different embedded applications have different security requirements. A medical device might need TLS 1.3 with specific cipher suites, while an industrial controller might require hardware cryptographic acceleration. The meta-wolfssl layer supports extensive customization through bbappend files.
For example, if your application needs TLS 1.3 support, you can create a wolfssl_%.bbappend file that adds:
EXTRA_OECONF += "--enable-tls13"
This flexibility extends to all of wolfSSL’s configuration options, allowing you to enable or disable features, select cryptographic algorithms, configure hardware acceleration, and tune memory usage—all through the familiar Yocto configuration system.
Integration with Open Source Projects
The meta-wolfssl layer goes beyond just providing wolfSSL libraries. It includes bbappend files for popular open source projects, enabling them to use wolfSSL as their cryptographic and TLS provider. This includes:
- curl: The ubiquitous data transfer tool, configured to use wolfSSL for HTTPS
- OpenSSH: Secure shell implementation with wolfSSL cryptography
- strongSwan: IPsec VPN solution with wolfSSL support
- libssh2: SSH2 client library using wolfSSL
- tcpdump: Network packet analyzer with wolfSSL decryption support
These integrations mean that developers can build complete embedded systems with FIPS-validated cryptography throughout the software stack, not just in their custom applications.
Continuous Integration and Quality Assurance
wolfSSL’s commitment to Yocto support extends beyond just providing recipes—it includes comprehensive testing and continuous integration to ensure reliability.
Docker-Based Testing
The wolfSSL repository includes Docker configurations specifically for Yocto testing. The Docker/yocto directory contains a Dockerfile that sets up a complete Yocto build environment, clones the Poky reference distribution, integrates the meta-wolfssl layer, and builds a minimal image with wolfSSL products included.
This Docker-based approach serves multiple purposes. It provides a reproducible test environment for continuous integration, offers developers a quick way to experiment with wolfSSL on Yocto without setting up a full build environment, and serves as a reference implementation for integrating wolfSSL into custom Yocto builds.
The buildAndPush.sh script automates building Docker images for multiple Yocto versions (Kirkstone, Langdale, and Scarthgap), ensuring that wolfSSL’s Yocto support is tested across different releases. These images are published to DockerHub, making them available for developers to use as base images or reference implementations.
GitHub Actions Workflows
wolfSSL maintains an extensive suite of GitHub Actions workflows that test the library across numerous platforms, configurations, and integration scenarios. The comprehensive testing across different Linux distributions, compilers, and configurations ensures that wolfSSL builds reliably in the diverse environments that Yocto targets.
The packaging workflow tests creating Debian packages, which shares many of the same concerns as Yocto packaging: dependency management, installation paths, and configuration file handling. The multi-architecture workflow tests ARM, x86, and other processor architectures, ensuring that wolfSSL works correctly on the diverse hardware platforms that Yocto supports.
Platform-Specific Testing
The wolfSSL repository includes extensive documentation for cross-compiling to embedded platforms using Yocto-based SDKs. For example, the STM32MP13 and STM32MP25 documentation shows how to use the OpenSTLinux SDK (which is Yocto-based) to cross-compile wolfSSL with hardware cryptographic acceleration support.
These platform-specific guides demonstrate that wolfSSL’s Yocto support isn’t just theoretical—it’s actively used and tested on real embedded hardware platforms. The documentation includes performance benchmarks showing the benefits of hardware acceleration, configuration examples for different use cases, and troubleshooting guidance for common issues.
Real-World Use Cases: Where Yocto and FIPS Meet
The combination of wolfSSL’s FIPS-validated cryptography and Yocto’s flexible build system addresses real-world challenges across multiple industries:
Medical Devices
Medical devices that transmit patient data must comply with HIPAA regulations and often require FIPS-validated cryptography. A medical device manufacturer building a patient monitoring system on a custom ARM-based platform can use Yocto to create a minimal Linux distribution with exactly the components needed, including wolfSSL for FIPS-validated TLS connections to hospital networks. The reproducible build system ensures that every device ships with the same validated cryptographic implementation.
Industrial Control Systems
Industrial IoT devices and SCADA systems often operate in harsh environments with limited connectivity and must maintain security over decades of operation. Using Yocto with wolfSSL allows manufacturers to build hardened Linux systems with FIPS-validated cryptography for secure remote access and data transmission. The long-term support model of both Yocto and wolfSSL ensures that security updates can be maintained throughout the product lifecycle.
Defense and Government Systems
Military and government systems have strict security requirements, including mandatory FIPS 140-2 or 140-3 validation. These systems often use custom hardware platforms and require extensive customization. Yocto’s flexibility combined with wolfSSL’s FIPS-validated cryptography provides a path to meeting these requirements while maintaining the ability to customize and optimize for specific mission requirements.
Automotive Systems
Modern vehicles are increasingly connected, with requirements for secure over-the-air updates, vehicle-to-vehicle communication, and cloud connectivity. Automotive-grade Linux distributions built with Yocto can incorporate wolfSSL’s FIPS-validated cryptography to meet emerging automotive security standards while maintaining the real-time performance and resource efficiency required in automotive environments.
Financial Services
Point-of-sale terminals, ATMs, and payment processing devices must comply with PCI-DSS requirements and often require FIPS-validated cryptography. These devices typically run on embedded Linux systems built with Yocto. Using wolfSSL provides the required FIPS validation while maintaining the small footprint and performance needed for payment processing applications.
Getting Started: A Practical Path Forward
For organizations considering wolfSSL and Yocto for their FIPS-certified embedded systems, the path forward is well-documented and supported:
Step 1: Evaluate with Open Source
Start by experimenting with the open-source wolfSSL library and meta-wolfssl layer. Clone the repositories, build a test image with Yocto, and evaluate whether wolfSSL meets your functional requirements. The open-source version includes all the cryptographic functionality (though without FIPS validation) and allows you to test integration with your hardware platform and application.
Step 2: Prototype with FIPS-Ready
If FIPS certification is required, download the FIPS-Ready bundle from wolfSSL’s website. This bundle allows you to develop and test with the FIPS cryptographic boundary before purchasing the commercial FIPS bundle. The meta-wolfssl layer includes detailed instructions for building FIPS-Ready configurations with Yocto, including the hash verification process.
Step 3: Deploy with Commercial FIPS
Once your design is validated and you’re ready for production, obtain the commercial FIPS bundle from wolfSSL. This bundle includes the FIPS-validated cryptographic module with the necessary documentation and support for maintaining FIPS compliance. The meta-wolfssl layer supports commercial bundles with automated build integration.
Step 4: Maintain and Update
Throughout your product lifecycle, leverage Yocto’s layer system and wolfSSL’s long-term support to maintain security updates while preserving FIPS validation. The meta-wolfssl layer is actively maintained and updated to support new Yocto releases and wolfSSL versions.
Why This Combination Works
The synergy between wolfSSL and Yocto isn’t accidental, it reflects a deep understanding of embedded systems development challenges:
Size Matters: wolfSSL’s small footprint (20-100KB) aligns perfectly with the resource-constrained environments that Yocto targets. You can build secure systems without requiring excessive memory or storage.
Flexibility Without Fragmentation: Yocto provides flexibility to customize your Linux distribution, while wolfSSL’s extensive configuration options allow cryptographic customization. Together, they enable tailored solutions without creating unmaintainable custom code.
Standards Compliance: Both projects prioritize standards compliance. Yocto follows Linux and open-source best practices, while wolfSSL implements current TLS standards and maintains FIPS validation. This alignment simplifies compliance efforts.
Long-Term Support: Embedded products have long lifecycles. Both Yocto and wolfSSL provide long-term support and maintenance, ensuring that products can be supported throughout their operational life.
Active Communities: Both projects have active, responsive communities. When issues arise, there are knowledgeable developers and users who can provide assistance.
Conclusion: Security Without Compromise
Building secure embedded systems shouldn’t require choosing between security, performance, and maintainability. The combination of wolfSSL’s FIPS-validated cryptography and Yocto’s flexible build system provides a proven path to creating embedded products that meet stringent security requirements while remaining practical to develop, deploy, and maintain.
For organizations in regulated industries, healthcare, finance, defense, government, and critical infrastructure, this combination offers a clear path to FIPS compliance without sacrificing the flexibility and efficiency needed for modern embedded development. The comprehensive Yocto support through the meta-wolfssl layer, combined with extensive testing and documentation, means that developers can focus on their application logic rather than wrestling with cryptographic integration.
Whether you’re building medical devices that protect patient privacy, industrial systems that secure critical infrastructure, or defense systems that protect national security, wolfSSL and Yocto provide the foundation for embedded security done right.
Resources and Next Steps
To learn more about wolfSSL’s Yocto support:
- meta-wolfssl Repository
- wolfSSL Main Repository
- wolfSSL FIPS Information
- Yocto Project
- wolfSSL Documentation
For questions about FIPS certification, commercial licensing, or technical support, contact wolfSSL at:
The future of embedded security is built on strong cryptography, flexibility developement tools, and proven validation. With wolfSSL and Yocto, that future is available today.
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now




