You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expanded the Fast Pair Locator Tag sample documentation to include the
description of the signature algorithms for the DFU functionality.
Added a build section to document requirements regarding the bootloader
key provisioning process for the nRF54L-based targets.
Ref: NCSDK-30842
Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
Each board target that is supported by this sample, sets a specific signature algorithm for its DFU functionality.
190
+
The signature algorithm determines the type of the key pair that is used to automatically sign the application image by the |NCS| build system (the private key) and to verify the application image by the bootloader (the public key).
191
+
The bootloader must have access to the public key for its image verification process.
192
+
The choice of the signature algorithm and the implementation of the public key storage solution have an impact on the security properties of the overall DFU solution.
193
+
194
+
The configuration of the signature algorithm and the public key storage solution in this sample varies depending on the board target:
The SUIT DFU integration in this sample does not support the secure boot feature and its requirement for the signature verification.
214
+
The affected board targets are not listed in the table above.
215
+
216
+
Each supported board target has the signature key file (the ``SB_CONFIG_BOOT_SIGNATURE_KEY_FILE`` Kconfig option) defined in the :file:`sysbuild/configuration` directory that is part of the sample directory.
217
+
The signature key file is unique for each board target and is located in the :file:`<board_target>` subdirectory.
218
+
For example, the signature key file for the ``nrf54l15dk/nrf54l15/cpuapp`` board target is located in the :file:`sysbuild/configuration/nrf54l15dk_nrf54l15_cpuapp` subdirectory.
219
+
220
+
.. important::
221
+
The signature private keys defined by the sample are publicly available and intended for demonstration purposes only.
222
+
For production purposes, you must create and use your own signature key file that must be stored in a secure location.
223
+
184
224
DFU mode
185
225
--------
186
226
@@ -544,6 +584,43 @@ For example, when building from the command line, you can add it as follows:
544
584
545
585
west build -b *board_target* -- -DFILE_SUFFIX=release
546
586
587
+
DFU build with the key storage in KMU
588
+
=====================================
589
+
590
+
The MCUboot-based targets that enable the ``SB_CONFIG_MCUBOOT_SIGNATURE_USING_KMU`` Kconfig option use the Key Management Unit (KMU) hardware peripheral to store the public key that is used by the bootloader to verify the application image.
591
+
592
+
.. note::
593
+
The board targets based on the nRF54L SoC Series are currently the only targets that support the KMU-based key storage.
594
+
See the :ref:`fast_pair_locator_tag_dfu` section of this sample documentation for the details regarding the supported signature algorithms, public key storage location and the signature key file.
595
+
596
+
Using KMU requires the provisioning operation of the public key to be performed manually.
597
+
Before performing the provisioning operation, you need to ensure that your board target is fully erased:
598
+
599
+
.. parsed-literal::
600
+
:class: highlight
601
+
602
+
nrfutil device erase --all
603
+
604
+
Assuming that your current working directory points to this sample directory, you can perform the provisioning operation as follows:
605
+
606
+
.. parsed-literal::
607
+
:class: highlight
608
+
609
+
west ncs-provision upload -s <soc> -k sysbuild/configuration/<board_target>/boot_signature_key_file_<algorithm>.pem --keyname UROT_PUBKEY
610
+
611
+
* The ``<soc>`` placeholder is the SoC name used in your board target (for example, ``nrf54l15``).
612
+
* The ``<board_target>`` placeholder is your board target name (for example, ``nrf54l15dk_nrf54l15_cpuapp``).
613
+
* The ``<algorithm>`` placeholder is the algorithm used to generate the key pair for the application image signature generation and verification (for example, ``ed25519``).
614
+
615
+
The examplary command for the ``nrf54l15dk/nrf54l15/cpuapp`` board target and the demonstration key file looks is as follows:
616
+
617
+
.. parsed-literal::
618
+
:class: highlight
619
+
620
+
west ncs-provision upload -s nrf54l15 -k sysbuild/configuration/nrf54l15dk_nrf54l15_cpuapp/boot_signature_key_file_ed25519.pem --keyname UROT_PUBKEY
621
+
622
+
See :ref:`ug_nrf54l_developing_provision_kmu` for further details regarding the KMU provisioning process.
0 commit comments