The wolfengine recipe enables the integration of wolfSSL's cryptographic functionalities into OpenSSL through a custom engine mechanism. This integration allows applications using OpenSSL to leverage wolfSSL's advanced cryptographic algorithms, combining wolfSSL's lightweight and performance-optimized cryptography with OpenSSL's extensive API and capabilities. wolfengine is designed for easy integration into Yocto-based systems, ensuring a seamless blend of security and performance ideal for embedded and constrained environments.
The wolfenginetest yocto package will provide two apps, wolfengineenv and wolfenginetest. Running wolfengineenv will start up a child shell and run wolfenginetest. Use wolfengineenv to test that the wolfengine package is successfully installed. If you want to run wolfenginetest directly you will need to directly source wolfengineenv via source /usr/bin/wolfengineenv or setup the env on your own, because wolfenginetest will fail otherwise. Use wolfenginetest to check that your shell env is correctly setup.
- A functioning Yocto Project environment (Dunfell or earlier recommended)
- OpenSSL versions 1.x.x, supporting the engine interface (Come by default with Dunfell or earlier)
- Access to the
meta-wolfsslrepository
-
Clone the meta-wolfssl repository:
Clone the
meta-wolfsslrepository into your Yocto project's sources directory if not already included in your project.git clone https://github.com/wolfSSL/meta-wolfssl.git
-
Include meta-wolfssl in your bblayers.conf:
Add
meta-wolfsslto yourbblayers.conffile to incorporate it into your build environment.BBLAYERS ?= " \ ... /path/to/meta-wolfssl \ ... "
-
Add wolfengine to your image:
Modify your image recipe or
local.conffile to includewolfengine,wolfssl,openssl,openssl-bin, andwolfenginetest. You will only needopenssl-binandwolfenginetestif you want to use and test with our included example and conf file.For yocto kirkstone or newer:
IMAGE_INSTALL:append = "wolfengine wolfssl openssl openssl-bin wolfenginetest"For yocto dunfell or earlier:
IMAGE_INSTALL_append = "wolfengine wolfssl openssl openssl-bin wolfenginetest" -
Build Your Image:
With the
meta-wolfssllayer added and the necessary packages included in your image configuration, proceed to build your Yocto image as usual.bitbake <your_image_recipe_name>
After building and deploying your image to the target device, you can test wolfengine functionality through the wolfengineenv script.
-
Execute the wolfengineenv Script:
wolfengineenvis located in/usr/bin, so just execute the script upon entering into your terminal.wolfengineenv
The script performs necessary setup actions, executes
wolfenginetestto validate the integration. -
Expected Output:
Look for messages indicating a successful environment setup, and execution of
wolfenginetest.
For further information about wolfengine and wolfssl, visit the wolfSSL Documentation and the wolfEngine Github. If you encounter issues or require support regarding the integration of wolfengine with Yocto, feel free to reach out through wolfSSL Support.