Falcon was the last algorithm backed by liboqs; now that wolfCrypt has a
native Falcon implementation, liboqs is no longer needed. Remove the
integration entirely so liboqs does not appear as a build or SBOM dependency:
- configure: drop --with-liboqs (and the -loqs link), the BUILD_LIBOQS
conditional and the summary line.
- CMake: drop WOLFSSL_OQS, the duplicate liboqs-backed WOLFSSL_FALCON
option, the OQS cross-validation / find_package(OQS) block, the
FindOQS.cmake module, BUILD_OQS_HELPER, and HAVE_LIBOQS from options.h.in.
- Remove the wolfcrypt/src/port/liboqs port layer (liboqs.c/.h) and its
wolfSSL_liboqsInit/Close calls in wc_port.c.
- settings.h: drop HAVE_LIBOQS from the asym key import/export aggregates
(HAVE_FALCON already covers them) and from the experimental gate; add
HAVE_FALCON to the experimental gate so the unstandardized Falcon requires
WOLFSSL_EXPERIMENTAL_SETTINGS in every build system.
- Drop liboqs.c from the VS/Zephyr/INTIME project files, remove the liboqs
install from Docker, and update INSTALL/tls.c text (Falcon is native now).
No functional change to non-Falcon builds; the library links no liboqs.
Overview
This is a Docker environment for compiling, testing and running WolfSSL. Use run.sh to build everything (Docker container, WolfSSL, etc.). This script takes in arguments that can be passed to ./configure. For example: run.sh --enable-all
When the compilation and tests succeed, you will be dropped in to a shell environment within the container. This can be useful to build other things within the environment. Additional tests can be run as well as debugging of code.
Docker Hub
These images are also uploaded to the wolfSSL's Docker Hub page. There is a convenience script here buildAndPush.sh that will create the appropriate containers and push them to the repo.
FAQ
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
You need to be added to the docker group to run Docker containers. Run sudo usermod -aG docker $USER. You may need to restart the Docker daemon.
Unable to access symlinked files outside of WolfSSL
The volume mounted in the Docker container needs to have all files that your compilation will need. To solve this, you have a couple options:
- Change the
WOLFSSL_DIRvariable in therun.shto one higher up (by adding/..to the path). Then update thedocker buildto include the correct path to the Dockerfile and thedocker runargument to the working directory (-w) to the WolfSSL source directory - Move the external repository to within the WolfSSL directory. For example create an
externalfolder which has your files. This route may have complications when stashing Git work.