Files
wolfssl/IDE/QNX
Tobias Frauenschläger 29506d2cac build: distribute IDE project trees per-directory to fix "make dist"
The non-recursive automake "distdir" recipe inlines the entire $(DISTFILES)
list into a single shell command. Enumerating every IDE integration file
individually made that list large enough (~123 KB) that the recipe exceeded
the Linux MAX_ARG_STRLEN (128 KB) single-argument exec limit, so "make dist"
failed with:

    /bin/bash: Argument list too long
    make[2]: *** [distdir-am] Error 127

Replace the per-file EXTRA_DIST enumeration of the IDE directories with one
wholesale "EXTRA_DIST += IDE/<dir>" entry per directory (automake copies the
tree recursively). This collapses ~745 file entries into ~52 directory
entries and shrinks the top-level DISTFILES from ~123 KB to ~97 KB, well
under the limit.

The set of distributed IDE files is unchanged: a before/after "make dist"
diff shows no project file added or removed (only the now-unused include.am
build fragments are gone). Three directories that intentionally omit some
tracked files (apple-universal, MPLABX16, Renesas - private IDE configs,
.gitkeep placeholders, helper scripts) stay enumerated file-by-file.
2026-07-20 17:22:10 +02:00
..
2026-02-18 09:52:21 -07:00
2023-04-03 16:41:08 -06:00

QNX CAAM Driver And Examples

This directory contains;

  • A Makefile for creating the QNX CAAM driver located at IDE/QNX/CAAM-DRIVER/Makefile
  • A Makefile for creating wolfSSL library located at IDE/QNX/wolfssl/Makefile
  • A Makefile for creating wolfCrypt unit tests located at IDE/QNX/testwolfcrypt/Makefile
  • An example TLS server located at IDE/QNX/example-server/
  • An example client located at IDE/QNX/example-client
  • An example CMAC use located at IDE/QNX/example-cmac

To build either of these, first build wolfSSL with support for use with QNX CAAM. To do this use the configure option --enable-caam=qnx

bash
source ~/qnx700/qnxsdp-env.sh
./configure --host=arm-unknown-nto-qnx7.0.0eabi --enable-caam=qnx
make

Once the wolfSSL library has been built cd to IDE/QNX/CAAM-DRIVER and run "make". This will produce the wolfCrypt resource manager. It should be started on the device with root permissions. Once wolfCrypt is running on the device with root permissions then any user with access to open a connection to /dev/wolfCrypt can make use of the driver.

Momentics

To build in momentics IDE:

  • Switch the workspace to be wolfssl/IDE/QNX/
  • Import the three projects (File->Import->General->Existing Projects into Workspace, in "Select root directory" browse to the directory wolfssl/IDE/QNX/ and select the projects then click "Finish").
  • Build

Supported Operations By CAAM Driver

  • ECC black key creation
  • ECC black key sign / verify / ecdh
  • Black blob creation and open
  • Red/Black blob creation and open
  • Cover keys (turn to black key)
  • CMAC with and without black keys
  • TRNG used by default to seed Hash DRBG
  • AES operations (CTR)

Performance

Typically on smaller block sizes (~ less than 7k) operations are slower with CAAM than software implementations. There is a tunable macro WOLFSSL_CAAM_QNX_MEMORY which sets the size of an internal buffer used currently with AES operations for performance. By default it is set to 250k but can be defined to smaller or larger values. If the block size being encrypted/decrypted does not fit within the buffer size then there will be a big performance hit.