As of 2025-10-22, the following information applies to the Z-Wave chip and SDK.
By default, the build system encrypts the application firmware update image with a temporary key generated during the first build. The temporary encryption key can be found in temp_keys/ in the root of the build directory.
A custom encryption key can be set using ZWSDK_CONFIG_ENCRYPTION_KEY_PATH.
Secure boot is strongly related to the Readback protection functionality as it relies on some of the same mechanisms.
For activation of secure boot and readback protection, see Activation.
Secure boot executes in two steps:
The first of the above two steps requires two different key pairs:
The root key pair is used to sign and verify the bootloader public key.
The bootloader key pair is used to sign and verify the bootloader.
The second step requires yet another key pair, but the Z-Wave SDK reuses the bootloader key pair for this purpose. The build system uses the same key pair for signing firmware update images.
The build system takes care of signing the bootloader and the application, and by default, it uses a set of temporary keys located in the same temp_keys/ directory as the temporary encryption key.
Custom root signing keys can be set using:
Custom bootloader (and application) signing keys can be set using:
See Build System Customization
Readback protection disables the ability to read from the flash and hence, also disables debugging. However, it is possible to enable flash access and debugging temporarily.
Debugging or accessing the flash when readback protection is activated requires an additional key pair.
Generate a private key by running:
Derive a public key from the private key by running:
Activating readback protection also activates secure boot.
Checklist before activating secure boot and readback protection:
Given that readback protection was activated, temporary access can be achieved by performing the following step: