From d3f9cd61c586a8cae9618318dd84f41b9ffb9560 Mon Sep 17 00:00:00 2001 From: Rafal Miecznik Date: Mon, 23 Feb 2026 16:44:09 +0100 Subject: [PATCH 1/2] CI/CD: Synchronize ncs-aliro@012abed5a364 and ncs-door-lock-app Source commit ID: @012abed5a364 sync-ncs-aliro-012abed5a364 Signed-off-by: Rafal Miecznik --- CMakeLists.txt | 1 + CODEOWNERS | 13 - Kconfig | 75 +- app/Kconfig | 62 +- {lib/aliro => app}/Kconfig.ble.defconfig | 7 +- {lib/aliro => app}/Kconfig.defconfig | 88 +- app/boards/nrf52840dk_nrf52840.overlay | 8 +- .../nrf52840dk_nrf52840_release.overlay | 36 + app/boards/nrf5340dk_nrf5340_cpuapp.overlay | 8 +- .../nrf5340dk_nrf5340_cpuapp_release.overlay | 36 + app/boards/nrf54l15dk_nrf54l15_cpuapp.overlay | 8 +- ...nrf54l15dk_nrf54l15_cpuapp_release.overlay | 28 + .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 8 +- ...54lm20dk_nrf54lm20a_cpuapp_release.overlay | 28 + .../nrf54lm20dk_spi_nrfutil_config.json | 17 + app/pm_static_nrf52840dk_nrf52840.yml | 9 +- app/pm_static_nrf5340dk_nrf5340_cpuapp.yml | 9 +- ...tatic_nrf5340dk_nrf5340_cpuapp_uwb_dfu.yml | 11 +- app/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml | 12 +- ...m_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml | 12 +- ..._nrf54lm20dk_nrf54lm20a_cpuapp_uwb_dfu.yml | 94 ++ app/prj.conf | 19 +- app/prj_release.conf | 74 + app/sample.yaml | 149 +- app/src/Kconfig | 10 + app/src/aliro/CMakeLists.txt | 21 +- app/src/aliro/Kconfig | 33 +- .../CMakeLists.txt | 0 .../Kconfig | 4 + .../aliro/access_manager/access_manager.cpp | 111 ++ .../aliro}/access_manager/access_manager.h | 52 +- .../access_manager_impl.cpp | 158 +- .../access_manager_impl.h | 47 +- .../access_manager_impl.cpp | 115 -- .../access_manager_impl.h | 58 - app/src/aliro/aliro_state_control.cpp | 65 + app/src/aliro/aliro_state_control.h | 19 + app/src/aliro/aliro_work/CMakeLists.txt | 8 + app/src/aliro/aliro_work/Kconfig | 19 + app/src/aliro/aliro_work/aliro_work.cpp | 50 + app/src/aliro/aliro_work/aliro_work.h | 43 + app/src/aliro/cli/CMakeLists.txt | 15 +- app/src/aliro/cli/btaddr.cpp | 28 + app/src/aliro/cli/factory_reset.cpp | 46 + app/src/aliro/cli/info.cpp | 33 + app/src/aliro/cli/install.cpp | 103 ++ app/src/aliro/cli/kpersistent.cpp | 116 ++ .../aliro/cli/{shell.cpp => provisioning.cpp} | 460 ++---- app/src/aliro/cli/shell.c | 10 + app/src/aliro/cli/shell.h | 2 +- app/src/aliro/cli/shell_private.cpp | 42 + app/src/aliro/cli/shell_private.h | 32 + app/src/aliro/features.h | 21 + app/src/aliro/init.cpp | 390 +++-- app/src/aliro/init.h | 23 +- app/src/aliro/interface.cpp | 33 - app/src/aliro/interface_impl/CMakeLists.txt | 26 + app/src/aliro/interface_impl/access.cpp | 78 + .../aliro/interface_impl/access_document.cpp | 16 + app/src/aliro/interface_impl/ble.cpp | 36 + app/src/aliro/interface_impl/ci_cert.cpp | 158 ++ app/src/aliro/interface_impl/crypto.cpp | 392 +++++ .../log.cpp} | 57 +- app/src/aliro/interface_impl/os.cpp | 103 ++ app/src/aliro/interface_impl/os_mutex.cpp | 36 + app/src/aliro/interface_impl/os_timer.cpp | 166 ++ app/src/aliro/interface_impl/reader.cpp | 56 + app/src/aliro/interface_impl/session.cpp | 56 + app/src/aliro/interface_impl/uwb.cpp | 26 + app/src/aliro/kpersistent_manager/Kconfig | 6 +- .../kpersistent_manager/kpersistent_manager.h | 4 +- .../kpersistent_manager_impl.cpp | 19 +- .../kpersistent_manager_impl.h | 4 +- app/src/aliro/lock_sim/Kconfig | 12 + app/src/aliro/lock_sim/lock_sim.cpp | 37 +- app/src/aliro/lock_sim/lock_sim_instance.h | 23 + app/src/aliro/platform/CMakeLists.txt | 9 +- app/src/aliro/platform/Kconfig | 8 +- .../access_decision_indicator/Kconfig | 18 - .../access_decision_indicator.cpp | 43 - .../access_decision_indicator.h | 30 - app/src/aliro/platform/ble/CMakeLists.txt | 11 +- .../platform/ble/ble_advertising_arbiter.cpp | 174 ++ .../platform/ble/ble_advertising_arbiter.h | 108 ++ .../ble/ble_advertising_arbiter_chip.cpp | 119 ++ .../{ble_manager_impl.cpp => ble_manager.cpp} | 258 +-- app/src/aliro/platform/ble/ble_manager.h | 201 +++ app/src/aliro/platform/ble/ble_manager_impl.h | 123 -- .../platform/ble/gatt_server/gatt_server.cpp | 5 +- .../ble/l2cap_server/l2cap_server.cpp | 53 +- .../platform/ble/l2cap_server/l2cap_server.h | 26 +- .../crypto}/CMakeLists.txt | 4 +- app/src/aliro/platform/crypto/Kconfig | 27 + .../aliro/platform/crypto/Kconfig.defaults | 60 + app/src/aliro/platform/crypto/utils.cpp | 202 +++ app/src/aliro/platform/crypto/utils.h | 125 ++ .../src/aliro/platform}/mutex_guard.h | 11 +- .../CMakeLists.txt | 2 - .../{nfc_transport_impl => nfc}/Kconfig | 8 +- .../Kconfig.rfal.defconfig | 0 .../nfc_transport_rfal.cpp | 165 +- .../aliro/platform/nfc/nfc_transport_rfal.h | 109 ++ .../nfc_transport_rfal_prop.h | 0 .../nfc_transport_impl/isodep_config.h | 10 - .../platform/nfc_transport_impl/isodep_impl.h | 9 - .../nfc_transport_impl/nfc_driver_config.h | 10 - .../nfc_transport_impl/nfc_driver_impl.h | 9 - .../nfc_transport_impl/nfc_transport_rfal.h | 70 - app/src/aliro/platform/timer.cpp | 66 + .../aliro => app/src/aliro/platform}/timer.h | 1 + app/src/aliro/platform/uwb_impl/Kconfig | 3 + .../src/aliro/platform/uwb_impl}/uwb.h | 39 +- .../uwb_impl/uwb_dummy_impl/uwb_impl.cpp | 2 - .../uwb_impl/uwb_dummy_impl/uwb_impl.h | 5 +- .../uwb_impl/uwb_qm35_impl/cli/uwb_shell.cpp | 5 + .../uwb_impl/uwb_qm35_impl/dfu/uwb_dfu.cpp | 4 + .../uwb_impl/uwb_qm35_impl/uwb_impl.cpp | 187 +-- .../uwb_impl/uwb_qm35_impl/uwb_impl.h | 65 +- app/src/aliro/storage/CMakeLists.txt | 13 +- app/src/aliro/storage/Kconfig | 5 + app/src/aliro/storage/access_document.cpp | 65 +- app/src/aliro/storage/access_document.h | 4 - app/src/aliro/storage/external_nvs_ids.h | 20 + ...certificate_cache.cpp => reader_cache.cpp} | 67 +- ...der_certificate_cache.h => reader_cache.h} | 81 +- app/src/aliro/storage/validity_iterations.cpp | 3 - app/src/aliro/storage/validity_iterations.h | 4 - app/src/aliro/test_key.h | 18 - app/src/aliro/utils/hex_string.h | 94 ++ app/src/bt_nus/Kconfig | 22 +- app/src/bt_nus/bt_nus.cpp | 41 +- app/src/bt_nus/bt_nus.h | 7 + app/src/dfu_smp/CMakeLists.txt | 2 +- app/src/dfu_smp/Kconfig | 10 + app/src/dfu_smp/dfu_smp_manager.cpp | 46 +- app/src/dfu_smp/dfu_smp_manager.h | 8 + app/src/dfu_smp/dfu_smp_shell.cpp | 59 +- app/src/dfu_smp/dfu_smp_shell.h | 11 - app/src/main.cpp | 24 +- app/src/matter/CMakeLists.txt | 27 +- app/src/matter/Kconfig | 51 +- app/src/matter/access/access_data_types.h | 3 + app/src/matter/access/access_manager.cpp | 56 +- app/src/matter/access/access_storage.cpp | 191 --- app/src/matter/access/access_storage.h | 61 +- .../matter/access/access_storage_print.cpp | 73 + app/src/matter/access/access_storage_print.h | 22 + .../matter/access/access_storage_psa_ps.cpp | 144 ++ app/src/matter/app_task.cpp | 53 +- app/src/matter/bolt_lock_manager.cpp | 124 +- app/src/matter/bolt_lock_manager.h | 41 +- app/src/matter/door_lock_delegate.cpp | 103 +- docs/building_and_running.rst | 159 +- docs/conf.py | 3 +- docs/doc_aliro.zip | Bin 15153676 -> 0 bytes docs/door_lock_app_arch.rst | 321 ++-- docs/firmware_update.rst | 42 +- docs/hardware_requirements.rst | 79 +- docs/images/aliro-add-ons.svg | 949 ++++++----- docs/images/door_lock_app_arch.svg | 935 ++++++----- ...nt_plot_active_rfo_comparison_st25r300.png | Bin 0 -> 53298 bytes ...plot_active_worker_interval_comparison.png | Bin 0 -> 58722 bytes .../nfc_current_plot_idle_wum_comparison.png | Bin 0 -> 59516 bytes ...rent_plot_module_idle_x_nucleo_nfc12a1.png | Bin 0 -> 67434 bytes .../nfc_current_plot_soc_idle_nrf5340.png | Bin 0 -> 284624 bytes ...current_schematic_module_st25r300_ppk2.png | Bin 0 -> 296833 bytes ...nfc_current_schematic_soc_nrf5340_ppk2.png | Bin 0 -> 298305 bytes docs/index.rst | 6 +- docs/known_issues.rst | 242 --- docs/known_issues_and_limitations.rst | 314 ++++ docs/links.txt | 13 +- docs/nfc_power_measurements.rst | 258 +++ docs/other_addons.rst | 8 +- docs/reference_application_interactions.rst | 135 ++ docs/release_notes.rst | 229 +-- docs/requirements.txt | 1 + .../d2/app_stack_general_interaction.d2 | 24 + .../d2/app_stack_general_interaction.png | Bin 0 -> 195589 bytes .../d2/stack_events_handling.d2 | 32 + .../d2/stack_events_handling.png | Bin 0 -> 359378 bytes .../uwb_session_establishment_and_handling.d2 | 48 + ...uwb_session_establishment_and_handling.png | Bin 0 -> 869840 bytes docs/software_requirements.rst | 14 +- docs/testing.rst | 1458 +---------------- docs/testing/cli_provisioning.rst | 180 ++ docs/testing/cli_reference.rst | 56 + docs/testing/nus.rst | 62 + docs/testing/provisioning_with_matter.rst | 608 +++++++ docs/testing/setting_up_test_harness.rst | 26 + docs/testing/testing_certificate_reader.rst | 143 ++ docs/testing/verification_and_testing.rst | 383 +++++ drivers/nfc/stm/CMakeLists.txt | 9 +- drivers/nfc/stm/Kconfig | 11 +- drivers/nfc/stm/Kconfig.pal | 21 - drivers/nfc/stm/PAL/ncs_pal_gpio.c | 6 +- drivers/nfc/stm/PAL/ncs_pal_isr.c | 26 +- drivers/nfc/stm/PAL/ncs_pal_isr.h | 11 + drivers/nfc/stm/PAL/ncs_pal_nfc_worker.c | 22 - drivers/nfc/stm/PAL/ncs_pal_nfc_worker.h | 11 +- drivers/nfc/stm/PAL/ncs_pal_semaphore.c | 13 - drivers/nfc/stm/PAL/ncs_pal_semaphore.h | 34 - drivers/nfc/stm/PAL/ncs_pal_timer.c | 8 +- drivers/nfc/stm/README.md | 9 +- drivers/nfc/stm/nfc_configs/CMakeLists.txt | 9 +- drivers/nfc/stm/nfc_configs/Kconfig | 2 +- drivers/nfc/stm/nfc_configs/rfal_wum_common.h | 46 + .../stm/nfc_configs/st25r200}/CMakeLists.txt | 6 +- .../{ => st25r200}/rfal_nfc_config.c | 29 +- .../stm/nfc_configs/st25r500}/CMakeLists.txt | 6 +- .../nfc_configs/st25r500/rfal_nfc_config.c | 70 + drivers/samples/nfc_reader/prj.conf | 3 - drivers/samples/nfc_reader_async/prj.conf | 3 - lib/CMakeLists.txt | 2 +- lib/Kconfig | 1 + lib/aliro/CMakeLists.txt | 22 +- lib/aliro/Kconfig | 77 + lib/aliro/bin/debug/nrf52840/libaliro.a | Bin 0 -> 356168 bytes lib/aliro/bin/debug/nrf5340/libaliro.a | Bin 0 -> 356448 bytes lib/aliro/bin/debug/nrf5340/libaliro_ble.a | Bin 0 -> 562750 bytes lib/aliro/bin/debug/nrf54l15/libaliro.a | Bin 0 -> 356448 bytes lib/aliro/bin/debug/nrf54lm20a/libaliro.a | Bin 0 -> 356448 bytes lib/aliro/bin/debug/nrf54lm20a/libaliro_ble.a | Bin 0 -> 562750 bytes lib/aliro/bin/nrf52840/libaliro.a | Bin 431920 -> 0 bytes lib/aliro/bin/nrf5340/libaliro.a | Bin 432264 -> 0 bytes lib/aliro/bin/nrf5340/libaliro_ble.a | Bin 660714 -> 0 bytes lib/aliro/bin/nrf54l15/libaliro.a | Bin 432792 -> 0 bytes lib/aliro/bin/nrf54lm20a/libaliro.a | Bin 432352 -> 0 bytes lib/aliro/bin/nrf54lm20a/libaliro_ble.a | Bin 660802 -> 0 bytes lib/aliro/bin/release/nrf52840/libaliro.a | Bin 0 -> 287762 bytes lib/aliro/bin/release/nrf5340/libaliro.a | Bin 0 -> 288086 bytes lib/aliro/bin/release/nrf5340/libaliro_ble.a | Bin 0 -> 446868 bytes lib/aliro/bin/release/nrf54l15/libaliro.a | Bin 0 -> 288086 bytes lib/aliro/bin/release/nrf54lm20a/libaliro.a | Bin 0 -> 288086 bytes .../bin/release/nrf54lm20a/libaliro_ble.a | Bin 0 -> 446868 bytes lib/aliro/include/aliro/aliro.h | 197 +-- lib/aliro/include/aliro/ble_types.h | 1 - lib/aliro/include/aliro/connection_handle.h | 113 ++ lib/aliro/include/aliro/errors.h | 7 +- lib/aliro/include/aliro/interface.h | 592 ++++++- lib/aliro/include/aliro/transport_callbacks.h | 77 - lib/aliro/include/aliro/types.h | 22 +- lib/aliro/include/aliro/utils.h | 8 - .../crypto/backend_crypto_psa/crypto_impl.h | 25 - .../crypto/backend_crypto_psa/crypto_psa.h | 57 - lib/aliro/interfaces/crypto/crypto.h | 353 ---- lib/aliro/interfaces/logger/Kconfig | 44 - lib/aliro/interfaces/logger/platform_log.h | 75 - .../interfaces/transport/ble/ble_iface.h | 122 -- .../nfc/driver/interface/aliro_nfc_driver.h | 97 -- .../nfc/isodep/interface/aliro_isodep.h | 114 -- lib/aliro/interfaces/uwb/Kconfig | 14 - .../boards/nrf52840dk_nrf52840.overlay | 2 +- .../boards/nrf5340dk_nrf5340_cpuapp.overlay | 6 + .../boards/nrf54l15dk_nrf54l15_cpuapp.overlay | 7 +- .../nrf54lm20dk_nrf54lm20a_cpuapp.overlay | 2 +- .../matter-application-core.conf | 6 +- .../sb-nrf54lm20dk_nrf54lm20a_cpuapp.conf | 7 + snippets/uwb_qm35_dfu/snippet.yml | 3 + .../boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf | 7 + snippets/uwb_qm35_dfu_app/snippet.yml | 3 + subsys/CMakeLists.txt | 7 + subsys/Kconfig | 11 + subsys/external_nvs/CMakeLists.txt | 16 + subsys/external_nvs/Kconfig | 68 + .../include/external_nvs/external_nvs.h | 110 ++ subsys/external_nvs/src/aead.cpp | 72 + subsys/external_nvs/src/aead.h | 96 ++ subsys/external_nvs/src/counter.cpp | 220 +++ subsys/external_nvs/src/counter.h | 96 ++ subsys/external_nvs/src/external_nvs.cpp | 429 +++++ subsys/external_nvs/src/key.cpp | 51 + subsys/external_nvs/src/key.h | 55 + subsys/external_nvs/src/nonce.cpp | 70 + subsys/external_nvs/src/nonce.h | 56 + subsys/external_nvs/src/storage.cpp | 111 ++ subsys/external_nvs/src/storage.h | 80 + tests/subsys/external_nvs/CMakeLists.txt | 15 + tests/subsys/external_nvs/Kconfig | 10 + tests/subsys/external_nvs/Kconfig.sysbuild | 10 + tests/subsys/external_nvs/app.overlay | 20 + tests/subsys/external_nvs/prj.conf | 24 + tests/subsys/external_nvs/src/tests.cpp | 164 ++ tests/subsys/external_nvs/testcase.yaml | 8 + 283 files changed, 12297 insertions(+), 6875 deletions(-) delete mode 100644 CODEOWNERS rename {lib/aliro => app}/Kconfig.ble.defconfig (85%) rename {lib/aliro => app}/Kconfig.defconfig (55%) create mode 100644 app/boards/nrf52840dk_nrf52840_release.overlay create mode 100644 app/boards/nrf5340dk_nrf5340_cpuapp_release.overlay create mode 100644 app/boards/nrf54l15dk_nrf54l15_cpuapp_release.overlay create mode 100644 app/boards/nrf54lm20dk_nrf54lm20a_cpuapp_release.overlay create mode 100644 app/boards/nrf54lm20dk_spi_nrfutil_config.json create mode 100644 app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp_uwb_dfu.yml create mode 100644 app/prj_release.conf create mode 100644 app/src/Kconfig rename app/src/aliro/{access_manager_impl_custom => access_manager}/CMakeLists.txt (100%) rename app/src/aliro/{access_manager_impl_default => access_manager}/Kconfig (98%) create mode 100644 app/src/aliro/access_manager/access_manager.cpp rename {lib/aliro/interfaces => app/src/aliro}/access_manager/access_manager.h (85%) rename app/src/aliro/{access_manager_impl_default => access_manager}/access_manager_impl.cpp (88%) rename app/src/aliro/{access_manager_impl_default => access_manager}/access_manager_impl.h (91%) delete mode 100644 app/src/aliro/access_manager_impl_custom/access_manager_impl.cpp delete mode 100644 app/src/aliro/access_manager_impl_custom/access_manager_impl.h create mode 100644 app/src/aliro/aliro_state_control.cpp create mode 100644 app/src/aliro/aliro_state_control.h create mode 100644 app/src/aliro/aliro_work/CMakeLists.txt create mode 100644 app/src/aliro/aliro_work/Kconfig create mode 100644 app/src/aliro/aliro_work/aliro_work.cpp create mode 100644 app/src/aliro/aliro_work/aliro_work.h create mode 100644 app/src/aliro/cli/btaddr.cpp create mode 100644 app/src/aliro/cli/factory_reset.cpp create mode 100644 app/src/aliro/cli/info.cpp create mode 100644 app/src/aliro/cli/install.cpp create mode 100644 app/src/aliro/cli/kpersistent.cpp rename app/src/aliro/cli/{shell.cpp => provisioning.cpp} (57%) create mode 100644 app/src/aliro/cli/shell.c create mode 100644 app/src/aliro/cli/shell_private.cpp create mode 100644 app/src/aliro/cli/shell_private.h create mode 100644 app/src/aliro/features.h delete mode 100644 app/src/aliro/interface.cpp create mode 100644 app/src/aliro/interface_impl/CMakeLists.txt create mode 100644 app/src/aliro/interface_impl/access.cpp create mode 100644 app/src/aliro/interface_impl/access_document.cpp create mode 100644 app/src/aliro/interface_impl/ble.cpp create mode 100644 app/src/aliro/interface_impl/ci_cert.cpp create mode 100644 app/src/aliro/interface_impl/crypto.cpp rename app/src/aliro/{platform/logger/platform_log.cpp => interface_impl/log.cpp} (62%) create mode 100644 app/src/aliro/interface_impl/os.cpp create mode 100644 app/src/aliro/interface_impl/os_mutex.cpp create mode 100644 app/src/aliro/interface_impl/os_timer.cpp create mode 100644 app/src/aliro/interface_impl/reader.cpp create mode 100644 app/src/aliro/interface_impl/session.cpp create mode 100644 app/src/aliro/interface_impl/uwb.cpp rename {lib/aliro/interfaces => app/src/aliro}/kpersistent_manager/kpersistent_manager.h (94%) create mode 100644 app/src/aliro/lock_sim/lock_sim_instance.h delete mode 100644 app/src/aliro/platform/access_decision_indicator/Kconfig delete mode 100644 app/src/aliro/platform/access_decision_indicator/access_decision_indicator.cpp delete mode 100644 app/src/aliro/platform/access_decision_indicator/access_decision_indicator.h create mode 100644 app/src/aliro/platform/ble/ble_advertising_arbiter.cpp create mode 100644 app/src/aliro/platform/ble/ble_advertising_arbiter.h create mode 100644 app/src/aliro/platform/ble/ble_advertising_arbiter_chip.cpp rename app/src/aliro/platform/ble/{ble_manager_impl.cpp => ble_manager.cpp} (61%) create mode 100644 app/src/aliro/platform/ble/ble_manager.h delete mode 100644 app/src/aliro/platform/ble/ble_manager_impl.h rename app/src/aliro/{access_manager_impl_default => platform/crypto}/CMakeLists.txt (58%) create mode 100644 app/src/aliro/platform/crypto/Kconfig create mode 100644 app/src/aliro/platform/crypto/Kconfig.defaults create mode 100644 app/src/aliro/platform/crypto/utils.cpp create mode 100644 app/src/aliro/platform/crypto/utils.h rename {lib/aliro/include/aliro => app/src/aliro/platform}/mutex_guard.h (79%) rename app/src/aliro/platform/{nfc_transport_impl => nfc}/CMakeLists.txt (72%) rename app/src/aliro/platform/{nfc_transport_impl => nfc}/Kconfig (96%) rename app/src/aliro/platform/{nfc_transport_impl => nfc}/Kconfig.rfal.defconfig (100%) rename app/src/aliro/platform/{nfc_transport_impl => nfc}/nfc_transport_rfal.cpp (63%) create mode 100644 app/src/aliro/platform/nfc/nfc_transport_rfal.h rename app/src/aliro/platform/{nfc_transport_impl => nfc}/nfc_transport_rfal_prop.h (100%) delete mode 100644 app/src/aliro/platform/nfc_transport_impl/isodep_config.h delete mode 100644 app/src/aliro/platform/nfc_transport_impl/isodep_impl.h delete mode 100644 app/src/aliro/platform/nfc_transport_impl/nfc_driver_config.h delete mode 100644 app/src/aliro/platform/nfc_transport_impl/nfc_driver_impl.h delete mode 100644 app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.h create mode 100644 app/src/aliro/platform/timer.cpp rename {lib/aliro/include/aliro => app/src/aliro/platform}/timer.h (99%) rename {lib/aliro/interfaces/uwb => app/src/aliro/platform/uwb_impl}/uwb.h (84%) create mode 100644 app/src/aliro/storage/external_nvs_ids.h rename app/src/aliro/storage/{reader_certificate_cache.cpp => reader_cache.cpp} (50%) rename app/src/aliro/storage/{reader_certificate_cache.h => reader_cache.h} (52%) delete mode 100644 app/src/aliro/test_key.h create mode 100644 app/src/aliro/utils/hex_string.h delete mode 100644 app/src/dfu_smp/dfu_smp_shell.h delete mode 100644 app/src/matter/access/access_storage.cpp create mode 100644 app/src/matter/access/access_storage_print.cpp create mode 100644 app/src/matter/access/access_storage_print.h create mode 100644 app/src/matter/access/access_storage_psa_ps.cpp delete mode 100644 docs/doc_aliro.zip create mode 100644 docs/images/nfc_current_plot_active_rfo_comparison_st25r300.png create mode 100644 docs/images/nfc_current_plot_active_worker_interval_comparison.png create mode 100644 docs/images/nfc_current_plot_idle_wum_comparison.png create mode 100644 docs/images/nfc_current_plot_module_idle_x_nucleo_nfc12a1.png create mode 100644 docs/images/nfc_current_plot_soc_idle_nrf5340.png create mode 100644 docs/images/nfc_current_schematic_module_st25r300_ppk2.png create mode 100644 docs/images/nfc_current_schematic_soc_nrf5340_ppk2.png delete mode 100644 docs/known_issues.rst create mode 100644 docs/known_issues_and_limitations.rst create mode 100644 docs/nfc_power_measurements.rst create mode 100644 docs/reference_application_interactions.rst create mode 100644 docs/sequence_diagrams/d2/app_stack_general_interaction.d2 create mode 100644 docs/sequence_diagrams/d2/app_stack_general_interaction.png create mode 100644 docs/sequence_diagrams/d2/stack_events_handling.d2 create mode 100644 docs/sequence_diagrams/d2/stack_events_handling.png create mode 100644 docs/sequence_diagrams/d2/uwb_session_establishment_and_handling.d2 create mode 100644 docs/sequence_diagrams/d2/uwb_session_establishment_and_handling.png create mode 100644 docs/testing/cli_provisioning.rst create mode 100644 docs/testing/cli_reference.rst create mode 100644 docs/testing/nus.rst create mode 100644 docs/testing/provisioning_with_matter.rst create mode 100644 docs/testing/setting_up_test_harness.rst create mode 100644 docs/testing/testing_certificate_reader.rst create mode 100644 docs/testing/verification_and_testing.rst delete mode 100644 drivers/nfc/stm/PAL/ncs_pal_nfc_worker.c delete mode 100644 drivers/nfc/stm/PAL/ncs_pal_semaphore.c delete mode 100644 drivers/nfc/stm/PAL/ncs_pal_semaphore.h create mode 100644 drivers/nfc/stm/nfc_configs/rfal_wum_common.h rename {app/src/aliro/platform/access_decision_indicator => drivers/nfc/stm/nfc_configs/st25r200}/CMakeLists.txt (55%) rename drivers/nfc/stm/nfc_configs/{ => st25r200}/rfal_nfc_config.c (78%) rename {app/src/aliro/platform/logger => drivers/nfc/stm/nfc_configs/st25r500}/CMakeLists.txt (55%) create mode 100644 drivers/nfc/stm/nfc_configs/st25r500/rfal_nfc_config.c create mode 100644 lib/aliro/Kconfig create mode 100644 lib/aliro/bin/debug/nrf52840/libaliro.a create mode 100644 lib/aliro/bin/debug/nrf5340/libaliro.a create mode 100644 lib/aliro/bin/debug/nrf5340/libaliro_ble.a create mode 100644 lib/aliro/bin/debug/nrf54l15/libaliro.a create mode 100644 lib/aliro/bin/debug/nrf54lm20a/libaliro.a create mode 100644 lib/aliro/bin/debug/nrf54lm20a/libaliro_ble.a delete mode 100644 lib/aliro/bin/nrf52840/libaliro.a delete mode 100644 lib/aliro/bin/nrf5340/libaliro.a delete mode 100644 lib/aliro/bin/nrf5340/libaliro_ble.a delete mode 100644 lib/aliro/bin/nrf54l15/libaliro.a delete mode 100644 lib/aliro/bin/nrf54lm20a/libaliro.a delete mode 100644 lib/aliro/bin/nrf54lm20a/libaliro_ble.a create mode 100644 lib/aliro/bin/release/nrf52840/libaliro.a create mode 100644 lib/aliro/bin/release/nrf5340/libaliro.a create mode 100644 lib/aliro/bin/release/nrf5340/libaliro_ble.a create mode 100644 lib/aliro/bin/release/nrf54l15/libaliro.a create mode 100644 lib/aliro/bin/release/nrf54lm20a/libaliro.a create mode 100644 lib/aliro/bin/release/nrf54lm20a/libaliro_ble.a create mode 100644 lib/aliro/include/aliro/connection_handle.h delete mode 100644 lib/aliro/include/aliro/transport_callbacks.h delete mode 100644 lib/aliro/interfaces/crypto/backend_crypto_psa/crypto_impl.h delete mode 100644 lib/aliro/interfaces/crypto/backend_crypto_psa/crypto_psa.h delete mode 100644 lib/aliro/interfaces/crypto/crypto.h delete mode 100644 lib/aliro/interfaces/logger/Kconfig delete mode 100644 lib/aliro/interfaces/logger/platform_log.h delete mode 100644 lib/aliro/interfaces/transport/ble/ble_iface.h delete mode 100644 lib/aliro/interfaces/transport/nfc/driver/interface/aliro_nfc_driver.h delete mode 100644 lib/aliro/interfaces/transport/nfc/isodep/interface/aliro_isodep.h delete mode 100644 lib/aliro/interfaces/uwb/Kconfig create mode 100644 snippets/uwb_qm35_dfu/boards/sb-nrf54lm20dk_nrf54lm20a_cpuapp.conf create mode 100644 snippets/uwb_qm35_dfu_app/boards/nrf54lm20dk_nrf54lm20a_cpuapp.conf create mode 100644 subsys/CMakeLists.txt create mode 100644 subsys/Kconfig create mode 100644 subsys/external_nvs/CMakeLists.txt create mode 100644 subsys/external_nvs/Kconfig create mode 100644 subsys/external_nvs/include/external_nvs/external_nvs.h create mode 100644 subsys/external_nvs/src/aead.cpp create mode 100644 subsys/external_nvs/src/aead.h create mode 100644 subsys/external_nvs/src/counter.cpp create mode 100644 subsys/external_nvs/src/counter.h create mode 100644 subsys/external_nvs/src/external_nvs.cpp create mode 100644 subsys/external_nvs/src/key.cpp create mode 100644 subsys/external_nvs/src/key.h create mode 100644 subsys/external_nvs/src/nonce.cpp create mode 100644 subsys/external_nvs/src/nonce.h create mode 100644 subsys/external_nvs/src/storage.cpp create mode 100644 subsys/external_nvs/src/storage.h create mode 100644 tests/subsys/external_nvs/CMakeLists.txt create mode 100644 tests/subsys/external_nvs/Kconfig create mode 100644 tests/subsys/external_nvs/Kconfig.sysbuild create mode 100644 tests/subsys/external_nvs/app.overlay create mode 100644 tests/subsys/external_nvs/prj.conf create mode 100644 tests/subsys/external_nvs/src/tests.cpp create mode 100644 tests/subsys/external_nvs/testcase.yaml diff --git a/CMakeLists.txt b/CMakeLists.txt index b7ef1140..d5455484 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,3 +6,4 @@ add_subdirectory(drivers) add_subdirectory(lib) +add_subdirectory(subsys) diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index fef03cca..00000000 --- a/CODEOWNERS +++ /dev/null @@ -1,13 +0,0 @@ -# CODEOWNERS for auto-review assigning in GitHub -# https://help.github.com/en/articles/about-code-owners#codeowners-syntax - -/app @markaj-nordic @MarGasiorek -/nfc_driver @markaj-nordic @MarGasiorek -/zephyr @markaj-nordic @MarGasiorek -/.clang-format @markaj-nordic @MarGasiorek -/.gitignore @markaj-nordic @MarGasiorek -/CMakeLists.txt @markaj-nordic @MarGasiorek -/CODEOWNERS @markaj-nordic -/Kconfig @markaj-nordic @MarGasiorek -/README.md @markaj-nordic @MarGasiorek -/west.yml @markaj-nordic @MarGasiorek diff --git a/Kconfig b/Kconfig index 6675b996..60702d46 100644 --- a/Kconfig +++ b/Kconfig @@ -6,77 +6,4 @@ rsource "drivers/Kconfig" rsource "lib/Kconfig" - -menuconfig NCS_DOOR_LOCK - bool "NCS Door Lock Application [EXPERIMENTAL]" - depends on (SOC_SERIES_NRF54LX || SOC_SERIES_NRF53X || SOC_SERIES_NRF52X) - select EXPERIMENTAL - imply NFC_T4T_APDU - imply POLL - # storage - imply SETTINGS - imply FLASH - imply FLASH_MAP - imply REQUIRES_FULL_LIBCPP - imply REQUIRES_FULL_LIBC - imply NEWLIB_LIBC_NANO if NEWLIB_LIBC - help - This option enables the Door Lock Application which uses the Aliro reader stack. - -if NCS_DOOR_LOCK - -orsource "lib/aliro/interfaces/logger/Kconfig" - -config DOOR_LOCK_BLE_UWB - bool "Aliro Bluetooth LE (BLE) transport together with ultra wideband (UWB)" - help - Enable the Aliro BLE transport protocol (TP). This is the transport layer - used by the Reader to communicate with the User Device. It is used to send and - receive packets over BLE. Additionally the UWB is enabled in order to manage the - ranging between the Reader and the User Device. - -config DISABLE_ALIRO_NFC_TP - bool "Disable NFC transport protocol for development purposes" - help - Disable the NFC transport protocol. This is useful if you want to use Aliro with BLE only. - -if DOOR_LOCK_BLE_UWB - -config DOOR_LOCK_BLE_UWB_MAX_SESSIONS - int "Maximum number of BLE and UWB sessions" - range 1 BT_MAX_CONN - default BT_MAX_CONN - help - The maximum number of BLE and UWB sessions that can be established. - -endif # DOOR_LOCK_BLE_UWB - -rsource "lib/aliro/Kconfig.defconfig" - -config DOOR_LOCK_DFU_BLE_SMP - bool "Enable DFU over SMP" - depends on !CHIP - help - Enables Device Firmware Upgrade over Bluetooth LE. - -config DOOR_LOCK_DFU_BLE_SMP_STANDALONE - bool - default y if DOOR_LOCK_DFU_BLE_SMP && !DOOR_LOCK_BLE_UWB && !DOOR_LOCK_BLE_NUS - help - Automatically enabled when DFU over SMP is enabled standalone (without DOOR_LOCK_BLE_UWB or DOOR_LOCK_BLE_NUS). - This simplifies conditional compilation checks in the code. - -config DOOR_LOCK_BLE_NUS - bool "Enable Nordic Uart Service (NUS)" - depends on !CHIP - help - Enables the Bluetooth LE Nordic Uart Service (NUS). Using NUS service you can control a door lock using pre-defined BLE commands. - -# Source BLE defconfig when any BLE feature is enabled -if DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS - -rsource "lib/aliro/Kconfig.ble.defconfig" - -endif # DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS - -endif # NCS_DOOR_LOCK +rsource "subsys/Kconfig" diff --git a/app/Kconfig b/app/Kconfig index b856a4ef..f91c8cb0 100644 --- a/app/Kconfig +++ b/app/Kconfig @@ -4,65 +4,39 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +mainmenu "nRF Door Lock and Access Control Add-on" + module = DOOR_LOCK_APP module-str = NCS_DOOR_LOCK_APP module-dep = LOG module-help = Enables nRF Connect SDK Door Lock Application log messages. source "$(ZEPHYR_BASE)/subsys/logging/Kconfig.template.log_config" -choice DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION - prompt "Access Manager implementation" - default DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT - - config DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT - bool "Access Manager default implementation" - help - Uses the default implementation of the Access Manager - provided by the Door Lock Reference Application. - - config DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_CUSTOM - bool "Access Manager custom implementation" - help - Uses a custom implementation of the Access Manager. - This implementation is based on provided template - that can be tailored to specific requirements. -endchoice - config DOOR_LOCK_CLI - bool "Door Lock CLI support" - default y + bool "CLI support" + default y if (!DOOR_LOCK_RELEASE || !CHIP) select SHELL select REBOOT help Enable support for Door Lock CLI. -config DOOR_LOCK_PRINT_READER_GROUP_IDENTIFIER - bool "Print reader group identifier that should be provisioned into the User Device" - default y - help - Enable printing of the reader group identifier that should be provisioned into the User Device. - -config DOOR_LOCK_USE_TEST_READER_IDENTIFIER - bool "Use test reader identifier" - default y - help - Initialize the reader Group Identifier and Group Sub Identifier to test values. - -config DOOR_LOCK_USE_TEST_KEYS - bool "Use test keys" - default y - help - Initialize the reader keys to test values. +config DOOR_LOCK_RELEASE + bool "Release configuration" + help + In this configuration: + Aliro stack logs are disabled. + RFAL NFC driver logs are disabled. + Shell commands are disabled. + Device reset automatically on fatal error. -rsource "src/aliro/Kconfig" +rsource "src/Kconfig" -if DOOR_LOCK_BLE_NUS -rsource "src/bt_nus/Kconfig" -endif # DOOR_LOCK_BLE_NUS +rsource "Kconfig.defconfig" -if DOOR_LOCK_DFU_BLE_SMP -rsource "src/dfu_smp/Kconfig" -endif # DOOR_LOCK_DFU_BLE_SMP +# Source BLE defconfig when any BLE feature is enabled +if DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS +rsource "Kconfig.ble.defconfig" +endif # DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS if CHIP diff --git a/lib/aliro/Kconfig.ble.defconfig b/app/Kconfig.ble.defconfig similarity index 85% rename from lib/aliro/Kconfig.ble.defconfig rename to app/Kconfig.ble.defconfig index ce835e78..0adf3c6f 100644 --- a/lib/aliro/Kconfig.ble.defconfig +++ b/app/Kconfig.ble.defconfig @@ -7,9 +7,6 @@ config BT default y -config BT_DEVICE_NAME - default "AliroDL" - config BT_PERIPHERAL default y @@ -48,3 +45,7 @@ config BT_BONDABLE config BT_ID_MAX default 2 if BT_BONDABLE + +config BT_MAX_CONN + default 2 if DOOR_LOCK_BLE_UWB && (DOOR_LOCK_BLE_NUS || DOOR_LOCK_DFU_BLE_SMP) + default 1 diff --git a/lib/aliro/Kconfig.defconfig b/app/Kconfig.defconfig similarity index 55% rename from lib/aliro/Kconfig.defconfig rename to app/Kconfig.defconfig index 48d5a952..07a24eb3 100644 --- a/lib/aliro/Kconfig.defconfig +++ b/app/Kconfig.defconfig @@ -4,60 +4,8 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -# crypto default configuration -config MBEDTLS_PSA_CRYPTO_C - default y - -config MBEDTLS_ENABLE_HEAP - default y - -config MBEDTLS_HEAP_SIZE - default 8192 - -config MBEDTLS_X509_LIBRARY - default y - -config PSA_WANT_ALG_ECDSA - default y - -config PSA_WANT_ALG_ECDH - default y - -config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE - default y - -config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT - default y - -config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT - default y - -config PSA_WANT_ECC_SECP_R1_256 - default y - -config PSA_WANT_ALG_SHA_256 - default y - -config PSA_WANT_ALG_HKDF - default y - -config PSA_WANT_ALG_HMAC - default y - -config PSA_WANT_KEY_TYPE_HMAC - default y - -config PSA_WANT_KEY_TYPE_AES - default y - -config PSA_WANT_ALG_ECB_NO_PADDING - default y - -config PSA_WANT_GENERATE_RANDOM - default y - -config PSA_WANT_ALG_GCM - default y +config BT_DEVICE_NAME + default "AliroDL" config TRUSTED_STORAGE default y @@ -73,10 +21,6 @@ endchoice config HW_UNIQUE_KEY_WRITE_ON_CRYPTO_INIT default y if (SOC_NRF5340_CPUAPP || SOC_SERIES_NRF54LX) -# APDU library -config NFC_T4T_APDU - default y - # required by Aliro persistent storage config FLASH default y @@ -91,39 +35,23 @@ config NVS_LOOKUP_CACHE_SIZE default 512 if NVS config NVS_LOOKUP_CACHE_FOR_SETTINGS - default y if NVS + default y if SETTINGS_NVS config ZMS default y if SOC_FLASH_NRF_RRAM config ZMS_LOOKUP_CACHE_SIZE - default 512 if ZMS + default 512 if SETTINGS_ZMS config ZMS_LOOKUP_CACHE_FOR_SETTINGS - default y if ZMS + default y if SETTINGS_ZMS config SETTINGS default y -# required by Aliro CLI -config REBOOT - default y - -config SHELL - default y - config EVENTS default y -config SMF - default y - -config SMF_ANCESTOR_SUPPORT - default y - -config SMF_INITIAL_TRANSITION - default y - config NRF_SECURITY default y @@ -150,12 +78,6 @@ endchoice config SHELL_CMD_BUFF_SIZE default 256 -config ZCBOR - default y - -config ZCBOR_CANONICAL - default y - if !CHIP config MAIN_STACK_SIZE diff --git a/app/boards/nrf52840dk_nrf52840.overlay b/app/boards/nrf52840dk_nrf52840.overlay index b5573c2c..6d6108cf 100644 --- a/app/boards/nrf52840dk_nrf52840.overlay +++ b/app/boards/nrf52840dk_nrf52840.overlay @@ -63,10 +63,16 @@ }; aliases { - access-decision-indicator = &led1; /* green LED2 on nRF52840DK */ + lock-sim-indicator = &led1; /* green LED2 on nRF52840DK */ }; }; &mx25r64 { status = "okay"; }; + +&gpio0 { + status = "okay"; + /* Use PORT event rather than GPIOTE IN event, to save power */ + sense-edge-mask = <0x00000008>; /* P0.03 */ +}; diff --git a/app/boards/nrf52840dk_nrf52840_release.overlay b/app/boards/nrf52840dk_nrf52840_release.overlay new file mode 100644 index 00000000..ff9a0c25 --- /dev/null +++ b/app/boards/nrf52840dk_nrf52840_release.overlay @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "nrf52840dk_nrf52840.overlay" + +&uart1 { + status = "disabled"; +}; + +&adc { + status = "disabled"; +}; + +&i2c0 { + status = "disabled"; +}; + +&i2c1 { + status = "disabled"; +}; + +&pwm0 { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; + +&usbd { + status = "disabled"; +}; + diff --git a/app/boards/nrf5340dk_nrf5340_cpuapp.overlay b/app/boards/nrf5340dk_nrf5340_cpuapp.overlay index 901896ed..0c7fbc23 100644 --- a/app/boards/nrf5340dk_nrf5340_cpuapp.overlay +++ b/app/boards/nrf5340dk_nrf5340_cpuapp.overlay @@ -10,7 +10,7 @@ }; aliases { - access-decision-indicator = &led1; /* green LED2 on nRF5340DK */ + lock-sim-indicator = &led1; /* green LED2 on nRF5340DK */ }; }; @@ -54,3 +54,9 @@ &mx25r64 { status = "okay"; }; + +&gpio0 { + status = "okay"; + /* Use PORT event rather than GPIOTE IN event, to save power */ + sense-edge-mask = <0x00000010>; /* P0.04 */ +}; diff --git a/app/boards/nrf5340dk_nrf5340_cpuapp_release.overlay b/app/boards/nrf5340dk_nrf5340_cpuapp_release.overlay new file mode 100644 index 00000000..1d8eb71d --- /dev/null +++ b/app/boards/nrf5340dk_nrf5340_cpuapp_release.overlay @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "nrf5340dk_nrf5340_cpuapp.overlay" + +&uart1 { + status = "disabled"; +}; + +&adc { + status = "disabled"; +}; + +&i2c1 { + status = "disabled"; +}; + +&pwm0 { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; + +&usbd { + status = "disabled"; +}; + +&spi4 { + status = "disabled"; +}; + diff --git a/app/boards/nrf54l15dk_nrf54l15_cpuapp.overlay b/app/boards/nrf54l15dk_nrf54l15_cpuapp.overlay index bd6b0f17..28d03063 100644 --- a/app/boards/nrf54l15dk_nrf54l15_cpuapp.overlay +++ b/app/boards/nrf54l15dk_nrf54l15_cpuapp.overlay @@ -22,7 +22,7 @@ /delete-property/ led0; /delete-property/ mcuboot-led0; mcuboot-button0 = &button1; - access-decision-indicator = &led2; /* green LED2 on nRF54L15DK */ + lock-sim-indicator = &led2; /* green LED2 on nRF54L15DK */ }; nfc_power_switch: nfc_power_switch { @@ -91,3 +91,9 @@ &mx25r64 { status = "okay"; }; + +&gpio0 { + status = "okay"; + /* Use PORT event rather than GPIOTE IN event, to save power */ + sense-edge-mask = <0x00000010>; /* P0.04 */ +}; diff --git a/app/boards/nrf54l15dk_nrf54l15_cpuapp_release.overlay b/app/boards/nrf54l15dk_nrf54l15_cpuapp_release.overlay new file mode 100644 index 00000000..6a0e9e86 --- /dev/null +++ b/app/boards/nrf54l15dk_nrf54l15_cpuapp_release.overlay @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "nrf54l15dk_nrf54l15_cpuapp.overlay" + +&uart30 { + status = "disabled"; +}; + +&adc { + status = "disabled"; +}; + +&pwm20 { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; + +&spi22 { + status = "disabled"; +}; + diff --git a/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay b/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay index c8eb2edd..e2d7e3b4 100644 --- a/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay +++ b/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp.overlay @@ -57,7 +57,7 @@ /delete-property/ led0; /delete-property/ mcuboot-led0; mcuboot-button0 = &button1; - access-decision-indicator = &led2; /* green LED2 on nRF54LM20DK */ + lock-sim-indicator = &led2; /* green LED2 on nRF54LM20DK */ }; chosen { @@ -77,3 +77,9 @@ &mx25r64 { status = "okay"; }; + +&gpio1 { + status = "okay"; + /* Use PORT event rather than GPIOTE IN event, to save power */ + sense-edge-mask = <0x00004000>; /* P1.14 */ +}; diff --git a/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp_release.overlay b/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp_release.overlay new file mode 100644 index 00000000..cca7a4e7 --- /dev/null +++ b/app/boards/nrf54lm20dk_nrf54lm20a_cpuapp_release.overlay @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "nrf54lm20dk_nrf54lm20a_cpuapp.overlay" + +&uart30 { + status = "disabled"; +}; + +&pwm20 { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; + +&usbhs { + status = "disabled"; +}; + +&spi22 { + status = "disabled"; +}; + diff --git a/app/boards/nrf54lm20dk_spi_nrfutil_config.json b/app/boards/nrf54lm20dk_spi_nrfutil_config.json new file mode 100644 index 00000000..fd111fb4 --- /dev/null +++ b/app/boards/nrf54lm20dk_spi_nrfutil_config.json @@ -0,0 +1,17 @@ +{ + "firmware_config": { + "peripheral": "SPIM00" + }, + "pins": { + "sck": 65, + "csn": 69, + "io0": 66, + "io1": 68, + "io2": 67, + "io3": 64 + }, + "flash_size": 67108864, + "sck_frequency": 8000000, + "page_size": 4096, + "address_mode": "MODE24BIT" +} diff --git a/app/pm_static_nrf52840dk_nrf52840.yml b/app/pm_static_nrf52840dk_nrf52840.yml index 9c4aa3cd..01d94d8d 100644 --- a/app/pm_static_nrf52840dk_nrf52840.yml +++ b/app/pm_static_nrf52840dk_nrf52840.yml @@ -35,8 +35,13 @@ mcuboot_secondary: size: 0xf0000 device: MX25R64 region: external_flash -external_flash: +external_nvs: address: 0xf0000 - size: 0x710000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x110000 + size: 0x6f0000 device: MX25R64 region: external_flash diff --git a/app/pm_static_nrf5340dk_nrf5340_cpuapp.yml b/app/pm_static_nrf5340dk_nrf5340_cpuapp.yml index 0b32f012..a1af2561 100644 --- a/app/pm_static_nrf5340dk_nrf5340_cpuapp.yml +++ b/app/pm_static_nrf5340dk_nrf5340_cpuapp.yml @@ -45,9 +45,14 @@ mcuboot_secondary_1: size: 0x40000 device: MX25R64 region: external_flash -external_flash: +external_nvs: address: 0x12F000 - size: 0x6D1000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x14F000 + size: 0x6B1000 device: MX25R64 region: external_flash pcd_sram: diff --git a/app/pm_static_nrf5340dk_nrf5340_cpuapp_uwb_dfu.yml b/app/pm_static_nrf5340dk_nrf5340_cpuapp_uwb_dfu.yml index 6e470a2a..ead4249f 100644 --- a/app/pm_static_nrf5340dk_nrf5340_cpuapp_uwb_dfu.yml +++ b/app/pm_static_nrf5340dk_nrf5340_cpuapp_uwb_dfu.yml @@ -69,12 +69,17 @@ mcuboot_secondary_2: size: 0x81000 device: MX25R64 region: external_flash -external_flash: +external_nvs: address: 0x231000 - size: 0x5cf000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x251000 + size: 0x5af000 device: MX25R64 region: external_flash pcd_sram: address: 0x20000000 size: 0x2000 - region: sram_primary \ No newline at end of file + region: sram_primary diff --git a/app/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml b/app/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml index a8e64916..7c7368ce 100644 --- a/app/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml +++ b/app/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml @@ -38,19 +38,27 @@ mcuboot_secondary: orig_span: &id003 - mcuboot_secondary_pad - mcuboot_secondary_app + device: MX25R64 region: external_flash size: 0x165000 span: *id003 mcuboot_secondary_pad: + device: MX25R64 region: external_flash address: 0x0 size: 0x800 mcuboot_secondary_app: + device: MX25R64 region: external_flash address: 0x800 size: 0x164800 -external_flash: +external_nvs: address: 0x165000 - size: 0x69B000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x185000 + size: 0x67B000 device: MX25R64 region: external_flash diff --git a/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml b/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml index 3e9051d5..6589334a 100644 --- a/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml +++ b/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp.yml @@ -38,19 +38,27 @@ mcuboot_secondary: orig_span: &id003 - mcuboot_secondary_pad - mcuboot_secondary_app + device: MX25R64 region: external_flash size: 0x1E3000 span: *id003 mcuboot_secondary_pad: + device: MX25R64 region: external_flash address: 0x0 size: 0x800 mcuboot_secondary_app: + device: MX25R64 region: external_flash address: 0x800 size: 0x1E2800 -external_flash: +external_nvs: address: 0x1E3000 - size: 0x5DB000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x203000 + size: 0x5FD000 device: MX25R64 region: external_flash diff --git a/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp_uwb_dfu.yml b/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp_uwb_dfu.yml new file mode 100644 index 00000000..778c1177 --- /dev/null +++ b/app/pm_static_nrf54lm20dk_nrf54lm20a_cpuapp_uwb_dfu.yml @@ -0,0 +1,94 @@ +mcuboot: + address: 0x0 + region: flash_primary + size: 0xD000 +mcuboot_pad: + address: 0xD000 + region: flash_primary + size: 0x800 +app: + address: 0xD800 + region: flash_primary + size: 0x1E2800 +mcuboot_primary: + address: 0xD000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0x1E3000 + span: *id001 +mcuboot_primary_app: + address: 0xD800 + orig_span: &id002 + - app + region: flash_primary + size: 0x1E2800 + span: *id002 +factory_data: + address: 0x1F0000 + region: flash_primary + size: 0x1000 +settings_storage: + address: 0x1F1000 + region: flash_primary + size: 0xC000 +mcuboot_secondary: + address: 0x0 + orig_span: &id003 + - mcuboot_secondary_pad + - mcuboot_secondary_app + device: MX25R64 + region: external_flash + size: 0x1E3000 + span: *id003 +mcuboot_secondary_pad: + device: MX25R64 + region: external_flash + address: 0x0 + size: 0x800 +mcuboot_secondary_app: + device: MX25R64 + region: external_flash + address: 0x800 + size: 0x1E2800 +qm35_fw_mcuboot_pad: + address: 0x1E3000 + size: 0x800 + device: MX25R64 + region: external_flash +qm35_fw: + address: 0x1E3800 + size: 0x80000 + device: MX25R64 + region: external_flash +qm35_fw_pad: + address: 0x263800 + size: 0x800 + device: MX25R64 + region: external_flash +mcuboot_primary_1: + orig_span: &id004 + - qm35_fw_mcuboot_pad + - qm35_fw + - qm35_fw_pad + span: *id004 + address: 0x1E3000 + size: 0x81000 + device: MX25R64 + region: external_flash +mcuboot_secondary_1: + address: 0x264000 + size: 0x81000 + device: MX25R64 + region: external_flash +external_nvs: + address: 0x2E5000 + size: 0x20000 + device: MX25R64 + region: external_flash +external_flash: + address: 0x305000 + size: 0x4FB000 + device: MX25R64 + region: external_flash diff --git a/app/prj.conf b/app/prj.conf index 7c27964b..e29f7b12 100644 --- a/app/prj.conf +++ b/app/prj.conf @@ -8,7 +8,7 @@ # Aliro # -CONFIG_NCS_DOOR_LOCK=y +CONFIG_NCS_ALIRO=y # Basic system configuration CONFIG_CPP=y @@ -36,6 +36,8 @@ CONFIG_LOG_BACKEND_SHOW_COLOR=n CONFIG_DOOR_LOCK_APP_LOG_LEVEL_INF=y CONFIG_BT_HCI_CORE_LOG_LEVEL_ERR=y CONFIG_BT_HCI_DRIVER_LOG_LEVEL_ERR=y +CONFIG_MATTER_LOG_LEVEL_INF=y +CONFIG_CHIP_APP_LOG_LEVEL=3 # Disable unused shell features CONFIG_SHELL_VT100_COLORS=n @@ -53,9 +55,6 @@ CONFIG_SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE=1024 # Adjust logs queue size CONFIG_SHELL_BACKEND_SERIAL_LOG_MESSAGE_QUEUE_SIZE=2048 -# RFAL worker stack size (TODO: optimize) -CONFIG_RFAL_WORKER_THREAD_STACK_SIZE=8192 - # Workaournd for Murata issue: # https://github.com/csa-access-control/aliro-actuator/issues/114 CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n @@ -69,6 +68,9 @@ CONFIG_BT_L2CAP_TX_MTU=267 # Matter # +CONFIG_CHIP_LIB_SHELL=y +CONFIG_NCS_SAMPLE_MATTER_TEST_SHELL=y + # 3003 CONFIG_CHIP_DEVICE_DISCRIMINATOR=0xBBB CONFIG_CHIP_DEVICE_SPAKE2_PASSCODE=30033003 @@ -78,16 +80,9 @@ CONFIG_CHIP_DEVICE_PRODUCT_ID=32774 # Suspend devices when the CPU goes into sleep CONFIG_PM_DEVICE=y - -# Disable enabling PM runtime for all devices by default, as suspending UART -# causes SHELL to be non-responsive. -CONFIG_PM_DEVICE_RUNTIME_DEFAULT_ENABLE=n +CONFIG_PM_DEVICE_RUNTIME=y # Try to disable unused RAM blocks to reduce power consumption CONFIG_RAM_POWER_DOWN_LIBRARY=y -# Reduce application size -CONFIG_MATTER_LOG_LEVEL_INF=y -CONFIG_CHIP_APP_LOG_LEVEL=3 - CONFIG_LOCK_MAX_CREDENTIAL_LENGTH=65 diff --git a/app/prj_release.conf b/app/prj_release.conf new file mode 100644 index 00000000..79be8984 --- /dev/null +++ b/app/prj_release.conf @@ -0,0 +1,74 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +# +# Aliro +# + +CONFIG_NCS_ALIRO=y + +CONFIG_NCS_ALIRO_RELEASE=y + +CONFIG_DOOR_LOCK_RELEASE=y + +# Basic system configuration +CONFIG_CPP=y +CONFIG_STD_CPP17=y +CONFIG_REQUIRES_FULL_LIBCPP=y + +# Stack sizes +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=3072 + +#logging +CONFIG_LOG=n +CONFIG_USE_SEGGER_RTT=n + +# Workaround for Murata issue: +# https://github.com/csa-access-control/aliro-actuator/issues/114 +CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n + +# Override default values to match Aliro requirements for APDU message sizes. +CONFIG_BT_BUF_ACL_RX_SIZE=271 +CONFIG_BT_BUF_ACL_TX_SIZE=271 +CONFIG_BT_L2CAP_TX_MTU=267 + +# +# Matter +# + +# 3003 +CONFIG_CHIP_DEVICE_DISCRIMINATOR=0xBBB +CONFIG_CHIP_DEVICE_SPAKE2_PASSCODE=30033003 + +# 32774 == 0x8006 (example lock-app) +CONFIG_CHIP_DEVICE_PRODUCT_ID=32774 + +# Suspend devices when the CPU goes into sleep +CONFIG_PM_DEVICE=y + +# Try to disable unused RAM blocks to reduce power consumption +CONFIG_RAM_POWER_DOWN_LIBRARY=y + +CONFIG_LOCK_MAX_CREDENTIAL_LENGTH=65 + +CONFIG_ASSERT=n +CONFIG_ASSERT_VERBOSE=n +CONFIG_ASSERT_NO_FILE_INFO=y + +CONFIG_RESET_ON_FATAL_ERROR=y + +CONFIG_UART_CONSOLE=n +CONFIG_SERIAL=n +CONFIG_SHELL=n +CONFIG_NCS_SAMPLE_MATTER_TEST_SHELL=n +CONFIG_LOG_MODE_MINIMAL=n + +CONFIG_THREAD_NAME=n +CONFIG_BOOT_BANNER=n +CONFIG_PRINTK=n +CONFIG_PRINTK_SYNC=n +CONFIG_CHIP_LIB_SHELL=n +CONFIG_OPENTHREAD_SHELL=n diff --git a/app/sample.yaml b/app/sample.yaml index 8f096f5d..75127337 100644 --- a/app/sample.yaml +++ b/app/sample.yaml @@ -5,66 +5,105 @@ common: sysbuild: true build_only: true tests: - app.nfc_door_lock: - platform_allow: &platforms_all - - nrf52840dk/nrf52840 - - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - integration_platforms: *platforms_all - app.door_lock_ble_uwb: - platform_allow: &platforms_uwb - - nrf5340dk/nrf5340/cpuapp - - nrf54lm20dk/nrf54lm20a/cpuapp - integration_platforms: *platforms_uwb + app.door_lock.nfc-ble-uwb.bt_nus-dfu_smp-exp_fast-step_up: + platform_allow: &id001 + - nrf5340dk/nrf5340/cpuapp + integration_platforms: *id001 extra_args: - - app_SNIPPET=uwb_qm35 - app.nfc_door_lock.matter: - platform_allow: *platforms_all - integration_platforms: *platforms_all + - app_SNIPPET="uwb_qm35;dfu_smp;bt_nus" + - CONFIG_DFU_SMP_LOG_LEVEL_DBG=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc-ble-uwb.dfu_smp-matter-exp_fast-step_up: + platform_allow: &id002 + - nrf54lm20dk/nrf54lm20a/cpuapp + integration_platforms: *id002 extra_args: - - SNIPPET=matter - app.door_lock_ble_uwb.matter: - platform_allow: *platforms_uwb - integration_platforms: *platforms_uwb + - app_SNIPPET="uwb_qm35" + - SNIPPET=matter + - CONFIG_CHIP_DFU_OVER_BT_SMP=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc-ble-uwb.dfu_smp-matter-step_up: + platform_allow: *id002 + integration_platforms: *id002 extra_args: - - SNIPPET=matter - - app_SNIPPET=uwb_qm35 - app.door_lock_ble_uwb.matter.bt_nus: - platform_allow: *platforms_uwb - integration_platforms: *platforms_uwb + - app_SNIPPET="uwb_qm35" + - SNIPPET=matter + - CONFIG_CHIP_DFU_OVER_BT_SMP=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc.dfu_smp-matter-step_up: + platform_allow: &id003 + - nrf54l15dk/nrf54l15/cpuapp + - nrf52840dk/nrf52840 + - nrf5340dk/nrf5340/cpuapp + integration_platforms: *id003 extra_args: - - SNIPPET=matter - - app_SNIPPET=uwb_qm35 - - CONFIG_CHIP_NUS=y - app.door_lock_ble_uwb.exp_fast: - platform_allow: *platforms_uwb - integration_platforms: *platforms_uwb + - SNIPPET=matter + - CONFIG_CHIP_DFU_OVER_BT_SMP=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc-ble-uwb.dfu_smp-step_up: + platform_allow: *id002 + integration_platforms: *id002 extra_args: - - app_SNIPPET=uwb_qm35 - - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y - app.nfc_door_lock.dfu_smp: - platform_allow: &platforms_5340_54l15 - - nrf5340dk/nrf5340/cpuapp - - nrf54l15dk/nrf54l15/cpuapp - integration_platforms: *platforms_5340_54l15 + - app_SNIPPET="uwb_qm35;dfu_smp" + - CONFIG_DFU_SMP_LOG_LEVEL_DBG=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc.dfu_smp-step_up: + platform_allow: *id003 + integration_platforms: *id003 extra_args: - - app_SNIPPET=dfu_smp - app.nfc_door_lock_ble_uwb.matter.exp_fast.dfu_smp: - platform_allow: - - nrf5340dk/nrf5340/cpuapp - integration_platforms: - - nrf5340dk/nrf5340/cpuapp + - app_SNIPPET=dfu_smp + - CONFIG_DFU_SMP_LOG_LEVEL_DBG=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + app.door_lock.nfc-ble-uwb.exp_fast-step_up-ca_cert: + platform_allow: &id004 + - nrf5340dk/nrf5340/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp + integration_platforms: *id004 extra_args: - - app_SNIPPET=dfu_smp - - SNIPPET=matter - - app_SNIPPET=uwb_qm35 - - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y - app.nfc_door_lock_ble_uwb.step_up: - platform_allow: - - nrf5340dk/nrf5340/cpuapp - integration_platforms: - - nrf5340dk/nrf5340/cpuapp + - app_SNIPPET=uwb_qm35 + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + - CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA=y + - CONFIG_DOOR_LOCK_READER_CERTIFICATE=y + app.door_lock.nfc.exp_fast-step_up-ca_cert: + platform_allow: &id005 + - nrf52840dk/nrf52840 + - nrf5340dk/nrf5340/cpuapp + - nrf54l15dk/nrf54l15/cpuapp + - nrf54lm20dk/nrf54lm20a/cpuapp + integration_platforms: *id005 extra_args: - - app_SNIPPET=uwb_qm35 - - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + - CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA=y + - CONFIG_DOOR_LOCK_READER_CERTIFICATE=y + smoke.door_lock.nfc-ble-uwb.matter-exp_fast-step_up: + platform_allow: *id001 + integration_platforms: *id001 + extra_args: + - app_SNIPPET="uwb_qm35" + - SNIPPET=matter + - CONFIG_DFU_SMP_LOG_LEVEL_DBG=y + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=y + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y + smoke.door_lock.nfc-ble-uwb: + platform_allow: *id002 + integration_platforms: *id002 + extra_args: + - app_SNIPPET=uwb_qm35 + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=n + smoke.door_lock.nfc.bt_nus-step_up: + platform_allow: &id006 + - nrf52840dk/nrf52840 + integration_platforms: *id006 + extra_args: + - app_SNIPPET=bt_nus + - CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE=n + - CONFIG_DOOR_LOCK_STEP_UP_PHASE=y diff --git a/app/src/Kconfig b/app/src/Kconfig new file mode 100644 index 00000000..c40fa51b --- /dev/null +++ b/app/src/Kconfig @@ -0,0 +1,10 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +rsource "aliro/Kconfig" +rsource "bt_nus/Kconfig" +rsource "dfu_smp/Kconfig" + diff --git a/app/src/aliro/CMakeLists.txt b/app/src/aliro/CMakeLists.txt index 68ae0da0..bef4bc4d 100644 --- a/app/src/aliro/CMakeLists.txt +++ b/app/src/aliro/CMakeLists.txt @@ -4,16 +4,25 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -file(GLOB app_sources CONFIGURE_DEPENDS *.cpp) +target_sources(app PRIVATE + init.cpp +) +if(NOT CONFIG_CHIP) + set(ALIRO_STANDALONE TRUE) +endif() + +target_sources_ifdef(ALIRO_STANDALONE app PRIVATE + aliro_state_control.cpp +) + +add_subdirectory(access_manager) +add_subdirectory(aliro_work) +add_subdirectory(interface_impl) +add_subdirectory(lock_sim) add_subdirectory(platform) add_subdirectory(storage) add_subdirectory_ifdef(CONFIG_DOOR_LOCK_STEP_UP_PHASE access_document) -add_subdirectory_ifdef(CONFIG_DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT access_manager_impl_default) -add_subdirectory_ifdef(CONFIG_DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_CUSTOM access_manager_impl_custom) add_subdirectory_ifdef(CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE kpersistent_manager) add_subdirectory_ifdef(CONFIG_DOOR_LOCK_CLI cli) -add_subdirectory_ifndef(CONFIG_CHIP lock_sim) - -target_sources(app PRIVATE ${app_sources}) diff --git a/app/src/aliro/Kconfig b/app/src/aliro/Kconfig index 7214c0f5..15a21510 100644 --- a/app/src/aliro/Kconfig +++ b/app/src/aliro/Kconfig @@ -4,6 +4,28 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menu "Aliro features" + +config DOOR_LOCK_BLE_UWB + bool "Aliro Bluetooth LE (BLE) transport together with ultra wideband (UWB)" + select NCS_ALIRO_BLE_UWB + help + Enable the Aliro BLE transport protocol (TP). This is the transport layer + used by the Reader to communicate with the User Device. It is used to send and + receive packets over BLE. Additionally the UWB is enabled in order to manage the + ranging between the Reader and the User Device. + +if DOOR_LOCK_BLE_UWB + +config DOOR_LOCK_BLE_UWB_MAX_SESSIONS + int "Maximum number of BLE and UWB sessions" + range 1 BT_MAX_CONN + default BT_MAX_CONN + help + The maximum number of BLE and UWB sessions that can be established. + +endif # DOOR_LOCK_BLE_UWB + config DOOR_LOCK_EXPEDITED_FAST_PHASE bool "Support for Aliro Expedited-fast Phase" default y if CHIP @@ -14,13 +36,14 @@ config DOOR_LOCK_EXPEDITED_FAST_PHASE config DOOR_LOCK_STEP_UP_PHASE bool "Support for Aliro Step-up Phase" default y if CHIP + select DOOR_LOCK_EXTERNAL_NVS if !SOC_SERIES_NRF52X help If enabled, the Step-up phase is supported. The user authentication is based on the Access Document. config DOOR_LOCK_CREDENTIAL_ISSUER_CA bool "Support for Credential Issuer CA public key" - default y if DOOR_LOCK_STEP_UP_PHASE + default y if DOOR_LOCK_STEP_UP_PHASE && !CHIP help If enabled, the Credential Issuer CA public key is supported. The Credential Issuer CA public key is used to verify the signature of the Credential Issuer certificate. @@ -42,16 +65,16 @@ config DOOR_LOCK_READER_CERTIFICATE_MAX_SIZE endif # DOOR_LOCK_READER_CERTIFICATE +endmenu # Aliro features + rsource "platform/Kconfig" if DOOR_LOCK_CLI rsource "cli/Kconfig" endif -if DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT -rsource "access_manager_impl_default/Kconfig" -endif - +rsource "access_manager/Kconfig" rsource "kpersistent_manager/Kconfig" rsource "lock_sim/Kconfig" rsource "storage/Kconfig" +rsource "aliro_work/Kconfig" diff --git a/app/src/aliro/access_manager_impl_custom/CMakeLists.txt b/app/src/aliro/access_manager/CMakeLists.txt similarity index 100% rename from app/src/aliro/access_manager_impl_custom/CMakeLists.txt rename to app/src/aliro/access_manager/CMakeLists.txt diff --git a/app/src/aliro/access_manager_impl_default/Kconfig b/app/src/aliro/access_manager/Kconfig similarity index 98% rename from app/src/aliro/access_manager_impl_default/Kconfig rename to app/src/aliro/access_manager/Kconfig index b0fd1d35..a193b009 100644 --- a/app/src/aliro/access_manager_impl_default/Kconfig +++ b/app/src/aliro/access_manager/Kconfig @@ -4,6 +4,8 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menu "Access Manager" + config DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS int "Maximum number of stored Credential Issuer public keys" default 5 if DOOR_LOCK_STEP_UP_PHASE @@ -95,3 +97,5 @@ config DOOR_LOCK_ACCESS_MANAGER_SESSION_TIMEOUT_MS endif endif # DOOR_LOCK_BLE_UWB + +endmenu # Access Manager diff --git a/app/src/aliro/access_manager/access_manager.cpp b/app/src/aliro/access_manager/access_manager.cpp new file mode 100644 index 00000000..86a2d654 --- /dev/null +++ b/app/src/aliro/access_manager/access_manager.cpp @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause + */ + +#include "access_manager.h" + +namespace Aliro { + +AccessManagerImpl *AccessManager::Impl() +{ + return static_cast(this); +} + +const AccessManagerImpl *AccessManager::Impl() const +{ + return static_cast(this); +} + +void AccessManager::SetApplicationCallbacks(const ApplicationCallbacks &callbacks) +{ + Impl()->_SetApplicationCallbacks(callbacks); +} + +std::optional +AccessManager::ShouldRequestAccessDocument(const CryptoTypes::PublicKey &publicKey, + const std::optional &credentialSignedTimestamp) +{ + return Impl()->_ShouldRequestAccessDocument(publicKey, credentialSignedTimestamp); +} + +AliroError +AccessManager::VerifyAccessCredential(const CryptoTypes::PublicKey &userPublicKey, SessionContext sessionContext, + CryptoTypes::KeyId kpersistentKeyId, + const std::optional &accessDocument) +{ + return Impl()->_VerifyAccessCredential(userPublicKey, sessionContext, kpersistentKeyId, accessDocument); +} + +AliroError AccessManager::VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, SessionContext sessionContext) +{ + return Impl()->_VerifyKPersistentKey(kpersistentKeyId, sessionContext); +} + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB +AliroError AccessManager::StartRangingSession(uint32_t rangingSessionId, const CryptoTypes::Ursk &ursk, + ProtocolVersion protocolVersion, SessionContext sessionContext) +{ + return Impl()->_StartRangingSession(rangingSessionId, ursk, protocolVersion, sessionContext); +} +#endif // CONFIG_NCS_ALIRO_BLE_UWB + +AliroError AccessManager::AddPublicKey(const CryptoTypes::PublicKey &publicKey, PublicKeyType publicKeyType, + size_t keyIndex) +{ + return Impl()->_AddPublicKey(publicKey, publicKeyType, keyIndex); +} + +bool AccessManager::IsPublicKeyStored(const CryptoTypes::PublicKey &publicKey, size_t *keyIndex) +{ + return Impl()->_IsPublicKeyStored(publicKey, keyIndex); +} + +AliroError AccessManager::GetPublicKey(size_t keyIndex, CryptoTypes::PublicKey &publicKey) +{ + return Impl()->_GetPublicKey(keyIndex, publicKey); +} + +AliroError AccessManager::RemovePublicKey(PublicKeyType publicKeyType, size_t keyIndex) +{ + return Impl()->_RemovePublicKey(publicKeyType, keyIndex); +} + +AliroError AccessManager::GetCredentialIssuerPublicKey(const CryptoTypes::KeyIdentifier &keyIdentifier, + CryptoTypes::PublicKey &publicKey) const +{ + return Impl()->_GetCredentialIssuerPublicKey(keyIdentifier, publicKey); +} + +void AccessManager::ClearStoredKeys() +{ + return Impl()->_ClearStoredKeys(); +} + +void AccessManager::SetMaxAllowedDistance(uint32_t maxDistance) +{ + return Impl()->_SetMaxAllowedDistance(maxDistance); +} + +uint32_t AccessManager::GetMaxAllowedDistance() +{ + return Impl()->_GetMaxAllowedDistance(); +} + +void AccessManager::HandleRangingSessionData(SessionContext sessionContext, const UwbRangingData &uwbData) +{ + return Impl()->_HandleRangingSessionData(sessionContext, uwbData); +} + +void AccessManager::HandleRangingSessionStateChanged(SessionContext sessionContext, RangingSessionState state) +{ + return Impl()->_HandleRangingSessionStateChanged(sessionContext, state); +} + +void AccessManager::HandleSessionTermination(SessionContext sessionContext) +{ + return Impl()->_HandleSessionTermination(sessionContext); +} + +} // namespace Aliro diff --git a/lib/aliro/interfaces/access_manager/access_manager.h b/app/src/aliro/access_manager/access_manager.h similarity index 85% rename from lib/aliro/interfaces/access_manager/access_manager.h rename to app/src/aliro/access_manager/access_manager.h index 726958d0..5a618618 100644 --- a/lib/aliro/interfaces/access_manager/access_manager.h +++ b/app/src/aliro/access_manager/access_manager.h @@ -6,7 +6,9 @@ #pragma once +#include "aliro/connection_handle.h" #include "aliro/errors.h" +#include "aliro/interface.h" #include "aliro/protocol_version.h" #include "aliro/types.h" @@ -24,7 +26,7 @@ class AccessManagerImpl; */ class AccessManager { public: - using SessionContext = const void *; + using SessionContext = ConnectionHandle; using LockIndicatorCallback = void (*)(OperationSource source); using AccessIndicatorCallback = void (*)(bool isAccessGranted, bool isNfcSession); using TerminateSessionCallback = void (*)(SessionContext sessionContext); @@ -62,19 +64,6 @@ class AccessManager { AccessIndicatorCallback mAccessIndicatorClb{ nullptr }; }; - /** - * @brief Stack callbacks. - * - */ - struct StackCallbacks { - /** - * @brief Callback for terminating the Aliro session. - * - * This callback is called when the session should be terminated. - */ - TerminateSessionCallback mTerminateSessionClb{ nullptr }; - }; - /** * @brief Set the application callbacks for the AccessManager. * @@ -82,26 +71,10 @@ class AccessManager { */ void SetApplicationCallbacks(const ApplicationCallbacks &callbacks); - /** - * @brief Set the stack callbacks. - * - * @param callbacks Stack callbacks. - */ - void SetStackCallbacks(const StackCallbacks &callbacks); - /** * @brief Parameters for the Access Document request. */ - struct AccessDocumentRequestParams { - /** - * @brief The data element identifier of the Access Document to be requested. - */ - ConstData mElementIdentifier; - /** - * @brief Indicates the intent to store the Access Document. - */ - bool mIntentToStore; - }; + using AccessDocumentRequestParams = Interface::Access::AccessDocumentRequestParams; /** * @brief Checks if the Access Document for a parameters should be requested. @@ -120,30 +93,28 @@ class AccessManager { * @brief Verifies the Access Credential based on provided inputs. * * @param userPublicKey The User Device public key to verify. - * @param isNfcSession Indicates if the session is a NFC session. * @param sessionContext A pointer to the session context. + * @param kpersistentKeyId The volatile Kpersistent key generated during the Expedited-standard phase. * @param accessDocument The access document provided by the User Device. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ AliroError - VerifyAccessCredential(const CryptoTypes::PublicKey &userPublicKey, bool isNfcSession, - SessionContext sessionContext, + VerifyAccessCredential(const CryptoTypes::PublicKey &userPublicKey, SessionContext sessionContext, + CryptoTypes::KeyId kpersistentKeyId, const std::optional &accessDocument = std::nullopt); /** * @brief Verifies the Kpersistent key based on provided inputs. * * @param kpersistentKeyId The Kpersistent key ID to verify. - * @param isNfcSession Indicates if the session is a NFC session. * @param sessionContext A pointer to the session context. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ - AliroError VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, bool isNfcSession, - SessionContext sessionContext); + AliroError VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, SessionContext sessionContext); -#ifdef CONFIG_DOOR_LOCK_BLE_UWB +#ifdef CONFIG_NCS_ALIRO_BLE_UWB /** * @brief Starts a ranging session based on provided inputs. * @@ -156,7 +127,7 @@ class AccessManager { */ AliroError StartRangingSession(uint32_t rangingSessionId, const CryptoTypes::Ursk &ursk, ProtocolVersion protocolVersion, SessionContext sessionContext); -#endif // CONFIG_DOOR_LOCK_BLE_UWB +#endif // CONFIG_NCS_ALIRO_BLE_UWB /** * @brief Add a new public key to the AccessManager. @@ -249,9 +220,8 @@ class AccessManager { * @brief Handles the session termination. * * @param sessionContext The session context. - * @param isNfcSession Indicates if the session is a NFC session. */ - void HandleSessionTermination(SessionContext sessionContext, bool isNfcSession); + void HandleSessionTermination(SessionContext sessionContext); private: AccessManagerImpl *Impl(); diff --git a/app/src/aliro/access_manager_impl_default/access_manager_impl.cpp b/app/src/aliro/access_manager/access_manager_impl.cpp similarity index 88% rename from app/src/aliro/access_manager_impl_default/access_manager_impl.cpp rename to app/src/aliro/access_manager/access_manager_impl.cpp index cf60780f..49e4a8ee 100644 --- a/app/src/aliro/access_manager_impl_default/access_manager_impl.cpp +++ b/app/src/aliro/access_manager/access_manager_impl.cpp @@ -7,15 +7,19 @@ #include "access_manager_impl.h" #include "access_document.h" #include "aliro/aliro.h" -#include "aliro/mutex_guard.h" +#include "aliro/interface.h" #include "aliro/time.h" #include "aliro/utils.h" -#include "crypto/crypto.h" +#include "crypto/utils.h" +#include "mutex_guard.h" #include "storage.h" #include "storage_keys.h" #ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE #include "cbor/access_document_decode.h" +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 +#include "access_document.h" +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE #ifdef CONFIG_DOOR_LOCK_BLE_UWB @@ -53,7 +57,7 @@ constexpr std::array kElementIdentifier{ 'f', 'l', 'o', 'o', 'r', '1 #endif // CONFIG_CHIP -constexpr AccessManager::AccessDocumentRequestParams kAccessDocumentRequestParams{ +constexpr Interface::Access::AccessDocumentRequestParams kAccessDocumentRequestParams{ .mElementIdentifier = { kElementIdentifier.data(), kElementIdentifier.size() }, .mIntentToStore = true, }; @@ -165,18 +169,20 @@ void LogAccessData(const AccessData &accessData) } } -bool ValidateAccessData(const ConstData &accessDataBytes) +AliroError ValidateAccessData(const ConstData &accessDataBytes) { - VerifyOrReturnFalse(accessDataBytes.mData && accessDataBytes.mLength, LOG_ERR("AccessData is empty")); + VerifyOrReturnStatus(accessDataBytes.mData && accessDataBytes.mLength, ALIRO_INVALID_ARGUMENT, + LOG_ERR("AccessData is empty")); LOG_HEXDUMP_DBG(accessDataBytes.mData, accessDataBytes.mLength, "AccessData"); AccessData accessData{}; const auto err = cbor_decode_AccessData(accessDataBytes.mData, accessDataBytes.mLength, &accessData, nullptr); - VerifyOrReturnFalse(err == ZCBOR_SUCCESS, LOG_ERR("Failed to decode AccessData: %d", err)); + VerifyOrReturnStatus(err == ZCBOR_SUCCESS, ALIRO_INVALID_DATA_FORMAT, + LOG_ERR("Failed to decode AccessData: %d", err)); - VerifyOrReturnFalse(accessData.AccessData_Version == 1, - LOG_ERR("Unsupported AccessData Version: %d", accessData.AccessData_Version)); + VerifyOrReturnStatus(accessData.AccessData_Version == 1, ALIRO_INVALID_DATA_FORMAT, + LOG_ERR("Unsupported AccessData Version: %d", accessData.AccessData_Version)); if (accessData.AccessData_AccessRules_present) { bool accessRuleValid{ false }; @@ -201,12 +207,14 @@ bool ValidateAccessData(const ConstData &accessDataBytes) } } - VerifyOrReturnFalse(accessRuleValid, LOG_ERR("AccessData AccessRules, no valid rule found")); + VerifyOrReturnStatus(accessRuleValid, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("AccessData AccessRules, no valid rule found")); } - VerifyOrReturnFalse(!accessData.AccessData_Schedules_present, LOG_ERR("AccessData Schedules not supported")); - VerifyOrReturnFalse(!accessData.AccessData_ReaderRuleIds_present, - LOG_ERR("AccessData ReaderRuleIds not supported")); + VerifyOrReturnStatus(!accessData.AccessData_Schedules_present, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("AccessData Schedules not supported")); + VerifyOrReturnStatus(!accessData.AccessData_ReaderRuleIds_present, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("AccessData ReaderRuleIds not supported")); if (accessData.AccessData_AccessExtensions_present) { const auto &accessExtensions = accessData.AccessData_AccessExtensions; @@ -226,8 +234,8 @@ bool ValidateAccessData(const ConstData &accessDataBytes) const auto criticalExtension = !IS_BIT_SET(accessExtension.AccessExtension_Criticality, Criticality_Bits::Criticality_Bits_Critical_c); - VerifyOrReturnFalse( - !criticalExtension, + VerifyOrReturnStatus( + !criticalExtension, ALIRO_INVALID_DATA_CONTENT, LOG_ERR("AccessData AccessExtensions, critical extensions are not supported")); } } @@ -235,7 +243,7 @@ bool ValidateAccessData(const ConstData &accessDataBytes) LogAccessData(accessData); - return true; + return ALIRO_NO_ERROR; } AliroError GetCurrentValidityIterations(size_t credentialIssuerKeyIndex, ValidityIterations &iterations) @@ -261,6 +269,8 @@ bool VerifyValidityIteration(const ValidityIterations ¤tIterations, Validi return true; } +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + AliroError StoreAccessDocument(size_t keyIndex, size_t credentialIssuerKeyIndex, const AccessDocumentTypes::AccessDocument &accessDocument) { @@ -304,21 +314,32 @@ bool IsCurrentAccessDocumentUpToDate(size_t keyIndex, const Timestamp &credentia return savedTimestamp.value() >= newTimestamp.value(); } +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE } // namespace -void AccessManagerImpl::_SetApplicationCallbacks(const ApplicationCallbacks &callbacks) +#ifdef CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT + +void AccessManagerImpl::RangingSessionContext::RangingSessionTimerCallback(Timer::Context ctx) { - mCallbacks = callbacks; + auto rangingSessionCtx = static_cast(ctx); + auto sessionContextOpt = AccessManagerImpl::Instance().FindSessionContext(rangingSessionCtx); + + if (sessionContextOpt.has_value()) { + AccessManagerImpl::Instance().TerminateAliroSession(sessionContextOpt.value()); + } } -void AccessManagerImpl::_SetStackCallbacks(const StackCallbacks &callbacks) +#endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT + +void AccessManagerImpl::_SetApplicationCallbacks(const ApplicationCallbacks &callbacks) { - mStackCallbacks = callbacks; + mCallbacks = callbacks; } -std::optional AccessManagerImpl::_ShouldRequestAccessDocument( +std::optional AccessManagerImpl::_ShouldRequestAccessDocument( [[maybe_unused]] const CryptoTypes::PublicKey &publicKey, [[maybe_unused]] const std::optional &credentialSignedTimestamp) { @@ -328,6 +349,7 @@ std::optional AccessManagerImpl::_Sh !IsPublicKeyStored(mAcKeys, publicKey), std::nullopt, LOG_INF("Provided User Device public key found in Access Manager database, not requesting Access Document")); +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 size_t keyIndex{}; if (IsPublicKeyStored(mAdKeys, publicKey, &keyIndex)) { if (credentialSignedTimestamp.has_value()) { @@ -345,6 +367,7 @@ std::optional AccessManagerImpl::_Sh LOG_INF("Provided User Device public key found in Access Manager database, not requesting Access Document"); return std::nullopt; } +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 LOG_INF("Provided User Device public key not found in Access Manager database, requesting Access Document"); return kAccessDocumentRequestParams; @@ -354,13 +377,13 @@ std::optional AccessManagerImpl::_Sh } AliroError AccessManagerImpl::_VerifyAccessCredential( - const CryptoTypes::PublicKey &userPublicKey, bool isNfcSession, SessionContext, + const CryptoTypes::PublicKey &userPublicKey, SessionContext sessionContext, CryptoTypes::KeyId kpersistentKeyId, [[maybe_unused]] const std::optional &accessDocument) { AliroError status{ ALIRO_NO_ERROR }; { MutexGuard lock{ sMutex }; - status = VerifyPublicKey(userPublicKey) ? ALIRO_NO_ERROR : ALIRO_INVALID_PUBLIC_KEY; + status = VerifyPublicKey(userPublicKey) ? ALIRO_NO_ERROR : ALIRO_PUBLIC_KEY_NOT_FOUND; } #ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE @@ -370,19 +393,28 @@ AliroError AccessManagerImpl::_VerifyAccessCredential( } #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE - HandleAccessGranted(isNfcSession, status == ALIRO_NO_ERROR); +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + if (status == ALIRO_NO_ERROR && mKpersistentManager) { + const auto preserveStatus = mKpersistentManager->PreserveKpersistent(userPublicKey, kpersistentKeyId); + if (preserveStatus != ALIRO_NO_ERROR) { + LOG_ERR("Failed to preserve Kpersistent key: %d", preserveStatus.ToInt()); + } + } +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + + HandleAccessGranted(sessionContext.IsNfc(), status == ALIRO_NO_ERROR); return status; } AliroError AccessManagerImpl::_VerifyKPersistentKey([[maybe_unused]] CryptoTypes::KeyId kpersistentKeyId, - [[maybe_unused]] bool isNfcSession, SessionContext) + [[maybe_unused]] SessionContext sessionContext) { #ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE CryptoTypes::PublicKey publicKey{}; VerifyOrReturnStatus(mKpersistentManager, ALIRO_INVALID_STATE, LOG_ERR("Kpersistent manager not set")); AliroError status = mKpersistentManager->GetAccessCredentialPublicKey(kpersistentKeyId, publicKey); - HandleAccessGranted(isNfcSession, status == ALIRO_NO_ERROR); + HandleAccessGranted(sessionContext.IsNfc(), status == ALIRO_NO_ERROR); return status; #else @@ -446,7 +478,9 @@ AliroError AccessManagerImpl::_RemovePublicKey(PublicKeyType publicKeyType, size else if (publicKeyType == PublicKeyType::CredentialIssuer) { LOG_DBG("Removing Credential Issuer public key from storage"); ReturnErrorOnFailure(RemoveKeyFromContainer(mCiKeys, keyIndex)); +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 ReturnErrorOnFailure(RemoveAccessCredentials(keyIndex)); +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 return ALIRO_NO_ERROR; } #endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS > 0 @@ -530,20 +564,20 @@ void AccessManagerImpl::_HandleRangingSessionStateChanged(SessionContext session #ifdef CONFIG_DOOR_LOCK_BLE_UWB switch (state) { case RangingSessionState::Ranging: - LOG_INF("Ranging state changed to Ranging (session: %p)", sessionContext); + LOG_INF("Ranging state changed to Ranging (session: %p)", sessionContext.GetRaw()); break; case RangingSessionState::RangingSuspended: - LOG_INF("Ranging state changed to Ranging Suspended (session: %p)", sessionContext); + LOG_INF("Ranging state changed to Ranging Suspended (session: %p)", sessionContext.GetRaw()); // To prevent rapid toggling after Suspend event, only update ReaderState if no other sessions are in // range SetInRangeState(sessionContext, false, !IsUserDeviceInRange()); break; case RangingSessionState::RangingResumed: - LOG_INF("Ranging state changed to Ranging Resumed (session: %p)", sessionContext); + LOG_INF("Ranging state changed to Ranging Resumed (session: %p)", sessionContext.GetRaw()); break; case RangingSessionState::Destroyed: - LOG_INF("Ranging state changed to Destroyed (session: %p)", sessionContext); + LOG_INF("Ranging state changed to Destroyed (session: %p)", sessionContext.GetRaw()); // Only update ReaderState if no other sessions are in range SetInRangeState(sessionContext, false); break; @@ -559,7 +593,7 @@ void AccessManagerImpl::_HandleRangingSessionStateChanged(SessionContext session void AccessManagerImpl::_HandleRangingSessionData(SessionContext sessionContext, const UwbRangingData &uwbData) { - LOG_DBG("Handling ranging session data - length: %u for session: %p", uwbData.mLength, sessionContext); + LOG_DBG("Handling ranging session data - length: %u for session: %p", uwbData.mLength, sessionContext.GetRaw()); #ifdef CONFIG_DOOR_LOCK_BLE_UWB const auto currentSessionInRange = AnalyzeUwbRangingData(uwbData, sessionContext); @@ -567,14 +601,12 @@ void AccessManagerImpl::_HandleRangingSessionData(SessionContext sessionContext, #endif // CONFIG_DOOR_LOCK_BLE_UWB } -void AccessManagerImpl::_HandleSessionTermination(SessionContext sessionContext, [[maybe_unused]] bool isNfcSession) +void AccessManagerImpl::_HandleSessionTermination(SessionContext sessionContext) { - VerifyOrReturn(sessionContext, LOG_ERR("Session context is null")); - LOG_INF("Handling session termination"); #ifdef CONFIG_DOOR_LOCK_BLE_UWB - if (isNfcSession) { + if (sessionContext.IsNfc()) { return; } @@ -738,7 +770,7 @@ bool AccessManagerImpl::AnalyzeUwbRangingData(const UwbRangingData &uwbData, Ses // Find the session auto *sessionCtx = FindRangingSession(sessionContext); - VerifyOrReturnFalse(sessionCtx, LOG_ERR("Session context not found for handle: %p", sessionContext)); + VerifyOrReturnFalse(sessionCtx, LOG_ERR("Session context not found for handle: %p", sessionContext.GetRaw())); // Apply exit margin logic based on session's previous state: // - Unlock (enter range): distance <= mMaxAllowedDistance (when session was out of range) @@ -776,15 +808,10 @@ AliroError AccessManagerImpl::AddRangingSession(uint32_t rangingSessionId, const auto *newCtx = Aliro::new_nothrow( #ifdef CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT CONFIG_DOOR_LOCK_ACCESS_MANAGER_SESSION_TIMEOUT_MS, - [](Timer::Context ctx) { AccessManagerImpl::Instance().TerminateAliroSession(ctx); }, - const_cast(sessionCtx) #endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT - ); + sessionCtx); VerifyOrReturnStatus(newCtx, ALIRO_NO_MEMORY, LOG_ERR("Cannot allocate context for UWB session.")); - newCtx->mInRange = false; - newCtx->mSessionContext = sessionCtx; - MutexGuard lock{ sMutex }; AliroError status = Uwb::UltraWideBandImpl::Instance().ConfigureRangingSession(rangingSessionId, ursk, @@ -844,6 +871,21 @@ AccessManagerImpl::RangingSessionContext *AccessManagerImpl::FindRangingSession( return nullptr; } +std::optional +AccessManagerImpl::FindSessionContext(RangingSessionContext *rangingSessionCtx) +{ + MutexGuard lock{ sMutex }; + RangingSessionContext *currentSessionCtx{ nullptr }; + + SYS_SLIST_FOR_EACH_CONTAINER (&mActiveSessions, currentSessionCtx, mNode) { + if (currentSessionCtx == rangingSessionCtx) { + return currentSessionCtx->mSessionContext; + } + } + + return std::nullopt; +} + bool AccessManagerImpl::IsUserDeviceInRange() const { RangingSessionContext *rangingSessionCtx{}; @@ -867,7 +909,8 @@ void AccessManagerImpl::SetInRangeState(SessionContext sessionContext, bool sess MutexGuard lock{ sMutex }; // Find the session sessionCtx = FindRangingSession(sessionContext); - VerifyOrReturn(sessionCtx, LOG_ERR("Session context not found for handle: %p", sessionContext)); + VerifyOrReturn(sessionCtx, + LOG_ERR("Session context not found for handle: %p", sessionContext.GetRaw())); // Early return if has not changed if (sessionCtx->mInRange == sessionInRange) { @@ -905,7 +948,9 @@ void AccessManagerImpl::SetInRangeState(SessionContext sessionContext, bool sess TerminateAliroSession(sessionContext); #endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_ACCESS_GRANTED } else { +#ifndef CONFIG_DOOR_LOCK_LOCK_SIM_AUTO_RELOCK LockAction(false); +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_AUTO_RELOCK } } #endif // CONFIG_DOOR_LOCK_BLE_UWB @@ -913,8 +958,8 @@ void AccessManagerImpl::SetInRangeState(SessionContext sessionContext, bool sess void AccessManagerImpl::TerminateAliroSession(SessionContext sessionContext) { - LOG_DBG("Terminating Aliro session for context: %p", sessionContext); - VerifyAndCall(mStackCallbacks.mTerminateSessionClb, sessionContext); + LOG_DBG("Terminating Aliro session for context: %p", sessionContext.GetRaw()); + AliroStack::Instance().DestroySession(sessionContext); } #endif // CONFIG_DOOR_LOCK_BLE_UWB @@ -977,7 +1022,7 @@ AliroError AccessManagerImpl::_GetCredentialIssuerPublicKey(const CryptoTypes::K std::copy(key.value().begin(), key.value().end(), input.begin() + kKeyIdentifierStringLength); - AliroError error = CryptoInstance().Sha256(input.data(), input.size(), sha256Output); + AliroError error = Interface::Crypto::Sha256(input.data(), input.size(), sha256Output); VerifyOrReturnStatus(error == ALIRO_NO_ERROR, ALIRO_ERROR_INTERNAL, LOG_ERR("SHA256 hash computation failed")); @@ -999,17 +1044,20 @@ AliroError AccessManagerImpl::ProcessAccessDocument(const CryptoTypes::PublicKey { ReturnErrorOnFailure(ProcessValidityIteration(ad.mCredentialIssuerPublicKey, ad.mValidityIteration)); - VerifyOrReturnStatus(ValidateAccessData(ad.mDataElement), ALIRO_INVALID_ACCESS_DOCUMENT, + auto error = ValidateAccessData(ad.mDataElement); + VerifyOrReturnStatus(error == ALIRO_NO_ERROR, error, LOG_WRN("Access Document is not valid, ignoring it for access decision")); LOG_DBG("Verify Access Credential based on Access Document"); - VerifyOrReturnStatus(ad.mPublicKey == userPublicKey, ALIRO_INVALID_PUBLIC_KEY, LOG_WRN("Public key mismatch")); + VerifyOrReturnStatus(ad.mPublicKey == userPublicKey, ALIRO_PUBLIC_KEY_NOT_TRUSTED, + LOG_WRN("Public key mismatch")); +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 MutexGuard lock{ sMutex }; // Check if there is a free index in the Access Document container to store the Access Document. size_t keyIndex = 0; - auto error = GetFirstFreeIndex(mAdKeys, keyIndex); + error = GetFirstFreeIndex(mAdKeys, keyIndex); if (error == ALIRO_NO_MEMORY) { LOG_DBG("No free index in the Access Document container, removing oldest credential"); @@ -1029,10 +1077,13 @@ AliroError AccessManagerImpl::ProcessAccessDocument(const CryptoTypes::PublicKey } } } +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 return ALIRO_NO_ERROR; } +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + AliroError AccessManagerImpl::RemoveOldestCredential(size_t &keyIndex) { std::optional oldestKeyIndex; @@ -1069,6 +1120,8 @@ AliroError AccessManagerImpl::RemoveOldestCredential(size_t &keyIndex) return ALIRO_NO_MEMORY; } +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + AliroError AccessManagerImpl::ProcessValidityIteration(const CryptoTypes::PublicKey &credentialIssuerPublicKey, const std::optional &validityIteration) { @@ -1085,8 +1138,7 @@ AliroError AccessManagerImpl::ProcessValidityIteration(const CryptoTypes::Public ValidityIterations iterations{}; ReturnErrorOnFailure(GetCurrentValidityIterations(keyIndex, iterations)); - VerifyOrReturnStatus(VerifyValidityIteration(iterations, validityIteration.value()), - ALIRO_INVALID_ACCESS_DOCUMENT, + VerifyOrReturnStatus(VerifyValidityIteration(iterations, validityIteration.value()), ALIRO_PUBLIC_KEY_EXPIRED, LOG_WRN("Validity Iteration is not valid, ignoring Access Document for access decision")); ReturnErrorOnFailure(UpdateValidityIteration(keyIndex, iterations, validityIteration.value())); @@ -1111,11 +1163,15 @@ AliroError AccessManagerImpl::UpdateValidityIteration(size_t credentialIssuerKey ReturnErrorOnFailure(StoreValidityIterations(credentialIssuerKeyIndex, iterations)); } +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 ReturnErrorOnFailure(RemoveOldCredentials(credentialIssuerKeyIndex, iterations.mAccessIteration)); +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 return ALIRO_NO_ERROR; } +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + AliroError AccessManagerImpl::RemoveOldCredentials(size_t credentialIssuerKeyIndex, ValidityIteration validityIteration) { for (size_t i = 0; i < mAdKeys.mKeys.size(); i++) { @@ -1170,6 +1226,8 @@ AliroError AccessManagerImpl::RemoveAccessCredentials(size_t credentialIssuerKey return ALIRO_NO_ERROR; } +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE } // namespace Aliro diff --git a/app/src/aliro/access_manager_impl_default/access_manager_impl.h b/app/src/aliro/access_manager/access_manager_impl.h similarity index 91% rename from app/src/aliro/access_manager_impl_default/access_manager_impl.h rename to app/src/aliro/access_manager/access_manager_impl.h index b97e3d99..583afdad 100644 --- a/app/src/aliro/access_manager_impl_default/access_manager_impl.h +++ b/app/src/aliro/access_manager/access_manager_impl.h @@ -7,12 +7,12 @@ #pragma once -#include "access_manager/access_manager.h" +#include "../kpersistent_manager/kpersistent_manager.h" +#include "access_manager.h" #include "aliro/types.h" -#include "kpersistent_manager/kpersistent_manager.h" #ifdef CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT -#include "aliro/timer.h" +#include "timer.h" #endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT #ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE @@ -64,13 +64,6 @@ class AccessManagerImpl final : public AccessManager { */ void _SetApplicationCallbacks(const ApplicationCallbacks &callbacks); - /** - * @brief Set the stack callbacks. - * - * @param callbacks Stack callbacks. - */ - void _SetStackCallbacks(const StackCallbacks &callbacks); - /** * @brief Checks if the Access Document for a parameters should be requested. * @@ -88,27 +81,26 @@ class AccessManagerImpl final : public AccessManager { * @brief Verifies the Access Credential based on provided inputs. * * @param userPublicKey The User Device public key to verify. - * @param isNfcSession Indicates if the session is a NFC session. * @param sessionContext A pointer to the session context. + * @param kpersistentKeyId The volatile Kpersistent key generated during the Expedited-standard phase. * @param accessDocument The access document provided by the User Device. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ AliroError _VerifyAccessCredential( - const CryptoTypes::PublicKey &userPublicKey, bool isNfcSession, SessionContext sessionContext, + const CryptoTypes::PublicKey &userPublicKey, SessionContext sessionContext, + CryptoTypes::KeyId kpersistentKeyId, const std::optional &accessDocument = std::nullopt); /** * @brief Verifies the Kpersistent key based on provided inputs. * * @param kpersistentKeyId The Kpersistent key ID to verify. - * @param isNfcSession Indicates if the session is a NFC session. * @param sessionContext A pointer to the session context. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ - AliroError _VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, bool isNfcSession, - SessionContext sessionContext); + AliroError _VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, SessionContext sessionContext); #ifdef CONFIG_DOOR_LOCK_BLE_UWB /** @@ -216,9 +208,8 @@ class AccessManagerImpl final : public AccessManager { * @brief Handles the session termination. * * @param sessionContext The session context. - * @param isNfcSession Indicates if the session is a NFC session. */ - void _HandleSessionTermination(SessionContext sessionContext, bool isNfcSession); + void _HandleSessionTermination(SessionContext sessionContext); AccessManagerImpl() = default; ~AccessManagerImpl() = default; @@ -310,22 +301,32 @@ class AccessManagerImpl final : public AccessManager { const std::optional &validityIteration); AliroError UpdateValidityIteration(size_t credentialIssuerKeyIndex, const ValidityIterations ¤tIterations, ValidityIteration validityIteration); +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 AliroError RemoveOldCredentials(size_t credentialIssuerKeyIndex, ValidityIteration validityIteration); AliroError RemoveAccessCredentials(size_t credentialIssuerKeyIndex); +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE #ifdef CONFIG_DOOR_LOCK_BLE_UWB struct RangingSessionContext { - sys_snode_t mNode{}; #ifdef CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT - RangingSessionContext(uint32_t timeoutMs, Timer::Callback callback, Timer::Context userData) - : mRangingSessionTimer(timeoutMs, callback, userData) + RangingSessionContext(uint32_t timeoutMs, SessionContext sessionContext) + : mSessionContext(sessionContext), + mRangingSessionTimer(timeoutMs, RangingSessionTimerCallback, this) { } - Timer mRangingSessionTimer; + + static void RangingSessionTimerCallback(Timer::Context ctx); +#else + RangingSessionContext(SessionContext sessionContext) : mSessionContext(sessionContext) {} #endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT - SessionContext mSessionContext{}; + + sys_snode_t mNode{}; + SessionContext mSessionContext; bool mInRange{ false }; +#ifdef CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT + Timer mRangingSessionTimer; +#endif // CONFIG_DOOR_LOCK_ACCESS_MANAGER_TERMINATE_SESSION_ON_TIMEOUT }; bool AnalyzeUwbRangingData(const UwbRangingData &uwbData, SessionContext sessionContext); @@ -334,6 +335,7 @@ class AccessManagerImpl final : public AccessManager { ProtocolVersion protocolVersion, const SessionContext sessionCtx); void RemoveRangingSession(SessionContext sessionCtx); RangingSessionContext *FindRangingSession(const SessionContext sessionCtx); + std::optional FindSessionContext(RangingSessionContext *rangingSessionCtx); bool IsUserDeviceInRange() const; void TerminateAliroSession(SessionContext sessionContext); void SetInRangeState(SessionContext sessionContext, bool sessionInRange, bool updateReaderState = true); @@ -352,7 +354,6 @@ class AccessManagerImpl final : public AccessManager { #endif // CONFIG_DOOR_LOCK_BLE_UWB ApplicationCallbacks mCallbacks{}; - StackCallbacks mStackCallbacks{}; KpersistentManager *mKpersistentManager{ nullptr }; diff --git a/app/src/aliro/access_manager_impl_custom/access_manager_impl.cpp b/app/src/aliro/access_manager_impl_custom/access_manager_impl.cpp deleted file mode 100644 index 9e8f4fe4..00000000 --- a/app/src/aliro/access_manager_impl_custom/access_manager_impl.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#include "access_manager_impl.h" - -#include - -LOG_MODULE_REGISTER(access_manager_impl_custom, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); - -namespace Aliro { - -void AccessManagerImpl::_SetApplicationCallbacks(const ApplicationCallbacks &) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -void AccessManagerImpl::_SetStackCallbacks(const StackCallbacks &) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -std::optional -AccessManagerImpl::_ShouldRequestAccessDocument(const CryptoTypes::PublicKey &, const std::optional &) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return std::nullopt; -} - -AliroError AccessManagerImpl::_VerifyAccessCredential(const CryptoTypes::PublicKey &, bool, SessionContext, - const std::optional &) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -AliroError AccessManagerImpl::_VerifyKPersistentKey(CryptoTypes::KeyId, bool, SessionContext) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -#ifdef CONFIG_DOOR_LOCK_BLE_UWB -AliroError AccessManagerImpl::_StartRangingSession(uint32_t, const CryptoTypes::Ursk &, ProtocolVersion, SessionContext) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} -#endif // CONFIG_DOOR_LOCK_BLE_UWB - -AliroError AccessManagerImpl::_AddPublicKey(const CryptoTypes::PublicKey &, PublicKeyType, size_t) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -AliroError AccessManagerImpl::_GetCredentialIssuerPublicKey(const CryptoTypes::KeyIdentifier &, - CryptoTypes::PublicKey &) const -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -bool AccessManagerImpl::_IsPublicKeyStored(const CryptoTypes::PublicKey &, size_t *) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return false; -} - -AliroError AccessManagerImpl::_GetPublicKey(size_t, CryptoTypes::PublicKey &) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -AliroError AccessManagerImpl::_RemovePublicKey(PublicKeyType, size_t) -{ - LOG_INF("Custom %s function", __FUNCTION__); - return ALIRO_ERROR_NOT_IMPLEMENTED; -} - -void AccessManagerImpl::_ClearStoredKeys() -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -void AccessManagerImpl::_SetMaxAllowedDistance(uint32_t) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -uint32_t AccessManagerImpl::_GetMaxAllowedDistance() -{ - LOG_INF("Custom %s function", __FUNCTION__); - return 0; -} - -void AccessManagerImpl::_HandleRangingSessionData(SessionContext, const UwbRangingData &) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -void AccessManagerImpl::_HandleRangingSessionStateChanged(SessionContext, RangingSessionState) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -void AccessManagerImpl::_HandleSessionTermination(SessionContext, bool) -{ - LOG_INF("Custom %s function", __FUNCTION__); -} - -} // namespace Aliro diff --git a/app/src/aliro/access_manager_impl_custom/access_manager_impl.h b/app/src/aliro/access_manager_impl_custom/access_manager_impl.h deleted file mode 100644 index 22104c2c..00000000 --- a/app/src/aliro/access_manager_impl_custom/access_manager_impl.h +++ /dev/null @@ -1,58 +0,0 @@ - -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include "access_manager/access_manager.h" - -namespace Aliro { - -/** - * @brief A template for custom access manager implementation. - * - * This class is a template for custom Access Manager implementation. - * It can be used as a base to implement customized Access Manager. - */ -class AccessManagerImpl : public AccessManager { -private: - friend class AccessManager; - - void _SetApplicationCallbacks(const ApplicationCallbacks &callbacks); - void _SetStackCallbacks(const StackCallbacks &callbacks); - std::optional - _ShouldRequestAccessDocument(const CryptoTypes::PublicKey &publicKey, - const std::optional &credentialSignedTimestamp); - AliroError _VerifyAccessCredential( - const CryptoTypes::PublicKey &userPublicKey, bool isNfcSession, SessionContext sessionContext, - const std::optional &accessDocument = std::nullopt); - AliroError _VerifyKPersistentKey(CryptoTypes::KeyId kpersistentKeyId, bool isNfcSession, - SessionContext sessionContext); -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - AliroError _StartRangingSession(uint32_t rangingSessionId, const CryptoTypes::Ursk &ursk, - ProtocolVersion protocolVersion, SessionContext sessionContext); -#endif // CONFIG_DOOR_LOCK_BLE_UWB - AliroError _AddPublicKey(const CryptoTypes::PublicKey &publicKey, PublicKeyType publicKeyType, size_t keyIndex); - bool _IsPublicKeyStored(const CryptoTypes::PublicKey &publicKey, size_t *keyIndex); - AliroError _GetPublicKey(size_t keyIndex, CryptoTypes::PublicKey &publicKey); - AliroError _RemovePublicKey(PublicKeyType publicKeyType, size_t keyIndex); - AliroError _GetCredentialIssuerPublicKey(const CryptoTypes::KeyIdentifier &keyIdentifier, - CryptoTypes::PublicKey &publicKey) const; - void _ClearStoredKeys(); - void _SetMaxAllowedDistance(uint32_t maxDistance); - uint32_t _GetMaxAllowedDistance(); - void _HandleRangingSessionData(SessionContext sessionContext, const UwbRangingData &uwbData); - void _HandleRangingSessionStateChanged(SessionContext sessionContext, RangingSessionState state); - void _HandleSessionTermination(SessionContext sessionContext, bool isNfcSession); -}; - -inline AccessManager &AccessManagerInstance() -{ - static AccessManagerImpl sInstance{}; - return sInstance; -} - -} // namespace Aliro diff --git a/app/src/aliro/aliro_state_control.cpp b/app/src/aliro/aliro_state_control.cpp new file mode 100644 index 00000000..f1be7269 --- /dev/null +++ b/app/src/aliro/aliro_state_control.cpp @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro_state_control.h" + +#include "aliro/crypto_key_ids.h" +#include "aliro/init.h" +#include "crypto/utils.h" +#include "reader_cache.h" + +#include +#include + +#include + +#include +LOG_MODULE_DECLARE(aliro); + +namespace { + +bool IsReaderIdentifierProvisioned() +{ + return Aliro::ReaderCache::Instance().IsIdentifierSet(); +} + +bool IsReaderPrivateKeyProvisioned() +{ + return DoorLock::Crypto::IsKeyAvailable(Aliro::kPrivateKeyId) == ALIRO_NO_ERROR; +} + +bool IsProvisioningComplete() +{ + return IsReaderPrivateKeyProvisioned() && IsReaderIdentifierProvisioned(); +} + +} // anonymous namespace + +namespace DoorLock::AliroStateControl { + +AliroError UpdateAliroState() +{ + if (IsProvisioningComplete()) { + if (!IsAliroRunning()) { + const int startRc = AliroStart(); + VerifyOrReturnStatus(startRc == EXIT_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_ERR("Failed to start Aliro: %d", startRc)); +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + } else { + ReturnErrorOnFailure(StartAliroAdvertising()); +#endif // CONFIG_DOOR_LOCK_BLE_UWB + } + return ALIRO_NO_ERROR; + } + + if (IsAliroRunning()) { + const int rc = AliroStop(); + VerifyOrReturnStatus(rc == EXIT_SUCCESS, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to stop Aliro: %d", rc)); + } + return ALIRO_NO_ERROR; +} + +} // namespace DoorLock::AliroStateControl diff --git a/app/src/aliro/aliro_state_control.h b/app/src/aliro/aliro_state_control.h new file mode 100644 index 00000000..b26820d1 --- /dev/null +++ b/app/src/aliro/aliro_state_control.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +#pragma once + +#include + +namespace DoorLock::AliroStateControl { + +/** + * @brief Updates Aliro runtime state: start when provisioned, otherwise stop. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError UpdateAliroState(); + +} // namespace DoorLock::AliroStateControl diff --git a/app/src/aliro/aliro_work/CMakeLists.txt b/app/src/aliro/aliro_work/CMakeLists.txt new file mode 100644 index 00000000..7bc2fa3c --- /dev/null +++ b/app/src/aliro/aliro_work/CMakeLists.txt @@ -0,0 +1,8 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +target_sources(app PRIVATE aliro_work.cpp) + diff --git a/app/src/aliro/aliro_work/Kconfig b/app/src/aliro/aliro_work/Kconfig new file mode 100644 index 00000000..56284f64 --- /dev/null +++ b/app/src/aliro/aliro_work/Kconfig @@ -0,0 +1,19 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +menu "Aliro workqueue" + +config DOOR_LOCK_ALIRO_WORKQUEUE_STACK_SIZE + int "Aliro workqueue stack size" + default 5120 + help + Stack size for the dedicated Aliro workqueue. + +config DOOR_LOCK_ALIRO_WORKQUEUE_PRIORITY + int "Aliro workqueue priority" + default 10 + +endmenu # Aliro workqueue diff --git a/app/src/aliro/aliro_work/aliro_work.cpp b/app/src/aliro/aliro_work/aliro_work.cpp new file mode 100644 index 00000000..68b8ae4a --- /dev/null +++ b/app/src/aliro/aliro_work/aliro_work.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro_work.h" + +#include + +namespace { + +k_work_q sAliroWorkQ; +K_THREAD_STACK_DEFINE(sAliroWorkQStack, CONFIG_DOOR_LOCK_ALIRO_WORKQUEUE_STACK_SIZE); +bool sAliroWorkQStarted = false; + +} // namespace + +extern "C" { + +int AliroWorkSubmit(struct k_work *work) +{ + return k_work_submit_to_queue(&sAliroWorkQ, work); +} + +int AliroWorkReschedule(struct k_work_delayable *work, k_timeout_t delay) +{ + return k_work_reschedule_for_queue(&sAliroWorkQ, work, delay); +} + +int AliroWorkInit(void) +{ + if (sAliroWorkQStarted) { + return 0; + } + + constexpr k_work_queue_config config{ + .name = "aliroworkq", + .no_yield = false, + .essential = true, + .work_timeout_ms = 0, + }; + + k_work_queue_start(&sAliroWorkQ, sAliroWorkQStack, K_THREAD_STACK_SIZEOF(sAliroWorkQStack), + CONFIG_DOOR_LOCK_ALIRO_WORKQUEUE_PRIORITY, &config); + sAliroWorkQStarted = true; + return 0; +} + +} // extern "C" diff --git a/app/src/aliro/aliro_work/aliro_work.h b/app/src/aliro/aliro_work/aliro_work.h new file mode 100644 index 00000000..bea2a05e --- /dev/null +++ b/app/src/aliro/aliro_work/aliro_work.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Initialize and start the dedicated Aliro workqueue. + * + * @return 0 on success. + */ +int AliroWorkInit(void); + +/** + * @brief Submit a work item to the dedicated Aliro workqueue. + * + * @param work Work item to submit. + * + * @return Return 0 on success, negative errno on failure. + */ +int AliroWorkSubmit(struct k_work *work); + +/** + * @brief Reschedule a delayable work item on the dedicated Aliro workqueue. + * + * @param work Delayable work item to schedule. + * @param delay Delay before the work should run. + * + * @return Return 0 on success, negative errno on failure. + */ +int AliroWorkReschedule(struct k_work_delayable *work, k_timeout_t delay); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/aliro/cli/CMakeLists.txt b/app/src/aliro/cli/CMakeLists.txt index 25de9ea9..e318457c 100644 --- a/app/src/aliro/cli/CMakeLists.txt +++ b/app/src/aliro/cli/CMakeLists.txt @@ -4,7 +4,18 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -file(GLOB src CONFIGURE_DEPENDS ./*.cpp) +zephyr_library_sources( + info.cpp + shell.c + shell_private.cpp +) + +zephyr_library_sources_ifdef(CONFIG_BT btaddr.cpp) +zephyr_library_sources_ifdef(CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE kpersistent.cpp) +zephyr_library_sources_ifndef(CONFIG_CHIP + factory_reset.cpp + install.cpp + provisioning.cpp +) -zephyr_library_sources(${src}) zephyr_include_directories(.) diff --git a/app/src/aliro/cli/btaddr.cpp b/app/src/aliro/cli/btaddr.cpp new file mode 100644 index 00000000..156a99b2 --- /dev/null +++ b/app/src/aliro/cli/btaddr.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +#include + +namespace { + +int ShellCmdHandleBtAddr(const struct shell *shell, size_t, char **) +{ + bt_addr_le_t address[1]; + size_t count{ ARRAY_SIZE(address) }; + bt_id_get(address, &count); + + char addr_str[BT_ADDR_LE_STR_LEN]; + bt_addr_le_to_str(address, addr_str, sizeof(addr_str)); + + shell_print(shell, "%s", addr_str); + return 0; +} + +} // namespace + +SHELL_SUBCMD_ADD((dl), btaddr, NULL, "Show BLE address", ShellCmdHandleBtAddr, 0, 0); diff --git a/app/src/aliro/cli/factory_reset.cpp b/app/src/aliro/cli/factory_reset.cpp new file mode 100644 index 00000000..e8a0a815 --- /dev/null +++ b/app/src/aliro/cli/factory_reset.cpp @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "shell_private.h" + +#include +#include + +#ifdef CONFIG_SETTINGS_NVS +#include +#else // CONFIG_SETTINGS_ZMS +#include +#endif // CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS + +#include +#include + +namespace { + +K_WORK_DELAYABLE_DEFINE(sRebootWork, [](k_work *) { sys_reboot(SYS_REBOOT_WARM); }); + +int ShellCmdHandleFactoryReset(const struct shell *shell, size_t, char **) +{ + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); + + void *storage{ nullptr }; + int status = settings_storage_get(&storage); + VerifyOrReturnStatus(status == 0, -EIO, shell_warn(shell, "Cannot get storage\n")); + +#ifdef CONFIG_SETTINGS_NVS + status = nvs_clear(static_cast(storage)); +#else // CONFIG_SETTINGS_ZMS + status = zms_clear(static_cast(storage)); +#endif // CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS + + VerifyOrReturnStatus(status == 0, -EIO, shell_warn(shell, "Cannot clear storage\n")); + k_work_reschedule(&sRebootWork, K_MSEC(250)); + return 0; +} + +} // namespace + +SHELL_SUBCMD_ADD((dl), factory_reset, NULL, "Factory reset", ShellCmdHandleFactoryReset, 0, 0); diff --git a/app/src/aliro/cli/info.cpp b/app/src/aliro/cli/info.cpp new file mode 100644 index 00000000..43f90714 --- /dev/null +++ b/app/src/aliro/cli/info.cpp @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +#include + +namespace { + +const char *GetReaderChipName(void) +{ +#if defined(CONFIG_ST25R200_DRV) + return "ST25R100"; +#elif defined(CONFIG_ST25R500_DRV) + return "ST25R300"; +#else + return "Unknown NFC reader driver"; +#endif +} + +int ShellCmdHandleInfo(const struct shell *shell, size_t, char **) +{ + shell_print(shell, "Aliro version: %s", Aliro::AliroStack::GetLibraryVersion()); + shell_print(shell, "NFC reader: %s", GetReaderChipName()); + return 0; +} + +} // namespace + +SHELL_SUBCMD_ADD((dl), info, NULL, "Show Aliro lib version and NFC reader chip name", ShellCmdHandleInfo, 0, 0); diff --git a/app/src/aliro/cli/install.cpp b/app/src/aliro/cli/install.cpp new file mode 100644 index 00000000..fbe9be2a --- /dev/null +++ b/app/src/aliro/cli/install.cpp @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "shell_private.h" + +#include +#include + +#include "../aliro_state_control.h" +#include "aliro/utils/hex_string.h" +#include "reader_cache.h" +#include "storage.h" +#include "storage_keys.h" + +#include +#include + +namespace { + +constexpr char kCmdReaderIdentifier[] = "identifier"; +constexpr char kCmdReaderGroupIdentifier[] = "group_id"; +constexpr char kCmdReaderGroupSubIdentifier[] = "group_sub_id"; + +int ShellCmdHandleIdentifiers(const struct shell *shell, size_t argc, char **argv) +{ + VerifyOrReturnStatus(IN_RANGE(argc, 1, 2), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); + + Aliro::Identifier identifier{}; + int status = KeyValueStorage::Instance().Get(Aliro::StorageKeys::kStorageKeyNameIdentifier, identifier.data(), + identifier.size()); + + size_t offset{ 0 }; + size_t length{ 0 }; + + if (CmdMatch(argv[0], kCmdReaderIdentifier)) { + offset = 0; + length = identifier.size(); + } else if (CmdMatch(argv[0], kCmdReaderGroupIdentifier)) { + offset = 0; + length = Aliro::kReaderGroupIdentifierLength; + } else if (CmdMatch(argv[0], kCmdReaderGroupSubIdentifier)) { + offset = Aliro::kReaderGroupIdentifierLength; + length = Aliro::kReaderGroupSubIdentifierLength; + } else { + return -EINVAL; + } + + if (argc == 1) { + VerifyOrReturnStatus(status == 0, status, + shell_warn(shell, "Cannot get %s, error: %d\n", + Aliro::StorageKeys::kStorageKeyNameIdentifier, status)); + + DoorLock::Utils::HexStringBuffer identifierHex{}; + VerifyOrReturnStatus(DoorLock::Utils::ArrayToHexString(identifierHex, identifier), -EINVAL, + shell_warn(shell, "Cannot format %s\n", argv[0])); + shell_print(shell, "%.*s", static_cast(length * 2), identifierHex.data() + offset * 2); + return 0; + } + + const size_t argLength = strlen(argv[1]); + VerifyOrReturnStatus(argLength == length * 2, -EINVAL, shell_warn(shell, "Invalid %s length!\n", argv[0])); + + hex2bin(argv[1], argLength, identifier.data() + offset, length); + + VerifyOrReturnStatus(!KeyValueStorage::Instance().Save(Aliro::StorageKeys::kStorageKeyNameIdentifier, + identifier.data(), identifier.size()), + -EINVAL, + shell_warn(shell, "Cannot update %s\n", Aliro::StorageKeys::kStorageKeyNameIdentifier)); + + AliroError aliroError = Aliro::ReaderCache::Instance().SetIdentifier(identifier); + VerifyOrReturnStatus(aliroError == ALIRO_NO_ERROR, -EINVAL, + shell_warn(shell, "Failed to set reader identifier\n")); + + AliroError err = DoorLock::AliroStateControl::UpdateAliroState(); + VerifyOrReturnValue(err == ALIRO_NO_ERROR, -EIO, + shell_warn(shell, "Failed to update Aliro state: %d\n", err.ToInt())); + + return 0; +} + +SHELL_STATIC_SUBCMD_SET_CREATE( + install_cmd, + SHELL_CMD(identifier, NULL, + "Set or get reader identifier\n" + " Usage: dl install identifier <32-byte reader_identifier in hex without 0x>", + ShellCmdHandleIdentifiers), + SHELL_CMD(group_id, NULL, + "Set or get group ID\n" + " Usage: dl install group_id <16-byte reader_group_identifier in hex without 0x>", + ShellCmdHandleIdentifiers), + SHELL_CMD(group_sub_id, NULL, + "Set or get group sub ID\n" + " Usage: dl install group_sub_id <16-byte reader_group_sub_identifier in hex without 0x>", + ShellCmdHandleIdentifiers), + SHELL_SUBCMD_SET_END); + +} // namespace + +SHELL_SUBCMD_ADD((dl), install, &install_cmd, "Installation commands", NULL, 0, 0); diff --git a/app/src/aliro/cli/kpersistent.cpp b/app/src/aliro/cli/kpersistent.cpp new file mode 100644 index 00000000..6e1a0dfd --- /dev/null +++ b/app/src/aliro/cli/kpersistent.cpp @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "shell_private.h" + +#include +#include +#include + +#include "aliro/utils/hex_string.h" + +#include + +#include + +namespace { + +int ParseIndex(const struct shell *shell, const char *indexStr, size_t &index) +{ + char *endPtr{ nullptr }; + errno = 0; + unsigned long val = strtoul(indexStr, &endPtr, 10); + VerifyOrReturnStatus(errno == 0 && endPtr != indexStr, -EINVAL, shell_warn(shell, "Invalid index!\n")); + + index = val; + return 0; +} + +int PrintKpersistentKeys(const struct shell *shell, Aliro::CryptoTypes::KeyId *kpersistentKeyIds, + size_t kpersistentCount) +{ + shell_print(shell, "Number of Kpersistent keys: %u", kpersistentCount); + shell_print(shell, "Index ID Public Key"); + shell_print(shell, "--------------------------------"); + for (size_t i = 0; i < kpersistentCount; i++) { + const Aliro::CryptoTypes::KeyId kpersistentKeyId = kpersistentKeyIds[i]; + const size_t kpersistentKeyIndex = kpersistentKeyId - Aliro::kKpersistentRangeBegin; + + Aliro::CryptoTypes::PublicKey publicKey{}; + auto *kpersistentManager = GetShellKpersistentManager(); + VerifyOrReturnValue(kpersistentManager->GetAccessCredentialPublicKey(kpersistentKeyId, publicKey) == + ALIRO_NO_ERROR, + -EINVAL, shell_warn(shell, "Cannot get Access Credential public key\n")); + DoorLock::Utils::HexStringBuffer hexString{}; + VerifyOrReturnValue(DoorLock::Utils::ArrayToHexString(hexString, publicKey), -EINVAL, + shell_warn(shell, "Cannot convert Access Credential public key to hex\n")); + shell_print(shell, "%-2u 0x%08x %s", kpersistentKeyIndex, kpersistentKeyId, hexString.data()); + } + + return 0; +} + +int ShellCmdHandleKpersistentList(const struct shell *shell, size_t argc, char **argv) +{ + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); + auto *kpersistentManager = GetShellKpersistentManager(); + VerifyOrReturnValue(kpersistentManager, -EIO, shell_warn(shell, "Kpersistent manager not initialized\n")); + + VerifyOrReturnValue(argc == 1, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); + + size_t kpersistentCount{}; + VerifyOrReturnValue(kpersistentManager->GetKpersistentCount(kpersistentCount) == ALIRO_NO_ERROR, -EINVAL, + shell_warn(shell, "Cannot get Kpersistent count\n")); + VerifyOrReturnValue(kpersistentCount > 0, 0, shell_print(shell, "No Kpersistent keys found\n")); + + auto kpersistentKeyIds = Aliro::make_unique_array_nothrow(kpersistentCount); + VerifyOrReturnValue(kpersistentKeyIds, -ENOMEM, + shell_warn(shell, "Cannot allocate memory for Kpersistent key IDs\n")); + + VerifyOrReturnValue(kpersistentManager->GetKpersistentKeyIds(kpersistentKeyIds.get(), kpersistentCount) == + ALIRO_NO_ERROR, + -EINVAL, shell_warn(shell, "Cannot get Kpersistent key IDs\n")); + + return PrintKpersistentKeys(shell, kpersistentKeyIds.get(), kpersistentCount); +} + +int ShellCmdHandleKpersistentClear(const struct shell *shell, size_t argc, char **argv) +{ + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); + auto *kpersistentManager = GetShellKpersistentManager(); + VerifyOrReturnValue(kpersistentManager, -EIO, shell_warn(shell, "Kpersistent manager not initialized\n")); + + VerifyOrReturnValue(argc == 2, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); + + if (strcmp(argv[1], "all") == 0) { + shell_print(shell, "Removing all Kpersistent keys"); + kpersistentManager->RemoveAllKpersistent(); + return 0; + } + + size_t index{}; + VerifyOrReturnValue(ParseIndex(shell, argv[1], index) == 0, -EINVAL); + shell_print(shell, "Removing Kpersistent key with index: %u", index); + VerifyOrReturnValue(kpersistentManager->RemoveKpersistent(index) == ALIRO_NO_ERROR, -EINVAL, + shell_warn(shell, "Cannot remove Kpersistent key\n")); + return 0; +} + +SHELL_STATIC_SUBCMD_SET_CREATE(kpersistent_cmd, + SHELL_CMD(list, NULL, + "List Kpersistent keys\n" + " Usage: dl kpersistent list", + ShellCmdHandleKpersistentList), + SHELL_CMD(clear, NULL, + "Clear Kpersistent key\n" + " Usage: dl kpersistent clear \n" + " dl kpersistent clear all", + ShellCmdHandleKpersistentClear), + SHELL_SUBCMD_SET_END); + +} // namespace + +SHELL_SUBCMD_ADD((dl), kpersistent, &kpersistent_cmd, "Manage Kpersistent keys", NULL, 0, 0); diff --git a/app/src/aliro/cli/shell.cpp b/app/src/aliro/cli/provisioning.cpp similarity index 57% rename from app/src/aliro/cli/shell.cpp rename to app/src/aliro/cli/provisioning.cpp index 801372ae..65932235 100644 --- a/app/src/aliro/cli/shell.cpp +++ b/app/src/aliro/cli/provisioning.cpp @@ -1,31 +1,23 @@ /* - * Copyright (c) 2025 Nordic Semiconductor ASA + * Copyright (c) 2026 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#include "shell.h" +#include "shell_private.h" #include -#include #include -#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE -#include "reader_certificate_cache.h" -#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE - #include "aliro/crypto_key_ids.h" +#include "aliro/utils/hex_string.h" +#include "crypto/utils.h" +#include "reader_cache.h" #include -#ifdef CONFIG_DOOR_LOCK_DFU_BLE_SMP_STANDALONE -#include "dfu_smp_shell.h" -#endif // CONFIG_DOOR_LOCK_DFU_BLE_SMP_STANDALONE - -#ifndef CONFIG_CHIP - -#include "access_manager/access_manager.h" -#include "crypto/crypto.h" +#include "../aliro_state_control.h" +#include "access_manager.h" #include "storage.h" #include "storage_keys.h" @@ -33,53 +25,24 @@ #include "validity_iterations.h" #endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE -#ifdef CONFIG_SETTINGS_NVS -#include -#else // CONFIG_SETTINGS_ZMS -#include -#endif // CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS - -#include -#include #include -#endif // CONFIG_CHIP - +#include #include namespace { using namespace Aliro; -constexpr size_t kPublicKeyStringLength{ 2 * CryptoTypes::kEccP256PublicKeyLength }; - -// Flag to check if shell is already initialized. -bool isInitialized{ false }; - -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE -KpersistentManager *sKpersistentManager{ nullptr }; -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - -template constexpr size_t CStrLen(const char (&)[N]) -{ - return N; -} - -template bool CmdMatch(const char *cmd, const char (&cmdStr)[N]) -{ - return strncmp(cmd, cmdStr, CStrLen(cmdStr)) == 0; -} - -#ifndef CONFIG_CHIP +#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE +using CertificateData = std::array; +#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE using PublicKeyType = AccessManager::PublicKeyType; -constexpr char kCmdReaderIdentifier[] = "identifier"; -constexpr char kCmdReaderGroupIdentifier[] = "group_id"; -constexpr char kCmdReaderGroupSubIdentifier[] = "group_sub_id"; constexpr size_t kAcMaxKeys{ CONFIG_DOOR_LOCK_ACCESS_MANAGER_ACCESS_CREDENTIAL_MAX_STORED_KEYS }; [[maybe_unused]] constexpr size_t kCiMaxKeys{ CONFIG_DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS }; - -K_WORK_DELAYABLE_DEFINE(sRebootWork, [](k_work *) { sys_reboot(SYS_REBOOT_WARM); }); +constexpr size_t kPublicKeyStringLength{ 2 * CryptoTypes::kEccP256PublicKeyLength }; +constexpr size_t kPrivateKeyStringLength{ 2 * CryptoTypes::kEccP256KeyPrivateKeyLength }; constexpr PublicKeyType GetPublicKeyTypeFromStorageKey(KeyValueStorage::KeyIdString keyName) { @@ -87,55 +50,55 @@ constexpr PublicKeyType GetPublicKeyTypeFromStorageKey(KeyValueStorage::KeyIdStr PublicKeyType::CredentialIssuer; } -int ShellCmdHandleIdentifiers(const struct shell *shell, size_t argc, char **argv) +int ShellCmdHandleReaderPrivateKeySet(const struct shell *shell, size_t argc, char **argv) { - VerifyOrReturnStatus(IN_RANGE(argc, 1, 2), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); - - Identifier identifier{}; - std::array identifierStr{}; - - int status = KeyValueStorage::Instance().Get(StorageKeys::kStorageKeyNameIdentifier, identifier.data(), - identifier.size()); - - size_t offset{ 0 }; - size_t length{ 0 }; - - if (CmdMatch(argv[0], kCmdReaderIdentifier)) { - offset = 0; - length = identifier.size(); - } else if (CmdMatch(argv[0], kCmdReaderGroupIdentifier)) { - offset = 0; - length = kReaderGroupIdentifierLength; - } else if (CmdMatch(argv[0], kCmdReaderGroupSubIdentifier)) { - offset = kReaderGroupIdentifierLength; - length = kReaderGroupSubIdentifierLength; - } else { - return -EINVAL; - } + VerifyOrReturnStatus(argc == 2, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); - if (argc == 1) { - VerifyOrReturnStatus(status == 0, status, - shell_warn(shell, "Cannot get %s, error: %d\n", - StorageKeys::kStorageKeyNameIdentifier, status)); + const char *keyStr{ argv[1] }; + size_t len = strlen(keyStr); + VerifyOrReturnStatus(len == kPrivateKeyStringLength, -EINVAL, + shell_warn(shell, "Invalid key length (must be %zu hex chars)\n", + kPrivateKeyStringLength)); - bin2hex(identifier.data() + offset, length, identifierStr.data(), identifierStr.size()); - shell_print(shell, "%s", identifierStr.data()); + CryptoTypes::PrivateKey privateKey{}; + const size_t decodedLen = hex2bin(keyStr, len, privateKey.data(), privateKey.size()); + VerifyOrReturnStatus(decodedLen == privateKey.size(), -EINVAL, shell_warn(shell, "Invalid key hex string!\n")); - return 0; - } + CryptoTypes::KeyId keyId{ kPrivateKeyId }; + const auto err = DoorLock::Crypto::ImportPrivateKey(privateKey, true, keyId); + VerifyOrReturnStatus(err == ALIRO_NO_ERROR, -EIO, shell_warn(shell, "Failed to import private key\n")); + + CryptoTypes::PublicKey publicKey{}; + const auto exportErr = DoorLock::Crypto::ExportPublicKey(keyId, publicKey); + VerifyOrReturnStatus(exportErr == ALIRO_NO_ERROR, -EIO, shell_warn(shell, "Failed to export public key\n")); - size_t argLength = strlen(argv[1]); + AliroError cacheErr = ReaderCache::Instance().SetPublicKey(publicKey); + VerifyOrReturnStatus(cacheErr == ALIRO_NO_ERROR, -EIO, shell_warn(shell, "Failed to cache public key\n")); - VerifyOrReturnStatus(argLength == length * 2, -EINVAL, shell_warn(shell, "Invalid %s length!\n", argv[0])); + AliroError ec = DoorLock::AliroStateControl::UpdateAliroState(); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, -EIO, + shell_warn(shell, "Failed to update Aliro state: %d\n", ec.ToInt())); - hex2bin(argv[1], argLength, identifier.data() + offset, length); + return 0; +} - VerifyOrReturnStatus(!KeyValueStorage::Instance().Save(StorageKeys::kStorageKeyNameIdentifier, - identifier.data(), identifier.size()), - -EINVAL, shell_warn(shell, "Cannot update %s\n", StorageKeys::kStorageKeyNameIdentifier)); +int ShellCmdHandleReaderPrivateKeyClear(const struct shell *shell, size_t argc, char **) +{ + VerifyOrReturnStatus(argc == 1, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); - AliroStack::Instance().SetReaderIdentifier(identifier); + CryptoTypes::KeyId keyId{ kPrivateKeyId }; + const auto err = DoorLock::Crypto::DestroyKey(keyId); + VerifyOrReturnStatus(err == ALIRO_NO_ERROR, -EIO, shell_warn(shell, "Failed to destroy private key\n")); + + ReaderCache::Instance().ClearPublicKey(); + + shell_print(shell, "Reader private key cleared"); + + AliroError ec = DoorLock::AliroStateControl::UpdateAliroState(); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, -EIO, + shell_warn(shell, "Failed to update Aliro state: %d\n", ec.ToInt())); return 0; } @@ -203,14 +166,16 @@ int ParseKeyId(const struct shell *shell, KeyValueStorage::KeyIdString keyIdStr, int CmdHandleAndListKey(const struct shell *shell, KeyValueStorage::KeyIdString keyIdStr, size_t numSlots) { - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); - std::array hexString{}; + DoorLock::Utils::HexStringBuffer hexString{}; CryptoTypes::PublicKey publicKey{}; for (size_t keyId = 0; keyId < numSlots; keyId++) { if (GetPublicKeyFromStorage(keyIdStr, keyId, publicKey) == 0) { - bin2hex(publicKey.data(), publicKey.size(), hexString.data(), hexString.size()); + if (!DoorLock::Utils::ArrayToHexString(hexString, publicKey)) { + snprintf(hexString.data(), hexString.size(), "(invalid)"); + } } else { snprintf(hexString.data(), hexString.size(), "(null)"); } @@ -225,7 +190,7 @@ int CmdHandleAndClearKey(const struct shell *shell, size_t argc, char **argv, Ke size_t numSlots, size_t &keyId) { VerifyOrReturnStatus(argc == 2, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); constexpr char kAll[] = "all"; if (strncmp(argv[1], kAll, CStrLen(kAll)) == 0) { @@ -249,7 +214,7 @@ int CmdHandleAndSetKey(const struct shell *shell, size_t argc, char **argv, KeyV size_t numSlots, size_t &keyId) { VerifyOrReturnStatus(argc == 3, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); int status = ParseKeyId(shell, argv[1], keyId, numSlots); VerifyOrReturnStatus(status == 0, status); @@ -294,15 +259,21 @@ int ShellCmdHandleAccessCredentialList(const struct shell *shell, size_t, char * int ShellCmdHandleAccessCredentialSet(const struct shell *shell, size_t argc, char **argv) { size_t keyId{}; - return CmdHandleAndSetKey(shell, argc, argv, StorageKeys::kStorageKeyNameAccessCredentialPublicKey, kAcMaxKeys, - keyId); + const int rc = CmdHandleAndSetKey(shell, argc, argv, StorageKeys::kStorageKeyNameAccessCredentialPublicKey, + kAcMaxKeys, keyId); + VerifyOrReturnValue(rc == 0, rc); + + return 0; } int ShellCmdHandleAccessCredentialClear(const struct shell *shell, size_t argc, char **argv) { size_t keyId{}; - return CmdHandleAndClearKey(shell, argc, argv, StorageKeys::kStorageKeyNameAccessCredentialPublicKey, - kAcMaxKeys, keyId); + const int rc = CmdHandleAndClearKey(shell, argc, argv, StorageKeys::kStorageKeyNameAccessCredentialPublicKey, + kAcMaxKeys, keyId); + VerifyOrReturnValue(rc == 0, rc); + + return 0; } #if CONFIG_DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS > 0 @@ -338,16 +309,17 @@ int ShellCmdHandleCredentialIssuerClear(const struct shell *shell, size_t argc, int ShellCmdHandleCredentialIssuerCAGet(const struct shell *shell, size_t argc, char **) { VerifyOrReturnStatus(argc == 1, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); CryptoTypes::PublicKey publicKey{}; const auto error = - CryptoInstance().ExportKey(kCredentialIssuerCAPublicKeyId, publicKey.data(), publicKey.size()); + DoorLock::Crypto::ExportKey(kCredentialIssuerCAPublicKeyId, publicKey.data(), publicKey.size()); VerifyOrReturnStatus(error == ALIRO_NO_ERROR, -EINVAL, shell_warn(shell, "Cannot export Credential Issuer CA public key\n")); - std::array hexString{}; - bin2hex(publicKey.data(), publicKey.size(), hexString.data(), hexString.size()); + DoorLock::Utils::HexStringBuffer hexString{}; + VerifyOrReturnStatus(DoorLock::Utils::ArrayToHexString(hexString, publicKey), -EINVAL, + shell_warn(shell, "Cannot convert Credential Issuer CA public key to hex\n")); shell_print(shell, "%s", hexString.data()); return 0; @@ -356,7 +328,7 @@ int ShellCmdHandleCredentialIssuerCAGet(const struct shell *shell, size_t argc, int ShellCmdHandleCredentialIssuerCASet(const struct shell *shell, size_t argc, char **argv) { VerifyOrReturnStatus(argc == 2, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); const char *pubkeyStr{ argv[1] }; size_t len = strlen(pubkeyStr); @@ -370,174 +342,42 @@ int ShellCmdHandleCredentialIssuerCASet(const struct shell *shell, size_t argc, shell_warn(shell, "Invalid key prefix!\n")); CryptoTypes::KeyId keyId{ kCredentialIssuerCAPublicKeyId }; - const auto error = CryptoInstance().ImportPublicKey(publicKey, keyId, true); + const auto error = DoorLock::Crypto::ImportPublicKey(publicKey, true, keyId); VerifyOrReturnStatus(error == ALIRO_NO_ERROR, -EINVAL, shell_warn(shell, "Cannot import Credential Issuer CA public key\n")); - AliroStack::Instance().SetCredentialIssuerCAPublicKeyId(keyId); - return 0; } int ShellCmdHandleCredentialIssuerCAClear(const struct shell *shell, size_t argc, char **argv) { VerifyOrReturnStatus(argc == 1, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); CryptoTypes::KeyId keyId{ kCredentialIssuerCAPublicKeyId }; - const auto error = CryptoInstance().DestroyKey(keyId); + const auto error = DoorLock::Crypto::DestroyKey(keyId); VerifyOrReturnStatus(error == ALIRO_NO_ERROR, -EINVAL, shell_warn(shell, "Cannot remove Credential Issuer CA public key\n")); - AliroStack::Instance().SetCredentialIssuerCAPublicKeyId(keyId); - return 0; } #endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA -int FactoryReset(const struct shell *shell, size_t, char **) -{ - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); - - void *storage{ nullptr }; - int status = settings_storage_get(&storage); - VerifyOrReturnStatus(status == 0, -EIO, shell_warn(shell, "Cannot get storage\n")); - -#ifdef CONFIG_SETTINGS_NVS - status = nvs_clear(static_cast(storage)); -#else // CONFIG_SETTINGS_ZMS - status = zms_clear(static_cast(storage)); -#endif // CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS - - VerifyOrReturnStatus(status == 0, -EIO, shell_warn(shell, "Cannot clear storage\n")); - k_work_reschedule(&sRebootWork, K_MSEC(250)); - return 0; -} - -#endif // CONFIG_CHIP - -const char *GetReaderChipName(void) -{ -#if defined(CONFIG_ST25R200_DRV) - return "ST25R100"; -#elif defined(CONFIG_ST25R3911_DRV) - return "ST25R3911"; -#elif defined(CONFIG_ST25R3916_DRV) - return "ST25R3916"; -#elif defined(CONFIG_ST25R3916B_DRV) - return "ST25R3916B"; -#else - return "Unknown NFC reader driver"; -#endif -} - -int ShellCmdHandleInfo(const struct shell *shell, size_t, char **) -{ - shell_print(shell, "Aliro version: %s", AliroStack::GetLibraryVersion()); - shell_print(shell, "NFC reader: %s", GetReaderChipName()); - return 0; -} - -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - -int ParseIndex(const struct shell *shell, const char *indexStr, size_t &index) -{ - char *endPtr{ nullptr }; - errno = 0; - unsigned long val = strtoul(indexStr, &endPtr, 10); - VerifyOrReturnStatus(errno == 0 && endPtr != indexStr, -EINVAL, shell_warn(shell, "Invalid index!\n")); - - index = val; - - return 0; -} - -int PrintKpersistentKeys(const struct shell *shell, CryptoTypes::KeyId *kpersistentKeyIds, size_t kpersistentCount) -{ - shell_print(shell, "Number of Kpersistent keys: %u", kpersistentCount); - shell_print(shell, "Index ID Public Key"); - shell_print(shell, "--------------------------------"); - for (size_t i = 0; i < kpersistentCount; i++) { - const CryptoTypes::KeyId kpersistentKeyId = kpersistentKeyIds[i]; - const size_t kpersistentKeyIndex = kpersistentKeyId - kKpersistentRangeBegin; - - CryptoTypes::PublicKey publicKey{}; - VerifyOrReturnValue(sKpersistentManager->GetAccessCredentialPublicKey(kpersistentKeyId, publicKey) == - ALIRO_NO_ERROR, - -EINVAL, shell_warn(shell, "Cannot get Access Credential public key\n")); - std::array hexString{}; - bin2hex(publicKey.data(), publicKey.size(), hexString.data(), hexString.size()); - shell_print(shell, "%-2u 0x%08x %s", kpersistentKeyIndex, kpersistentKeyId, hexString.data()); - } - - return 0; -} - -int ShellCmdHandleKpersistentList(const struct shell *shell, size_t argc, char **argv) -{ - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); - VerifyOrReturnValue(sKpersistentManager, -EIO, shell_warn(shell, "Kpersistent manager not initialized\n")); - VerifyOrReturnValue(argc == 1, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - - constexpr char kList[] = "list"; - VerifyOrReturnValue(CmdMatch(argv[0], kList), -EINVAL, shell_warn(shell, "Invalid command!\n")); - - size_t kpersistentCount{}; - VerifyOrReturnValue(sKpersistentManager->GetKpersistentCount(kpersistentCount) == ALIRO_NO_ERROR, -EINVAL, - shell_warn(shell, "Cannot get Kpersistent count\n")); - VerifyOrReturnValue(kpersistentCount > 0, 0, shell_print(shell, "No Kpersistent keys found\n")); - - auto kpersistentKeyIds = Aliro::make_unique_array_nothrow(kpersistentCount); - VerifyOrReturnValue(kpersistentKeyIds, -ENOMEM, - shell_warn(shell, "Cannot allocate memory for Kpersistent key IDs\n")); - - VerifyOrReturnValue(sKpersistentManager->GetKpersistentKeyIds(kpersistentKeyIds.get(), kpersistentCount) == - ALIRO_NO_ERROR, - -EINVAL, shell_warn(shell, "Cannot get Kpersistent key IDs\n")); - - return PrintKpersistentKeys(shell, kpersistentKeyIds.get(), kpersistentCount); -} - -int ShellCmdHandleKpersistentClear(const struct shell *shell, size_t argc, char **argv) -{ - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); - VerifyOrReturnValue(sKpersistentManager, -EIO, shell_warn(shell, "Kpersistent manager not initialized\n")); - VerifyOrReturnValue(argc == 2, -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - - constexpr char kRemove[] = "clear"; - VerifyOrReturnValue(CmdMatch(argv[0], kRemove), -EINVAL, shell_warn(shell, "Invalid command!\n")); - - constexpr char kAll[] = "all"; - if (strncmp(argv[1], kAll, CStrLen(kAll)) == 0) { - shell_print(shell, "Removing all Kpersistent keys"); - sKpersistentManager->RemoveAllKpersistent(); - return 0; - } - - size_t index{}; - VerifyOrReturnValue(ParseIndex(shell, argv[1], index) == 0, -EINVAL); - shell_print(shell, "Removing Kpersistent key with index: %u", index); - VerifyOrReturnValue(sKpersistentManager->RemoveKpersistent(index) == ALIRO_NO_ERROR, -EINVAL, - shell_warn(shell, "Cannot remove Kpersistent key\n")); - return 0; -} - -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - #ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE int ShellCmdHandleReaderCertList(const struct shell *shell, size_t, char **) { - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); ConstData cert{}; - const auto error = ReaderCertificateCache::Instance().GetCertificate(cert); + const auto error = ReaderCache::Instance().GetCertificate(cert); if (error == ALIRO_NO_ERROR) { - std::array hexString{ 0 }; - size_t len = bin2hex(cert.mData, cert.mLength, hexString.data(), hexString.size()); - VerifyOrReturnStatus(len == cert.mLength * 2, -EINVAL, - shell_warn(shell, "Invalid certificate hex string!\n")); + DoorLock::Utils::HexStringBuffer hexString{}; + CertificateData certificateData{}; + std::copy_n(cert.mData, cert.mLength, certificateData.begin()); + VerifyOrReturnStatus(DoorLock::Utils::ArrayToHexString(hexString, certificateData, cert.mLength), + -EINVAL, shell_warn(shell, "Invalid certificate hex string!\n")); shell_print(shell, "Reader certificate (%zu bytes): %s", cert.mLength, hexString.data()); } else { shell_print(shell, "Reader certificate: (not set)"); @@ -549,30 +389,26 @@ int ShellCmdHandleReaderCertList(const struct shell *shell, size_t, char **) int ShellCmdHandleReaderCertSet(const struct shell *shell, size_t argc, char **argv) { VerifyOrReturnStatus(IN_RANGE(argc, 2, 2), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); const char *certStr = argv[1]; size_t certStrLen = strlen(certStr); - VerifyOrReturnStatus(certStrLen > 0 && certStrLen % 2 == 0, -EINVAL, shell_warn(shell, "Invalid certificate length (must be even)!\n")); - std::array certData{ 0 }; + CertificateData certData{}; size_t decodedLen = hex2bin(certStr, certStrLen, certData.data(), certData.size()); VerifyOrReturnStatus(decodedLen == certStrLen / 2, -EINVAL, shell_warn(shell, "Invalid certificate hex string!\n")); - // save to cache - AliroError error = ReaderCertificateCache::Instance().SetCertificate({ certData.data(), decodedLen }); + AliroError error = ReaderCache::Instance().SetCertificate({ certData.data(), decodedLen }); VerifyOrReturnStatus(error == ALIRO_NO_ERROR, -EINVAL, shell_warn(shell, "Failed to set certificate: %d\n", error.ToInt())); - // save certificate data to persistent storage VerifyOrReturnStatus(!KeyValueStorage::Instance().Save(StorageKeys::kStorageKeyNameReaderCertificate, certData.data(), decodedLen), -EINVAL, shell_warn(shell, "Cannot save certificate to persistent storage!\n")); - // save certificate length to persistent storage uint16_t certLength = static_cast(decodedLen); VerifyOrReturnStatus(!KeyValueStorage::Instance().Save(StorageKeys::kStorageKeyNameReaderCertificateLength, reinterpret_cast(&certLength), @@ -586,16 +422,13 @@ int ShellCmdHandleReaderCertSet(const struct shell *shell, size_t argc, char **a int ShellCmdHandleReaderCertClear(const struct shell *shell, size_t argc, char **) { VerifyOrReturnStatus(IN_RANGE(argc, 1, 1), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Not initialized yet\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Not initialized yet\n")); - // clear cache - ReaderCertificateCache::Instance().ClearCertificate(); + ReaderCache::Instance().ClearCertificate(); - // clear certificate data from persistent storage VerifyOrReturnStatus(!KeyValueStorage::Instance().Clear(StorageKeys::kStorageKeyNameReaderCertificate), -EIO, shell_warn(shell, "Cannot clear certificate from persistent storage!\n")); - // clear certificate length from persistent storage VerifyOrReturnStatus(!KeyValueStorage::Instance().Clear(StorageKeys::kStorageKeyNameReaderCertificateLength), -EIO, shell_warn(shell, "Cannot clear certificate length from persistent storage!\n")); @@ -605,14 +438,13 @@ int ShellCmdHandleReaderCertClear(const struct shell *shell, size_t argc, char * int ShellCmdHandleIssuerPublicKeyList(const struct shell *shell, size_t, char **) { - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Shell not initialized\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Shell not initialized\n")); CryptoTypes::PublicKey publicKey{}; - const auto error = ReaderCertificateCache::Instance().GetIssuerPublicKey(publicKey); + const auto error = ReaderCache::Instance().GetIssuerPublicKey(publicKey); if (error == ALIRO_NO_ERROR) { - std::array hexString{ 0 }; - size_t len = bin2hex(publicKey.data(), publicKey.size(), hexString.data(), hexString.size()); - VerifyOrReturnStatus(len == publicKey.size() * 2, -EINVAL, + DoorLock::Utils::HexStringBuffer hexString{}; + VerifyOrReturnStatus(DoorLock::Utils::ArrayToHexString(hexString, publicKey), -EINVAL, shell_warn(shell, "Invalid public key hex string!\n")); shell_print(shell, "Issuer public key (%zu bytes): %s", publicKey.size(), hexString.data()); } else { @@ -625,11 +457,10 @@ int ShellCmdHandleIssuerPublicKeyList(const struct shell *shell, size_t, char ** int ShellCmdHandleIssuerPublicKeySet(const struct shell *shell, size_t argc, char **argv) { VerifyOrReturnStatus(IN_RANGE(argc, 2, 2), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Shell not initialized\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Shell not initialized\n")); const char *keyStr = argv[1]; size_t keyStrLen = strlen(keyStr); - VerifyOrReturnStatus(keyStrLen == CryptoTypes::kEccP256PublicKeyLength * 2, -EINVAL, shell_warn(shell, "Invalid key length (must be %zu hex characters)!\n", CryptoTypes::kEccP256PublicKeyLength * 2)); @@ -642,15 +473,13 @@ int ShellCmdHandleIssuerPublicKeySet(const struct shell *shell, size_t argc, cha VerifyOrReturnStatus(publicKey[0] == CryptoTypes::kEccP256PublicKeyPrefix, -EINVAL, shell_warn(shell, "Invalid key prefix (must be 0x04)!\n")); - // save to persistent storage VerifyOrReturnStatus( !KeyValueStorage::Instance().Save(StorageKeys::kStorageKeyNameReaderSystemIssuerCAPublicKey, publicKey.data(), publicKey.size()), -EINVAL, shell_warn(shell, "Cannot save issuer public key to persistent storage!\n")); - // save to cache - VerifyOrReturnStatus(ReaderCertificateCache::Instance().SetIssuerPublicKey(publicKey) == ALIRO_NO_ERROR, - -EINVAL, shell_warn(shell, "Failed to set issuer public key!\n")); + VerifyOrReturnStatus(ReaderCache::Instance().SetIssuerPublicKey(publicKey) == ALIRO_NO_ERROR, -EINVAL, + shell_warn(shell, "Failed to set issuer public key!\n")); shell_print(shell, "Issuer public key set successfully (%zu bytes)", publicKey.size()); @@ -660,15 +489,13 @@ int ShellCmdHandleIssuerPublicKeySet(const struct shell *shell, size_t argc, cha int ShellCmdHandleIssuerPublicKeyClear(const struct shell *shell, size_t argc, char **) { VerifyOrReturnStatus(IN_RANGE(argc, 1, 1), -EINVAL, shell_warn(shell, "Invalid number of arguments!\n")); - VerifyOrReturnValue(isInitialized, -EIO, shell_warn(shell, "Shell not initialized\n")); + VerifyOrReturnValue(IsShellInitialized(), -EIO, shell_warn(shell, "Shell not initialized\n")); - // clear from persistent storage VerifyOrReturnStatus( !KeyValueStorage::Instance().Clear(StorageKeys::kStorageKeyNameReaderSystemIssuerCAPublicKey), -EIO, shell_warn(shell, "Cannot clear issuer public key from persistent storage!\n")); - // clear from cache - ReaderCertificateCache::Instance().ClearIssuerPublicKey(); + ReaderCache::Instance().ClearIssuerPublicKey(); shell_print(shell, "Issuer public key cleared successfully"); return 0; @@ -676,35 +503,6 @@ int ShellCmdHandleIssuerPublicKeyClear(const struct shell *shell, size_t argc, c #endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE -} // namespace - -void InitShellCommands([[maybe_unused]] Aliro::KpersistentManager *kpersistentManager) -{ -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - sKpersistentManager = kpersistentManager; -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - - isInitialized = true; -} - -#ifndef CONFIG_CHIP - -SHELL_STATIC_SUBCMD_SET_CREATE( - install_cmd, - SHELL_CMD(identifier, NULL, - "Set or get reader identifier\n" - " Usage: dl install identifier <32-byte reader_identifier in hex without 0x>", - ShellCmdHandleIdentifiers), - SHELL_CMD(group_id, NULL, - "Set or get group ID\n" - " Usage: dl install group_id <16-byte reader_group_identifier in hex without 0x>", - ShellCmdHandleIdentifiers), - SHELL_CMD(group_sub_id, NULL, - "Set or get group sub ID\n" - " Usage: dl install group_sub_id <16-byte reader_group_sub_identifier in hex without 0x>", - ShellCmdHandleIdentifiers), - SHELL_SUBCMD_SET_END); - SHELL_STATIC_SUBCMD_SET_CREATE(AC_key_cmd, SHELL_CMD(list, NULL, "List Access Credential public keys\n" @@ -794,7 +592,19 @@ SHELL_STATIC_SUBCMD_SET_CREATE(issuer_pk_cmd, #endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE +SHELL_STATIC_SUBCMD_SET_CREATE(reader_prv_cmd, + SHELL_CMD(set, NULL, + "Set Reader private signing key (32 bytes)\n" + " Usage: dl provisioning reader_prv set <64-hex-chars>", + ShellCmdHandleReaderPrivateKeySet), + SHELL_CMD(clear, NULL, + "Clear Reader private signing key\n" + " Usage: dl provisioning reader_prv clear", + ShellCmdHandleReaderPrivateKeyClear), + SHELL_SUBCMD_SET_END); + SHELL_STATIC_SUBCMD_SET_CREATE(provisioning_cmd, + SHELL_CMD(reader_prv, &reader_prv_cmd, "Manage Reader private signing key", NULL), SHELL_CMD(AC_key, &AC_key_cmd, "Manage Access Credential public keys", NULL), #if CONFIG_DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS > 0 @@ -812,48 +622,6 @@ SHELL_STATIC_SUBCMD_SET_CREATE(provisioning_cmd, SHELL_SUBCMD_SET_END); -#endif // CONFIG_CHIP - -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - -SHELL_STATIC_SUBCMD_SET_CREATE(kpersistent_cmd, - SHELL_CMD(list, NULL, - "List Kpersistent keys\n" - " Usage: dl kpersistent list", - ShellCmdHandleKpersistentList), - SHELL_CMD(clear, NULL, - "Clear Kpersistent key\n" - " Usage: dl kpersistent clear \n" - " dl kpersistent clear all", - ShellCmdHandleKpersistentClear), - SHELL_SUBCMD_SET_END); - -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - -SHELL_STATIC_SUBCMD_SET_CREATE(door_lock_cmd, - - SHELL_CMD(info, NULL, "Show Aliro lib version and NFC reader chip name", - ShellCmdHandleInfo), - -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - - SHELL_CMD(kpersistent, &kpersistent_cmd, "Manage Kpersistent keys", NULL), - -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE - -#ifndef CONFIG_CHIP - -#ifdef CONFIG_DOOR_LOCK_DFU_BLE_SMP_STANDALONE - SHELL_CMD(dfu_smp, NULL, "Enable/disable DFU BLE SMP: dl dfu_smp ", - ShellCmdHandleDfuSmp), -#endif // CONFIG_DOOR_LOCK_DFU_BLE_SMP_STANDALONE - - SHELL_CMD(install, &install_cmd, "Installation commands", NULL), - SHELL_CMD(provisioning, &provisioning_cmd, "Provisioning commands", NULL), - SHELL_CMD(factory_reset, NULL, "Factory reset", FactoryReset), - -#endif // CONFIG_CHIP - - SHELL_SUBCMD_SET_END); +} // namespace -SHELL_CMD_REGISTER(dl, &door_lock_cmd, "Door lock commands", NULL); +SHELL_SUBCMD_ADD((dl), provisioning, &provisioning_cmd, "Provisioning commands", NULL, 0, 0); diff --git a/app/src/aliro/cli/shell.c b/app/src/aliro/cli/shell.c new file mode 100644 index 00000000..39b6bfc0 --- /dev/null +++ b/app/src/aliro/cli/shell.c @@ -0,0 +1,10 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include + +SHELL_SUBCMD_SET_CREATE(door_lock_cmd, (dl)); +SHELL_CMD_REGISTER(dl, &door_lock_cmd, "Door lock commands", NULL); diff --git a/app/src/aliro/cli/shell.h b/app/src/aliro/cli/shell.h index bd40580b..df89f7d6 100644 --- a/app/src/aliro/cli/shell.h +++ b/app/src/aliro/cli/shell.h @@ -6,7 +6,7 @@ #pragma once -#include "kpersistent_manager/kpersistent_manager.h" +#include "aliro/kpersistent_manager/kpersistent_manager.h" /** * @brief Initializes shell commands for managing a door lock system. diff --git a/app/src/aliro/cli/shell_private.cpp b/app/src/aliro/cli/shell_private.cpp new file mode 100644 index 00000000..0ca98c1b --- /dev/null +++ b/app/src/aliro/cli/shell_private.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "shell_private.h" + +#include "aliro/kpersistent_manager/kpersistent_manager.h" + +namespace { + +bool sShellInitialized{ false }; + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +Aliro::KpersistentManager *sKpersistentManager{ nullptr }; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +} // namespace + +bool IsShellInitialized() +{ + return sShellInitialized; +} + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +Aliro::KpersistentManager *GetShellKpersistentManager() +{ + return sKpersistentManager; +} + +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +void InitShellCommands([[maybe_unused]] Aliro::KpersistentManager *kpersistentManager) +{ +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + sKpersistentManager = kpersistentManager; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + + sShellInitialized = true; +} diff --git a/app/src/aliro/cli/shell_private.h b/app/src/aliro/cli/shell_private.h new file mode 100644 index 00000000..e7112bf1 --- /dev/null +++ b/app/src/aliro/cli/shell_private.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include +#include + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +#include "aliro/kpersistent_manager/kpersistent_manager.h" +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +bool IsShellInitialized(); + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +Aliro::KpersistentManager *GetShellKpersistentManager(); + +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +template constexpr size_t CStrLen(const char (&)[N]) +{ + return N; +} + +template bool CmdMatch(const char *cmd, const char (&cmdStr)[N]) +{ + return strncmp(cmd, cmdStr, CStrLen(cmdStr)) == 0; +} diff --git a/app/src/aliro/features.h b/app/src/aliro/features.h new file mode 100644 index 00000000..362c3381 --- /dev/null +++ b/app/src/aliro/features.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include + +namespace Aliro { + +/** + * @brief Aliro application feature bitmap bit positions. + * + */ +static constexpr uint8_t kFeatureCredentialIssuerCaPublicKeySupported = static_cast(BIT(0)); +static constexpr uint8_t kFeatureReaderCertificateSupported = static_cast(BIT(1)); +static constexpr uint8_t kFeatureMatterSupported = static_cast(BIT(2)); + +} // namespace Aliro diff --git a/app/src/aliro/init.cpp b/app/src/aliro/init.cpp index 5631dc48..2ab1d397 100644 --- a/app/src/aliro/init.cpp +++ b/app/src/aliro/init.cpp @@ -3,22 +3,21 @@ * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ + #include "aliro/aliro.h" +#include "aliro/features.h" #include "aliro/types.h" #include "aliro/utils.h" -#include "crypto/crypto.h" -#include "reader_certificate_cache.h" - -#ifdef CONFIG_ACCESS_DECISION_INDICATOR -#include "access_decision_indicator.h" -#endif // CONFIG_ACCESS_DECISION_INDICATOR +#include "crypto/utils.h" +#include "nfc/nfc_transport_rfal.h" +#include "reader_cache.h" -#ifdef CONFIG_DOOR_LOCK_USE_TEST_KEYS -#include "test_key.h" -#endif // CONFIG_DOOR_LOCK_USE_TEST_KEYS +#ifdef CONFIG_BT +#include "ble_manager.h" +#endif // CONFIG_BT #ifdef CONFIG_DOOR_LOCK_BLE_UWB -#include "ble_manager_impl.h" +#include "aliro/ble_types.h" #include "uwb_impl.h" #endif // CONFIG_DOOR_LOCK_BLE_UWB @@ -29,18 +28,25 @@ #include "kpersistent_manager/kpersistent_manager_impl.h" #endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE +#if defined(CONFIG_DOOR_LOCK_STEP_UP_PHASE) && CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 #include "access_document.h" -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE +#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE AND CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + +#ifdef CONFIG_DOOR_LOCK_EXTERNAL_NVS +#include +#include +#endif // CONFIG_DOOR_LOCK_EXTERNAL_NVS #ifdef CONFIG_DOOR_LOCK_CLI #include "shell.h" #endif // CONFIG_DOOR_LOCK_CLI #ifndef CONFIG_CHIP -#include "lock_sim/lock_sim.h" +#include "aliro_state_control.h" +#include "lock_sim/lock_sim_instance.h" #endif // CONFIG_CHIP +#include "aliro_work/aliro_work.h" #include "storage.h" #include "storage_keys.h" @@ -49,24 +55,23 @@ #include #include +#include LOG_MODULE_REGISTER(aliro, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); using namespace Aliro; -namespace { +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE -#ifndef CONFIG_CHIP +KpersistentManagerImpl sKpersistentManagerImpl; -LockSim sLockSim; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE -#ifdef CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER +namespace { -constexpr Identifier kTestIdentifier{ 0x37, 0x65, 0x20, 0x39, 0x31, 0x20, 0x61, 0x65, 0x20, 0x31, 0x64, - 0x20, 0x33, 0x64, 0x20, 0x65, 0x63, 0x20, 0x38, 0x36, 0x20, 0x31, - 0x62, 0x20, 0x33, 0x39, 0x20, 0x31, 0x66, 0x20, 0x33, 0x34 }; +bool sAliroRunning{ false }; -#endif // CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER +#ifndef CONFIG_CHIP AliroError LoadCredentials(KeyValueStorage::KeyIdString pubKeyName, size_t KeyNum, size_t &keyCount) { @@ -105,23 +110,6 @@ AliroError LoadAccessCredentials() return ALIRO_NO_ERROR; } -void LoadCredentialIssuerCA(CryptoTypes::KeyId &credentialIssuerCAPublicKeyId) -{ - credentialIssuerCAPublicKeyId = 0; - -#ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA - - CryptoTypes::PublicKey publicKey{}; - - const auto error = - CryptoInstance().ExportKey(kCredentialIssuerCAPublicKeyId, publicKey.data(), publicKey.size()); - VerifyOrReturn(error == ALIRO_NO_ERROR, LOG_DBG("Credential Issuer CA Public Key is not provisioned")); - - credentialIssuerCAPublicKeyId = kCredentialIssuerCAPublicKeyId; - -#endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA -} - AliroError LoadIssuerCredentials() { #if CONFIG_DOOR_LOCK_ACCESS_MANAGER_CREDENTIAL_ISSUER_MAX_STORED_KEYS > 0 @@ -169,7 +157,7 @@ AliroError LoadReaderCertificate() if (ec == 0) { // Cache the certificate - AliroError err = ReaderCertificateCache::Instance().SetCertificate({ certData.data(), certLength }); + AliroError err = ReaderCache::Instance().SetCertificate({ certData.data(), certLength }); VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot set Reader certificate.")); LOG_INF("Loaded Reader certificate: %u bytes", certLength); @@ -193,7 +181,7 @@ AliroError LoadIssuerPublicKey() LOG_ERR("Invalid Issuer public key format (expected prefix 0x04)")); // Cache the public key - AliroError err = ReaderCertificateCache::Instance().SetIssuerPublicKey(publicKey); + AliroError err = ReaderCache::Instance().SetIssuerPublicKey(publicKey); VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot set Issuer public key.")); LOG_INF("Loaded Issuer public key: %zu bytes", publicKey.size()); @@ -204,82 +192,41 @@ AliroError LoadIssuerPublicKey() #endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE -AliroError LoadReaderKeys(CryptoTypes::KeyId &privateKeyId, [[maybe_unused]] CryptoTypes::KeyId &groupResolvingKeyId) +AliroError LoadReaderKeys() { - CryptoTypes::PrivateKey privateKey{}; + CryptoTypes::KeyId privateKeyId{ kPrivateKeyId }; CryptoTypes::PublicKey publicKey{}; - privateKeyId = kPrivateKeyId; - AliroError ec = CryptoInstance().ExportPublicKey(privateKeyId, publicKey); - if (ec != ALIRO_NO_ERROR) { -#ifdef CONFIG_DOOR_LOCK_USE_TEST_KEYS - - LOG_WRN("\n### WARNING: Tests keys are used (NOT allowed for production!) ###\n"); - privateKey = mPrivateKey; - -#else /* CONFIG_DOOR_LOCK_USE_TEST_KEYS */ - - LOG_DBG("\n### Production keys are used ###\n"); - return ALIRO_ERROR_NOT_IMPLEMENTED; - -#endif /* CONFIG_DOOR_LOCK_USE_TEST_KEYS */ - - AliroError err = CryptoInstance().ImportPrivateKey(privateKey, privateKeyId, true); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot import reader private key")); - } - -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - - groupResolvingKeyId = kGroupResolvingKeyId; - - CryptoTypes::GroupResolvingKey groupResolvingKey{}; - ec = CryptoInstance().ExportKey(kGroupResolvingKeyId, groupResolvingKey.data(), groupResolvingKey.size()); - if (ec != ALIRO_NO_ERROR) { - LOG_DBG("Group Resolving Key is not provisioned, all-zero key will be used"); - AliroError err = CryptoInstance().ProvisionSymmetricKey( - groupResolvingKey.data(), groupResolvingKey.size(), groupResolvingKeyId, true); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot provision group resolving key")); + auto err = DoorLock::Crypto::ExportPublicKey(privateKeyId, publicKey); + if (err != ALIRO_NO_ERROR) { + LOG_INF("Reader private key is not provisioned"); + return ALIRO_INVALID_STATE; } -#endif // CONFIG_DOOR_LOCK_BLE_UWB + ReturnErrorOnFailure(ReaderCache::Instance().SetPublicKey(publicKey)); return ALIRO_NO_ERROR; } -AliroError LoadReaderIdentifier(Identifier &identifier) +AliroError LoadReaderIdentifier() { + Identifier identifier{}; + int ec = KeyValueStorage::Instance().Get(StorageKeys::kStorageKeyNameIdentifier, identifier.data(), identifier.size()); - [[maybe_unused]] bool identifierAvailable = ec == 0; + bool identifierAvailable = ec == 0; if (ec == -ENODATA) { -#ifdef CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - identifier = kTestIdentifier; - ec = KeyValueStorage::Instance().Save(StorageKeys::kStorageKeyNameIdentifier, identifier.data(), - identifier.size()); - VerifyOrReturnStatus(ec == 0, ALIRO_ERROR_INTERNAL, - LOG_ERR("Cannot save reader identifier, error: %d", ec)); - identifierAvailable = true; -#else // CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - LOG_INF("No reader identifier available"); -#endif // CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER + LOG_INF("Reader identifier is not provisioned"); + return ALIRO_INVALID_STATE; } else if (ec) { LOG_ERR("Cannot get reader identifier, error code: %d", ec); return ALIRO_ERROR_INTERNAL; } -#ifdef CONFIG_DOOR_LOCK_PRINT_READER_GROUP_IDENTIFIER if (identifierAvailable) { - // First 16 bytes of the Reader Identifier constitute the Reader Group Identifier - char hexString[kReaderGroupIdentifierLength * 2 + 1]; - size_t resLen = bin2hex(identifier.data(), kReaderGroupIdentifierLength, hexString, sizeof(hexString)); - VerifyOrReturnStatus(resLen == kReaderGroupIdentifierLength * 2, ALIRO_ERROR_INTERNAL, - LOG_ERR("Cannot convert buffer to hex string")); - - LOG_INF("\nProvision the Test Harness with the following Reader Group Identifier:"); - LOG_INF("%s\n", hexString); + ReturnErrorOnFailure(ReaderCache::Instance().SetIdentifier(identifier)); } -#endif return ALIRO_NO_ERROR; } @@ -289,9 +236,6 @@ AliroError StorageInit() AliroError err = LoadAccessCredentials(); VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot load Access Credentials")); - CryptoTypes::KeyId credentialIssuerCAPublicKeyId{ 0 }; - LoadCredentialIssuerCA(credentialIssuerCAPublicKeyId); - err = LoadIssuerCredentials(); VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot load Issuer Credentials")); @@ -303,65 +247,145 @@ AliroError StorageInit() VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot load Issuer public key")); #endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE - CryptoTypes::KeyId privateKeyId{ 0 }; - CryptoTypes::KeyId groupResolvingKeyId{ 0 }; - err = LoadReaderKeys(privateKeyId, groupResolvingKeyId); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot load reader keys")); - - Identifier identifier{}; - err = LoadReaderIdentifier(identifier); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot load reader identifier")); + err = LoadReaderKeys(); + if (err != ALIRO_NO_ERROR && err != ALIRO_INVALID_STATE) { + LOG_ERR("Cannot load reader keys"); + return err; + } - err = AliroStack::Instance().Provision(privateKeyId, groupResolvingKeyId, identifier, - credentialIssuerCAPublicKeyId); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Cannot provision Aliro stack")); + err = LoadReaderIdentifier(); + if (err != ALIRO_NO_ERROR && err != ALIRO_INVALID_STATE) { + LOG_ERR("Cannot load reader identifier"); + return err; + } return ALIRO_NO_ERROR; } #endif // CONFIG_CHIP -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +#ifdef CONFIG_DOOR_LOCK_BLE_UWB -KpersistentManagerImpl sKpersistentManagerImpl; +void PrintUwbInfo() +{ + using namespace Aliro::Uwb; -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + VerifyOrReturn(UltraWideBandImpl::Instance().IsInitialized(), LOG_INF("[UWB] Not initialized yet")); -} // namespace + const char *fwVersion = UltraWideBandImpl::Instance().GetQm35FirmwareVersion(); + const auto *caps = UltraWideBandImpl::Instance().GetCccCapabilities(); -int AliroInit() + LOG_INF("[UWB] QM35 FW: %s", fwVersion ? fwVersion : "N/A"); + + if (caps) { + LOG_INF("[UWB] CCC: slots=0x%02x ch=0x%02x hop=0x%02x sync=0x%08x ran_min=%u", caps->mSlotBitmask, + caps->mChannelBitmask, caps->mHoppingConfigBitmask, caps->mSyncCodeIndexBitmask, + caps->mMinimumRanMultiplier); + } else { + LOG_INF("[UWB] CCC: N/A"); + } +} + +#endif // CONFIG_DOOR_LOCK_BLE_UWB + +constexpr uint8_t GetApplicationFeatures() { - AliroError ec{}; - LOG_INF("Starting nRF Door Lock Reference Application for the nRF Connect SDK"); + uint8_t features = 0; -#ifdef CONFIG_ACCESS_DECISION_INDICATOR - VerifyOrReturnValue(Access::Indicator::InitAccessDecisionIndicator() == ALIRO_NO_ERROR, EXIT_FAILURE, - LOG_ERR("Failed to initialize access decision indicator")); -#endif // CONFIG_ACCESS_DECISION_INDICATOR +#ifdef CONFIG_NCS_ALIRO_CREDENTIAL_ISSUER_CA_PUBLIC_KEY + features |= kFeatureCredentialIssuerCaPublicKeySupported; +#endif // CONFIG_NCS_ALIRO_CREDENTIAL_ISSUER_CA_PUBLIC_KEY - const AliroConfig config{ -#ifdef CONFIG_DISABLE_ALIRO_NFC_TP - .mEnableNfc = false, -#endif // CONFIG_DISABLE_ALIRO_NFC_TP +#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE + features |= kFeatureReaderCertificateSupported; +#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE -#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +#ifdef CONFIG_CHIP + features |= kFeatureMatterSupported; +#endif // CONFIG_CHIP - .mKpersistentManager = &sKpersistentManagerImpl, + return features; +} -#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +void PrintAliroFeatures(uint8_t stackFeatures, uint8_t applicationFeatures) +{ + const auto logStackFeature = [](const char *name, bool enabled) { + LOG_INF("[Aliro] %s: %u", name, enabled ? 1U : 0U); + }; + + const auto logAppFeature = [](const char *name, bool enabled) { + LOG_INF("[Doorlock] %s: %u", name, enabled ? 1U : 0U); + }; + + LOG_INF("[Aliro] Stack features mask: 0x%02x", static_cast(stackFeatures)); + logStackFeature("ExpFast", (stackFeatures & kFeatureExpeditedFastPhaseSupported) != 0); + logStackFeature("StepUp", (stackFeatures & kFeatureStepUpPhaseSupported) != 0); + logStackFeature("UWB", (stackFeatures & kFeatureBleUwbSupported) != 0); + + LOG_INF("[Doorlock] Application features mask: 0x%02x", static_cast(applicationFeatures)); + logAppFeature("CredCA", (applicationFeatures & kFeatureCredentialIssuerCaPublicKeySupported) != 0); + logAppFeature("ReaderCert", (applicationFeatures & kFeatureReaderCertificateSupported) != 0); + logAppFeature("Matter", (applicationFeatures & kFeatureMatterSupported) != 0); +} #ifdef CONFIG_DOOR_LOCK_BLE_UWB +AliroError StartAliroAdvertisingImpl(BleManager &bleManager) +{ + Identifier readerIdentifier{}; + AliroError ec = ReaderCache::Instance().GetIdentifier(readerIdentifier); + VerifyOrReturnStatus(ec == ALIRO_NO_ERROR, ec, LOG_ERR("Failed to get reader identifier")); + + BleTypes::BleAddress address{}; + ec = bleManager.GetAddress(address); + VerifyOrReturnStatus(ec == ALIRO_NO_ERROR, ec, LOG_ERR("Failed to get BLE address")); + + BleTypes::TxPowerLevel txPower{}; + ec = bleManager.GetTxPowerLevel(txPower); + VerifyOrReturnStatus(ec == ALIRO_NO_ERROR, ec, LOG_ERR("Failed to get TX power level")); - .mBle = &BleInterface::BleManagerImpl::Instance(), + BleTypes::AdvertisingServiceData advData{}; + ec = AliroStack::Instance().GenerateAdvertisingData(advData, address, txPower, readerIdentifier); + VerifyOrReturnStatus(ec == ALIRO_NO_ERROR, ec, LOG_ERR("Failed to get advertising data")); + ec = bleManager.StartAdvertising(advData); + VerifyOrReturnStatus(ec == ALIRO_NO_ERROR, ec, LOG_ERR("Failed to start BLE advertising")); + + return ALIRO_NO_ERROR; +} #endif // CONFIG_DOOR_LOCK_BLE_UWB - }; - ec = AliroStack::Instance().Init( - { .mOnError = [](AliroError error) { LOG_ERR("Aliro error: %s", error.ToString()); } }, config); +} // namespace + +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + +AliroError StartAliroAdvertising() +{ + return StartAliroAdvertisingImpl(BleManager::Instance()); +} + +#endif // CONFIG_DOOR_LOCK_BLE_UWB + +int AliroInit() +{ + AliroError ec{}; + LOG_INF("Starting nRF Door Lock Reference Application for the nRF Connect SDK"); + + std::ignore = AliroWorkInit(); + +#ifdef CONFIG_BT + // Initialize BLE manager first (app-controlled BLE stack) + ec = BleManager::Instance().Init(); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("BLE manager initialization failed")); +#endif // CONFIG_BT + ec = AliroStack::Instance().Init(); VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Aliro stack initialization failed")); + ec = Aliro::NfcTransportRfal::Instance().Init(); + if (ec != ALIRO_NO_ERROR) { + LOG_ERR("NFC transport initialization failed"); + } + KpersistentManager *kpersistentManager{ nullptr }; #ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE @@ -371,9 +395,18 @@ int AliroInit() #endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE #ifndef CONFIG_CHIP - sLockSim.Init([]([[maybe_unused]] OperationSource source, [[maybe_unused]] ReaderStateByte state) { + LockSimInstance().Init([]([[maybe_unused]] OperationSource source, [[maybe_unused]] ReaderStateByte state) { #ifdef CONFIG_DOOR_LOCK_BLE_UWB Aliro::AliroStack::Instance().SendReaderStatusChangedMessage(source, state); + auto &bleManager = BleManager::Instance(); + AliroError ec{}; + if (state == ReaderStateByte::Unsecured) { + ec = bleManager.StopAdvertising(); + VerifyOrReturn(ec == ALIRO_NO_ERROR, LOG_ERR("Failed to stop Aliro advertising")); + } else if (state == ReaderStateByte::EnteringSecured) { + ec = StartAliroAdvertisingImpl(bleManager); + VerifyOrReturn(ec == ALIRO_NO_ERROR, LOG_ERR("Failed to start Aliro advertising")); + } #endif // CONFIG_DOOR_LOCK_BLE_UWB }); @@ -382,10 +415,7 @@ int AliroInit() [](OperationSource source) { const auto isNfcSession = source == OperationSource::ThisUserDeviceInNfc; LOG_DBG("Door unlocked via %s session", isNfcSession ? "NFC" : "BLE/UWB"); -#ifdef CONFIG_ACCESS_DECISION_INDICATOR - Access::Indicator::SignalAccessGranted(); -#endif // CONFIG_ACCESS_DECISION_INDICATOR - if (!sLockSim.Unlock(source)) { + if (!LockSimInstance().Unlock(source)) { #ifdef CONFIG_DOOR_LOCK_BLE_UWB // The lock is already unlocked, so we can send the Unsecured state Aliro::AliroStack::Instance().SendReaderStatusChangedMessage( @@ -397,7 +427,7 @@ int AliroInit() [](OperationSource source) { const auto isNfcSession = source == OperationSource::ThisUserDeviceInNfc; LOG_DBG("Door locked via %s session", isNfcSession ? "NFC" : "BLE/UWB"); - sLockSim.Lock(source); + LockSimInstance().Lock(source); }, .mAccessIndicatorClb = [](bool isAccessGranted, bool isNfcSession) { @@ -408,19 +438,30 @@ int AliroInit() ec = StorageInit(); VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Storage initialization failed")); - ec = AliroStack::Instance().Start(); - VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Aliro stack start failed")); + ec = DoorLock::AliroStateControl::UpdateAliroState(); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, + LOG_ERR("Failed to update Aliro state: %d", ec.ToInt())); + #endif // CONFIG_CHIP -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE +#ifdef CONFIG_DOOR_LOCK_EXTERNAL_NVS + auto initRc = DoorLock::ExternalNvs::Init(FIXED_PARTITION_ID(external_nvs)); + VerifyOrReturnValue(initRc == 0, EXIT_FAILURE, LOG_ERR("External NVS init failed: %d", initRc)); +#endif // CONFIG_DOOR_LOCK_EXTERNAL_NVS + +#if defined(CONFIG_DOOR_LOCK_STEP_UP_PHASE) && CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 ec = LoadAccessDocuments(); VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Cannot load Access Documents")); -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE +#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE && CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 #ifdef CONFIG_DOOR_LOCK_CLI InitShellCommands(kpersistentManager); #endif // CONFIG_DOOR_LOCK_CLI + PrintAliroFeatures(AliroStack::Instance().GetFeatures(), GetApplicationFeatures()); +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + PrintUwbInfo(); +#endif // CONFIG_DOOR_LOCK_BLE_UWB LOG_INF("Aliro stack initialized"); return EXIT_SUCCESS; @@ -428,25 +469,65 @@ int AliroInit() int AliroStart() { - AliroError ec = AliroStack::Instance().Start(); + AliroError ec = NfcTransportRfal::Instance().Start(); + if (ec != ALIRO_NO_ERROR) { + LOG_ERR("NFC transport start failed"); + return EXIT_FAILURE; + } + +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + // Ensure Group Resolving Key exists before starting BLE advertising + ec = DoorLock::Crypto::IsKeyAvailable(kGroupResolvingKeyId); + if (ec != ALIRO_NO_ERROR) { + LOG_DBG("Group Resolving Key is not provisioned, all-zero key will be used"); + CryptoTypes::GroupResolvingKey groupResolvingKey{}; + CryptoTypes::KeyId groupResolvingKeyId = kGroupResolvingKeyId; + ec = DoorLock::Crypto::ImportGroupResolvingKey(groupResolvingKey, true, groupResolvingKeyId); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Cannot import group resolving key")); + } - VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Aliro stack start failed")); + auto &bleManager = BleManager::Instance(); + ec = StartAliroAdvertisingImpl(bleManager); + VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Failed to start Aliro advertising")); +#endif // CONFIG_DOOR_LOCK_BLE_UWB + sAliroRunning = true; return EXIT_SUCCESS; } int AliroStop() { - AliroError ec = AliroStack::Instance().Stop(); + int rc = EXIT_SUCCESS; - VerifyOrReturnValue(ec == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Aliro stack stop failed")); + AliroError ec = NfcTransportRfal::Instance().Stop(); + if (ec != ALIRO_NO_ERROR) { + LOG_ERR("NFC transport stop failed"); + } - return EXIT_SUCCESS; +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + ec = BleManager::Instance().StopAdvertising(); + if (ec != ALIRO_NO_ERROR) { + LOG_ERR("Failed to stop BLE advertising: %d", ec.ToInt()); + } + ec = BleManager::Instance().DisconnectAll(); + if (ec != ALIRO_NO_ERROR) { + LOG_ERR("Failed to disconnect all BLE connections"); + rc = EXIT_FAILURE; + } +#endif // CONFIG_DOOR_LOCK_BLE_UWB + + sAliroRunning = false; + return rc; +} + +bool IsAliroRunning() +{ + return sAliroRunning; } #ifdef CONFIG_CHIP -void ClearStorageAliro() +void ClearStorageAliro(bool reinitializeStorage) { int ec = KeyValueStorage::Instance().Clear(StorageKeys::kStorageKeyNameIdentifier); if (!ec) { @@ -455,7 +536,7 @@ void ClearStorageAliro() } CryptoTypes::KeyId keyId{ kPrivateKeyId }; - AliroError err = CryptoInstance().DestroyKey(keyId); + AliroError err = DoorLock::Crypto::DestroyKey(keyId); if (err != ALIRO_NO_ERROR) { LOG_ERR("Failed to destroy Reader Private Key: %d", err.ToInt()); } @@ -463,7 +544,7 @@ void ClearStorageAliro() #ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA keyId = kCredentialIssuerCAPublicKeyId; - err = CryptoInstance().DestroyKey(keyId); + err = DoorLock::Crypto::DestroyKey(keyId); if (err != ALIRO_NO_ERROR) { LOG_ERR("Failed to destroy Credential Issuer CA Public Key: %d", err.ToInt()); } @@ -473,7 +554,7 @@ void ClearStorageAliro() #ifdef CONFIG_DOOR_LOCK_BLE_UWB keyId = kGroupResolvingKeyId; - err = CryptoInstance().DestroyKey(keyId); + err = DoorLock::Crypto::DestroyKey(keyId); if (err != ALIRO_NO_ERROR) { LOG_ERR("Failed to destroy Group Resolving Key: %d", err.ToInt()); } @@ -485,6 +566,15 @@ void ClearStorageAliro() sKpersistentManagerImpl.RemoveAllKpersistent(); #endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +#ifdef CONFIG_DOOR_LOCK_EXTERNAL_NVS + DoorLock::ExternalNvs::Clear(); + if (reinitializeStorage) { + DoorLock::ExternalNvs::Init(FIXED_PARTITION_ID(external_nvs)); + } +#else // CONFIG_DOOR_LOCK_EXTERNAL_NVS + ARG_UNUSED(reinitializeStorage); +#endif // CONFIG_DOOR_LOCK_EXTERNAL_NVS } #endif // CONFIG_CHIP diff --git a/app/src/aliro/init.h b/app/src/aliro/init.h index 45d334ce..cc64c36e 100644 --- a/app/src/aliro/init.h +++ b/app/src/aliro/init.h @@ -5,6 +5,8 @@ */ #pragma once +#include + /** * @brief Initializes the Aliro stack. * @@ -26,12 +28,31 @@ int AliroStart(); */ int AliroStop(); +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + +/** + * @brief Starts or refreshes Aliro BLE advertising with current reader identity data. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError StartAliroAdvertising(); + +#endif // CONFIG_DOOR_LOCK_BLE_UWB + +/** + * @brief Check if Aliro stack is currently running. + * + * @return true if Aliro stack is running, false otherwise. + */ +bool IsAliroRunning(); + #ifdef CONFIG_CHIP /** * @brief Clears Aliro storage. * + * @param reinitializeStorage Whether to reinitialize the storage after clearing. */ -void ClearStorageAliro(); +void ClearStorageAliro(bool reinitializeStorage); #endif // CONFIG_CHIP diff --git a/app/src/aliro/interface.cpp b/app/src/aliro/interface.cpp deleted file mode 100644 index 455bc5c4..00000000 --- a/app/src/aliro/interface.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#include "aliro/interface.h" - -#include "reader_certificate_cache.h" - -namespace Aliro::Interface { - -namespace ReaderCertificate { - -bool IsProvisioned() -{ - return ReaderCertificateCache::Instance().IsCertificateSet() && - ReaderCertificateCache::Instance().IsIssuerPublicKeySet(); -} - -AliroError GetIssuerPublicKey(CryptoTypes::PublicKey &publicKey) -{ - return ReaderCertificateCache::Instance().GetIssuerPublicKey(publicKey); -} - -AliroError GetCertificate(ConstData &certificate) -{ - return ReaderCertificateCache::Instance().GetCertificate(certificate); -} - -} // namespace ReaderCertificate - -} // namespace Aliro::Interface diff --git a/app/src/aliro/interface_impl/CMakeLists.txt b/app/src/aliro/interface_impl/CMakeLists.txt new file mode 100644 index 00000000..dcb5a4be --- /dev/null +++ b/app/src/aliro/interface_impl/CMakeLists.txt @@ -0,0 +1,26 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +target_sources(app PRIVATE + access_document.cpp + access.cpp + ci_cert.cpp + crypto.cpp + os_mutex.cpp + os_timer.cpp + os.cpp + reader.cpp + session.cpp +) + +target_sources_ifdef(CONFIG_NCS_ALIRO_BLE_UWB app PRIVATE + ble.cpp + uwb.cpp +) + +if(CONFIG_NCS_ALIRO_LOG_LEVEL_VALUE GREATER 0) + target_sources(app PRIVATE log.cpp) +endif() diff --git a/app/src/aliro/interface_impl/access.cpp b/app/src/aliro/interface_impl/access.cpp new file mode 100644 index 00000000..c81bb17d --- /dev/null +++ b/app/src/aliro/interface_impl/access.cpp @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" + +#include "aliro/access_manager/access_manager.h" + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +#include "aliro/kpersistent_manager/kpersistent_manager_impl.h" +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +extern Aliro::KpersistentManagerImpl sKpersistentManagerImpl; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + +namespace Aliro::Interface::Access { + +std::optional +GetAccessDocumentRequestParameters(const CryptoTypes::PublicKey &publicKey, + const std::optional &credentialSignedTimestamp) +{ + return AccessManagerInstance().ShouldRequestAccessDocument(publicKey, credentialSignedTimestamp); +} + +AliroError ProcessAccessRequest(ConnectionHandle handle, const CryptoTypes::PublicKey &userPublicKey, + CryptoTypes::KeyId kpersistentKeyId, + const std::optional &accessDocument) +{ + return AccessManagerInstance().VerifyAccessCredential(userPublicKey, handle, kpersistentKeyId, accessDocument); +} + +AliroError ProcessAccessRequest(ConnectionHandle handle, CryptoTypes::KeyId kpersistentKeyId) +{ + return AccessManagerInstance().VerifyKPersistentKey(kpersistentKeyId, handle); +} + +AliroError GetCredentialIssuerPublicKey(const CryptoTypes::KeyIdentifier &keyIdentifier, + CryptoTypes::PublicKey &publicKey) +{ + return AccessManagerInstance().GetCredentialIssuerPublicKey(keyIdentifier, publicKey); +} + +AliroError GetKpersistentCount(size_t &count) +{ +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + return sKpersistentManagerImpl.GetKpersistentCount(count); +#else + ARG_UNUSED(count); + return ALIRO_ERROR_NOT_IMPLEMENTED; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +} + +AliroError GetKpersistentKeyIds(CryptoTypes::KeyId *keyIds, size_t &count) +{ +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + return sKpersistentManagerImpl.GetKpersistentKeyIds(keyIds, count); +#else + ARG_UNUSED(keyIds); + ARG_UNUSED(count); + return ALIRO_ERROR_NOT_IMPLEMENTED; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +} + +AliroError GetAccessCredentialPublicKey(CryptoTypes::KeyId kpersistentKeyId, CryptoTypes::PublicKey &publicKey) +{ +#ifdef CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE + return sKpersistentManagerImpl.GetAccessCredentialPublicKey(kpersistentKeyId, publicKey); +#else + ARG_UNUSED(kpersistentKeyId); + ARG_UNUSED(publicKey); + return ALIRO_ERROR_NOT_IMPLEMENTED; +#endif // CONFIG_DOOR_LOCK_EXPEDITED_FAST_PHASE +} + +} // namespace Aliro::Interface::Access diff --git a/app/src/aliro/interface_impl/access_document.cpp b/app/src/aliro/interface_impl/access_document.cpp new file mode 100644 index 00000000..baade056 --- /dev/null +++ b/app/src/aliro/interface_impl/access_document.cpp @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" + +namespace Aliro::Interface::AccessDocument { + +std::optional VerifyValidityPeriod(const Time &, const Time &) +{ + return std::nullopt; +} + +} // namespace Aliro::Interface::AccessDocument diff --git a/app/src/aliro/interface_impl/ble.cpp b/app/src/aliro/interface_impl/ble.cpp new file mode 100644 index 00000000..f5b91bc9 --- /dev/null +++ b/app/src/aliro/interface_impl/ble.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + +#include "ble_manager.h" + +/** + * @file ble_interface_impl.cpp + * @brief BLE interface helpers for protocol metadata. + */ + +namespace Aliro::Interface::Ble { + +/** + * @brief Get the maximum number of concurrent BLE sessions. + */ +size_t GetMaxSessions() +{ + return BleManager::Instance().GetMaxSessions(); +} + +/** + * @brief Get the protocol version for a connection. + */ +ProtocolVersion GetProtocolVersion(ConnectionHandle handle) +{ + return BleManager::Instance().GetProtocolVersion(handle); +} + +} // namespace Aliro::Interface::Ble + +#endif // CONFIG_NCS_ALIRO_BLE_UWB diff --git a/app/src/aliro/interface_impl/ci_cert.cpp b/app/src/aliro/interface_impl/ci_cert.cpp new file mode 100644 index 00000000..28a725e8 --- /dev/null +++ b/app/src/aliro/interface_impl/ci_cert.cpp @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/errors.h" +#include "aliro/interface.h" + +#ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA + +#include "aliro/crypto_key_ids.h" +#include "aliro/interface.h" +#include "aliro/utils.h" +#include "crypto/utils.h" + +#include + +extern "C" { +#include "mbedtls/psa_util.h" +} + +#include "mbedtls/oid.h" +#include "mbedtls/x509_crt.h" + +#include + +LOG_MODULE_REGISTER(interface_ci_cert, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +#endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA + +namespace Aliro::Interface::CredentialIssuerCertificate { + +#ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA + +namespace { + +AliroError VerifyKeyType(const mbedtls_pk_context *pk) +{ + constexpr size_t kEccP256KeyBits{ CryptoTypes::kEccP256KeyPrivateKeyLength * BITS_PER_BYTE }; + psa_key_attributes_t attributes{}; + mbedtls_pk_get_psa_attributes(pk, PSA_KEY_USAGE_VERIFY_HASH, &attributes); + + psa_key_type_t type = psa_get_key_type(&attributes); + VerifyOrReturnStatus(type == PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1), ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("Invalid public key type")); + VerifyOrReturnStatus(psa_get_key_bits(&attributes) == kEccP256KeyBits, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("Invalid public key bit length")); + + return ALIRO_NO_ERROR; +} + +AliroError VerifyCertificateSignature(const mbedtls_x509_crt &crt) +{ + constexpr size_t kCoordinateBits{ CryptoTypes::kEccP256KeySingleCoordinateLength * BITS_PER_BYTE }; + CryptoTypes::Signature signatureArray{}; + size_t rawLength{}; + + auto result = + mbedtls_ecdsa_der_to_raw(kCoordinateBits, crt.MBEDTLS_PRIVATE(sig).p, crt.MBEDTLS_PRIVATE(sig).len, + signatureArray.data(), signatureArray.size(), &rawLength); + VerifyOrReturnStatus(result == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to convert signature from DER to raw")); + VerifyOrReturnStatus(rawLength == signatureArray.size(), ALIRO_INVALID_DATA_FORMAT, + LOG_ERR("Invalid signature length")); + + return DoorLock::Crypto::VerifySignature(kCredentialIssuerCAPublicKeyId, crt.tbs.p, crt.tbs.len, + signatureArray); +} + +AliroError VerifyCertificate(const mbedtls_x509_crt &crt) +{ + VerifyOrReturnStatus(crt.version == 3, ALIRO_INVALID_DATA_FORMAT, LOG_ERR("Invalid certificate version")); + + auto result = mbedtls_x509_crt_has_ext_type(&crt, MBEDTLS_X509_EXT_KEY_USAGE); + VerifyOrReturnStatus(result != 0, ALIRO_INVALID_DATA_CONTENT, LOG_ERR("Key usage extension is not present")); + result = mbedtls_x509_crt_check_key_usage(&crt, MBEDTLS_X509_KU_DIGITAL_SIGNATURE); + VerifyOrReturnStatus(result == 0, ALIRO_INVALID_DATA_CONTENT, LOG_ERR("Digital Signature bit not set")); + + auto error = VerifyKeyType(&crt.pk); + VerifyOrReturnStatus(error == ALIRO_NO_ERROR, error, LOG_ERR("Failed to verify key type")); + + VerifyOrReturnStatus(crt.MBEDTLS_PRIVATE(sig_md) == MBEDTLS_MD_SHA256, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("Invalid signature algorithm")); + VerifyOrReturnStatus(crt.MBEDTLS_PRIVATE(sig_pk) == MBEDTLS_PK_ECDSA, ALIRO_INVALID_DATA_CONTENT, + LOG_ERR("Invalid signature algorithm")); + + error = VerifyCertificateSignature(crt); + VerifyOrReturnStatus(error == ALIRO_NO_ERROR, error, LOG_ERR("Failed to verify certificate signature")); + + return ALIRO_NO_ERROR; +} + +} // namespace + +AliroError Validate(const ConstData &certificate, CryptoTypes::PublicKey &publicKey, + std::optional ×tamps) +{ +#ifndef MBEDTLS_PK_USE_PSA_EC_DATA + + mbedtls_ecp_keypair *keypair{ nullptr }; + size_t pubkey_size{ 0 }; + +#endif // MBEDTLS_PK_USE_PSA_EC_DATA + + VerifyOrReturnStatus(certificate.mData != nullptr, ALIRO_INVALID_ARGUMENT, LOG_ERR("Certificate data is null")); + VerifyOrReturnStatus(certificate.mLength != 0, ALIRO_INVALID_ARGUMENT, LOG_ERR("Certificate length is zero")); + + mbedtls_x509_crt crt; + mbedtls_x509_crt_init(&crt); + + auto result = mbedtls_x509_crt_parse_der_nocopy(&crt, certificate.mData, certificate.mLength); + AliroError error = (result == 0) ? ALIRO_NO_ERROR : ALIRO_INVALID_DATA_FORMAT; + VerifyOrExit(result == 0, LOG_ERR("Failed to parse certificate")); + + error = VerifyCertificate(crt); + VerifyOrExit(error == ALIRO_NO_ERROR, LOG_ERR("Failed to verify certificate")); + +#ifndef MBEDTLS_PK_USE_PSA_EC_DATA + + keypair = mbedtls_pk_ec(crt.pk); + result = mbedtls_ecp_point_write_binary(&keypair->MBEDTLS_PRIVATE(grp), &keypair->MBEDTLS_PRIVATE(Q), + MBEDTLS_ECP_PF_UNCOMPRESSED, &pubkey_size, publicKey.data(), + publicKey.size()); + VerifyOrExit(result == 0, error = ALIRO_INVALID_ARGUMENT; LOG_ERR("Failed to extract public key")); + VerifyOrExit(pubkey_size == CryptoTypes::kEccP256PublicKeyLength, error = ALIRO_INVALID_ARGUMENT; + LOG_ERR("Invalid public key length")); + +#else // MBEDTLS_PK_USE_PSA_EC_DATA + + VerifyOrExit(crt.pk.MBEDTLS_PRIVATE(pub_raw_len) == CryptoTypes::kEccP256PublicKeyLength, + error = ALIRO_INVALID_DATA_FORMAT; + LOG_ERR("Invalid public key length")); + + std::copy_n(crt.pk.MBEDTLS_PRIVATE(pub_raw), crt.pk.MBEDTLS_PRIVATE(pub_raw_len), publicKey.data()); + +#endif // MBEDTLS_PK_USE_PSA_EC_DATA + + timestamps.emplace( + CertificateTimestamps{ .mValidFrom = Time(crt.valid_from.year, crt.valid_from.mon, crt.valid_from.day, + crt.valid_from.hour, crt.valid_from.min, crt.valid_from.sec), + .mValidUntil = Time(crt.valid_to.year, crt.valid_to.mon, crt.valid_to.day, + crt.valid_to.hour, crt.valid_to.min, crt.valid_to.sec) }); + +exit: + mbedtls_x509_crt_free(&crt); + return error; +} + +#else + +AliroError Validate(const ConstData &, CryptoTypes::PublicKey &, std::optional &) +{ + return ALIRO_ERROR_NOT_IMPLEMENTED; +} + +#endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA + +} // namespace Aliro::Interface::CredentialIssuerCertificate diff --git a/app/src/aliro/interface_impl/crypto.cpp b/app/src/aliro/interface_impl/crypto.cpp new file mode 100644 index 00000000..7a4bfd03 --- /dev/null +++ b/app/src/aliro/interface_impl/crypto.cpp @@ -0,0 +1,392 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/errors.h" +#include "aliro/interface.h" + +#include "aliro/crypto_key_ids.h" +#include "aliro/utils.h" +#include "crypto/utils.h" + +#include + +#include +#include +#include + +LOG_MODULE_REGISTER(crypto_psa, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +namespace Aliro::Interface::Crypto { + +namespace { + +psa_key_attributes_t GetSharedKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + psa_set_key_algorithm(&attributes, PSA_ALG_HKDF(PSA_ALG_SHA_256)); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kEccP256KeyPrivateKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_COPY); + + return attributes; +} + +psa_key_attributes_t GetSymmetricKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_algorithm(&attributes, PSA_ALG_GCM); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kSymmetricKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + + return attributes; +} + +psa_key_attributes_t GetEphemeralKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); + psa_set_key_algorithm(&attributes, PSA_ALG_ECDH); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kEccP256KeyPrivateKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + + return attributes; +} + +psa_key_attributes_t GetRawKeyAttributes(size_t outputKeyLength) +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + psa_set_key_algorithm(&attributes, PSA_ALG_HKDF(PSA_ALG_SHA_256)); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(outputKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + + return attributes; +} + +AliroError DeriveKey(CryptoTypes::KeyId inputKeyId, const uint8_t *info, size_t infoLength, const uint8_t *salt, + size_t saltLength, const psa_key_attributes_t &attributes, CryptoTypes::KeyId &outputKeyId) +{ + psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; + + // Set derivation algorithm. + psa_status_t status = psa_key_derivation_setup(&operation, PSA_ALG_HKDF(PSA_ALG_SHA_256)); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot setup key derivation [Error: %d]", status)); + + // Set salt for the operation. + status = psa_key_derivation_input_bytes(&operation, PSA_KEY_DERIVATION_INPUT_SALT, salt, saltLength); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot import salt [Error: %d]", status)); + + // Set a key for the operation. + status = psa_key_derivation_input_key(&operation, PSA_KEY_DERIVATION_INPUT_SECRET, inputKeyId); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot set input key id [Error: %d]", status)); + + // Set an additional info for the operation. + status = psa_key_derivation_input_bytes(&operation, PSA_KEY_DERIVATION_INPUT_INFO, info, infoLength); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot import info [Error: %d]", status)); + + status = psa_key_derivation_output_key(&attributes, &operation, &outputKeyId); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot output derived key [Error: %d]", status)); + +exit: + /* From PSA API spec: Key derivation does not finish in the same way as other multi-part + * operations. Call psa_key_derivation_abort() to release the key derivation operation + * memory when the object is no longer required. */ + psa_status_t abortStatus = psa_key_derivation_abort(&operation); + + VerifyOrReturnStatus(abortStatus == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Key derivation abort failed [Error: %d]", status)); + + return (status == PSA_SUCCESS) ? ALIRO_NO_ERROR : ALIRO_ERROR_INTERNAL; +} + +} // namespace + +AliroError GenerateRandom(uint8_t *buffer, size_t bufferLength) +{ + VerifyOrReturnStatus(buffer && bufferLength > 0, ALIRO_INVALID_ARGUMENT); + + return psa_generate_random(buffer, bufferLength) == PSA_SUCCESS ? ALIRO_NO_ERROR : ALIRO_ERROR_INTERNAL; +} + +AliroError GenerateEphemeralKeyPair(CryptoTypes::KeyId &keyId, CryptoTypes::PublicKey &ephemeralPubKey) +{ + const auto attributes = GetEphemeralKeyAttributes(); + + auto status = psa_generate_key(&attributes, &keyId); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot generate ephemeral keys [error: %d]", status)); + + return DoorLock::Crypto::ExportPublicKey(keyId, ephemeralPubKey); +} + +AliroError ImportSharedKey(const uint8_t *key, size_t keyLength, CryptoTypes::KeyId &keyId) +{ + VerifyOrReturnStatus(key && keyLength > 0, ALIRO_INVALID_ARGUMENT); + + const auto attributes = GetSharedKeyAttributes(); + + psa_status_t status = psa_import_key(&attributes, key, keyLength, &keyId); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Could not import key [Error: %d]", status)); + + return ALIRO_NO_ERROR; +} + +AliroError ImportSymmetricKey(const uint8_t *key, size_t keyLength, CryptoTypes::KeyId &keyId) +{ + VerifyOrReturnStatus(key && keyLength > 0, ALIRO_INVALID_ARGUMENT); + + const auto attributes = GetSymmetricKeyAttributes(); + + psa_status_t status = psa_import_key(&attributes, key, keyLength, &keyId); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Could not import key [Error: %d]", status)); + + return ALIRO_NO_ERROR; +} + +AliroError DestroyKey(CryptoTypes::KeyId &keyId) +{ + return DoorLock::Crypto::DestroyKey(keyId); +} + +AliroError GenerateSignature(const uint8_t *msg, const size_t msgLength, CryptoTypes::Signature &signature) +{ + VerifyOrReturnStatus(msg && msgLength > 0, ALIRO_INVALID_ARGUMENT); + + psa_status_t status = PSA_SUCCESS; + size_t outputLen{}; + + status = psa_sign_message(kPrivateKeyId, PSA_ALG_ECDSA(PSA_ALG_SHA_256), msg, msgLength, signature.data(), + signature.size(), &outputLen); + + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot sign message [Error: %d]", status)); + VerifyOrReturnStatus(outputLen == CryptoTypes::kEccP256SignatureLength, ALIRO_ERROR_INTERNAL, + LOG_WRN("Invalid signature length")); + + return ALIRO_NO_ERROR; +} + +AliroError VerifySignature(const CryptoTypes::PublicKey &publicKey, const uint8_t *msg, const size_t msgLength, + const CryptoTypes::Signature &signature) +{ + CryptoTypes::KeyId pubKeyId{ 0 }; + ReturnErrorOnFailure(DoorLock::Crypto::ImportPublicKey(publicKey, false, pubKeyId)); + + const auto status = DoorLock::Crypto::VerifySignature(pubKeyId, msg, msgLength, signature); + + DoorLock::Crypto::DestroyKey(pubKeyId); + + return status; +} + +AliroError RawKeyAgreement(CryptoTypes::KeyId keyId, const CryptoTypes::PublicKey &peerPublicKey, + CryptoTypes::SharedSecret &sharedSecret) +{ + size_t outputLength{}; + + psa_status_t status = psa_raw_key_agreement(PSA_ALG_ECDH, // ECKA-DH with P-256 + keyId, peerPublicKey.data(), peerPublicKey.size(), + sharedSecret.data(), sharedSecret.size(), &outputLength); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot perform raw key agreement [Error: %d]", status)); + VerifyOrReturnStatus(outputLength == sharedSecret.size(), ALIRO_ERROR_INTERNAL, + LOG_WRN("Invalid raw key agreement output length")); + + return ALIRO_NO_ERROR; +} + +AliroError DeriveSharedKey(CryptoTypes::KeyId keyId, const uint8_t *info, size_t infoLength, const uint8_t *salt, + size_t saltLength, CryptoTypes::KeyId &outputKeyId) +{ + const auto attributes = GetSharedKeyAttributes(); + + return DeriveKey(keyId, info, infoLength, salt, saltLength, attributes, outputKeyId); +} + +AliroError DeriveSymmetricKey(CryptoTypes::KeyId keyId, const uint8_t *info, size_t infoLength, const uint8_t *salt, + size_t saltLength, CryptoTypes::KeyId &outputKeyId) +{ + const auto attributes = GetSymmetricKeyAttributes(); + + return DeriveKey(keyId, info, infoLength, salt, saltLength, attributes, outputKeyId); +} + +AliroError DeriveRawKey(CryptoTypes::KeyId keyId, const uint8_t *info, size_t infoLength, const uint8_t *salt, + size_t saltLength, uint8_t *outputKey, size_t outputKeyLength) +{ + VerifyOrReturnStatus(outputKey && outputKeyLength > 0, ALIRO_INVALID_ARGUMENT, LOG_WRN("Invalid output key")); + + const psa_key_attributes_t attributes = GetRawKeyAttributes(outputKeyLength); + + CryptoTypes::KeyId derivedKeyId{}; + AliroError status = DeriveKey(keyId, info, infoLength, salt, saltLength, attributes, derivedKeyId); + VerifyOrExit(status == ALIRO_NO_ERROR); + + status = DoorLock::Crypto::ExportKey(derivedKeyId, outputKey, outputKeyLength); + +exit: + DoorLock::Crypto::DestroyKey(derivedKeyId); + + return status; +} + +AliroError AeadEncrypt(CryptoTypes::KeyId keyId, const uint8_t *plainTxt, size_t plainTxtLength, + const uint8_t *additionalData, size_t additionalDataLength, const CryptoTypes::Nonce &nonce, + uint8_t *cipherText, CryptoTypes::AuthenticationTag &authTag) +{ + VerifyOrReturnStatus(nonce.size() == CryptoTypes::kNonceLength, ALIRO_INVALID_ARGUMENT); + VerifyOrReturnStatus(((plainTxt != nullptr) == (plainTxtLength != 0)), ALIRO_ERROR_INTERNAL); + VerifyOrReturnStatus(additionalData || additionalDataLength == 0, ALIRO_ERROR_INTERNAL); + VerifyOrReturnStatus(cipherText, ALIRO_ERROR_INTERNAL); + + const psa_algorithm_t algorithm = PSA_ALG_GCM; + +#ifndef CONFIG_DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART + psa_aead_operation_t operation = PSA_AEAD_OPERATION_INIT; + size_t outLength{}; + size_t authTagLengthOutput{}; + + psa_status_t status = psa_aead_encrypt_setup(&operation, keyId, algorithm); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot setup encryption [Error: %d]", status)); + + status = psa_aead_set_lengths(&operation, additionalDataLength, plainTxtLength); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot set lengths [Error: %d]", status)); + + status = psa_aead_set_nonce(&operation, nonce.data(), nonce.size()); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("Cannot set nonce [Error: %d]", status)); + + if (additionalDataLength != 0) { + status = psa_aead_update_ad(&operation, additionalData, additionalDataLength); + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("AEAD additional update failed [Error: %d]", status)); + } + + if (plainTxt) { + // For now assume the plainTxt is encrypted all at once + status = psa_aead_update(&operation, plainTxt, plainTxtLength, cipherText, + PSA_AEAD_UPDATE_OUTPUT_SIZE(PSA_KEY_TYPE_AES, algorithm, plainTxtLength), + &outLength); + + VerifyOrExit(status == PSA_SUCCESS, LOG_WRN("AEAD update failed [Error: %d]", status)); + + cipherText += outLength; + } + + status = psa_aead_finish(&operation, cipherText, PSA_AEAD_FINISH_OUTPUT_SIZE(PSA_KEY_TYPE_AES, algorithm), + &outLength, authTag.data(), authTag.size(), &authTagLengthOutput); + + VerifyOrExit(status == PSA_SUCCESS && authTag.size() == authTagLengthOutput, + LOG_WRN("Unexpected output authentication tag size or AEAD finish " + "failed [Error: %d]", + status)); + + return ALIRO_NO_ERROR; + +exit: + status = psa_aead_abort(&operation); + if (status != PSA_SUCCESS) { + LOG_WRN("Cannot abort AEAD operation [Error: %d]", status); + } + return ALIRO_ERROR_INTERNAL; + +#else // CONFIG_DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART + + constexpr size_t kPlainTextSize{ CONFIG_DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART_BUFFER_SIZE }; + constexpr size_t kBufferSize{ kPlainTextSize + CryptoTypes::kAuthenticationTagLength }; + const size_t expOutLen{ plainTxtLength + CryptoTypes::kAuthenticationTagLength }; + + VerifyOrReturnValue(expOutLen <= kBufferSize, ALIRO_NO_MEMORY); + + std::array buffer{}; + size_t outLen{}; + + psa_status_t status = + psa_aead_encrypt(keyId, algorithm, nonce.data(), nonce.size(), additionalData, additionalDataLength, + plainTxt, plainTxtLength, buffer.data(), buffer.size(), &outLen); + VerifyOrReturnStatus(status == PSA_SUCCESS && outLen == expOutLen, ALIRO_ERROR_INTERNAL, + LOG_WRN("AEAD encryption failed [Error: %d]", status)); + + if (plainTxtLength) { + std::copy_n(buffer.data(), plainTxtLength, cipherText); + } + + std::copy_n(buffer.data() + plainTxtLength, CryptoTypes::kAuthenticationTagLength, authTag.data()); + + return ALIRO_NO_ERROR; + +#endif // CONFIG_DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART +} + +AliroError AeadDecrypt(CryptoTypes::KeyId keyId, const uint8_t *cipherTextWithTag, size_t cipherTextWithTagLength, + const uint8_t *additionalData, size_t additionalDataLength, const CryptoTypes::Nonce &nonce, + uint8_t *plainText, size_t &plainTextLength) +{ + size_t outLength{}; + + VerifyOrReturnStatus(cipherTextWithTagLength != 0 && cipherTextWithTag, ALIRO_INVALID_ARGUMENT, + LOG_WRN("Cipher text with tag is not valid")); + VerifyOrReturnStatus(plainTextLength == 0 || plainText, ALIRO_INVALID_ARGUMENT, + LOG_WRN("Plain text buffer is not valid")); + + psa_status_t status = + psa_aead_decrypt(keyId, PSA_ALG_GCM, nonce.data(), nonce.size(), additionalData, additionalDataLength, + cipherTextWithTag, cipherTextWithTagLength, plainText, plainTextLength, &outLength); + + // The ciphertext is not authentic, authentication tag is not valid. + if (status == PSA_ERROR_INVALID_SIGNATURE) { + return ALIRO_INVALID_AUTHENTICATION_TAG; + } + + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("AEAD decryption failed [Error: %d]", status)); + + plainTextLength = outLength; + return ALIRO_NO_ERROR; +} + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + +AliroError Encrypt(const uint8_t *plainText, size_t plainTextLength, uint8_t *cipherText) +{ + constexpr static psa_algorithm_t algorithm = PSA_ALG_ECB_NO_PADDING; + constexpr static size_t blockSize = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES); + + VerifyOrReturnStatus((cipherText && plainText && plainTextLength == blockSize), ALIRO_INVALID_ARGUMENT); + + size_t outLength{}; + + psa_status_t status = psa_cipher_encrypt(kGroupResolvingKeyId, algorithm, plainText, blockSize, cipherText, + blockSize, &outLength); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot encrypt payload [Error: %d]", status)); + VerifyOrReturnStatus(outLength == blockSize, ALIRO_ERROR_INTERNAL, LOG_WRN("Invalid output length")); + + return ALIRO_NO_ERROR; +} + +#endif // CONFIG_NCS_ALIRO_BLE_UWB + +AliroError Sha256(const uint8_t *data, size_t dataLength, CryptoTypes::Sha256Hash &hash) +{ + VerifyOrReturnStatus(data && dataLength > 0, ALIRO_INVALID_ARGUMENT); + + size_t hashLength; + psa_status_t status = + psa_hash_compute(PSA_ALG_SHA_256, data, dataLength, hash.data(), hash.size(), &hashLength); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot compute SHA-256 hash [Error: %d]", status)); + VerifyOrReturnStatus(hashLength == hash.size(), ALIRO_ERROR_INTERNAL, LOG_WRN("Invalid SHA-256 hash length")); + + return ALIRO_NO_ERROR; +} + +} // namespace Aliro::Interface::Crypto diff --git a/app/src/aliro/platform/logger/platform_log.cpp b/app/src/aliro/interface_impl/log.cpp similarity index 62% rename from app/src/aliro/platform/logger/platform_log.cpp rename to app/src/aliro/interface_impl/log.cpp index 2cf429ca..4a44b8df 100644 --- a/app/src/aliro/platform/logger/platform_log.cpp +++ b/app/src/aliro/interface_impl/log.cpp @@ -1,19 +1,42 @@ /* - * Copyright (c) 2025 Nordic Semiconductor ASA + * Copyright (c) 2026 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#include "logger/platform_log.h" +#include #include -#include +LOG_MODULE_REGISTER(aliro_stack, CONFIG_NCS_ALIRO_LOG_LEVEL_VALUE); -LOG_MODULE_REGISTER(platform, CONFIG_NCS_ALIRO_LOG_LEVEL_VALUE); +namespace Aliro::Interface::Logging { -void _AliroPlatformLogHexdump(uint8_t platformLogLevel, const void *data, size_t size, const char *str) +void Log(uint8_t platformLogLevel, const char *logFormat, ...) { +#if defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) + + if (platformLogLevel > CONFIG_NCS_ALIRO_LOG_LEVEL_VALUE) { + return; + } + + va_list paramList; + va_start(paramList, logFormat); + log_generic(platformLogLevel, logFormat, paramList); + va_end(paramList); + +#else // defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) + + ARG_UNUSED(platformLogLevel); + ARG_UNUSED(logFormat); + +#endif // defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) +} + +void LogHexdump(uint8_t platformLogLevel, const void *data, size_t size, const char *str) +{ +#if defined(CONFIG_LOG) + switch (platformLogLevel) { case LOG_LEVEL_ERR: LOG_HEXDUMP_ERR(data, size, str); @@ -31,25 +54,15 @@ void _AliroPlatformLogHexdump(uint8_t platformLogLevel, const void *data, size_t default: break; } -} - -void _AliroPlatformLog(uint8_t platformLogLevel, const char *logFormat, ...) -{ -#if defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) - if (platformLogLevel > CONFIG_NCS_ALIRO_LOG_LEVEL_VALUE) { - return; - } - - va_list paramList; - va_start(paramList, logFormat); - log_generic(platformLogLevel, logFormat, paramList); - va_end(paramList); - -#else // defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) +#else // defined(CONFIG_LOG) ARG_UNUSED(platformLogLevel); - ARG_UNUSED(logFormat); + ARG_UNUSED(data); + ARG_UNUSED(size); + ARG_UNUSED(str); -#endif // defined(CONFIG_LOG) && !defined(CONFIG_LOG_MODE_MINIMAL) +#endif // defined(CONFIG_LOG) } + +} // namespace Aliro::Interface::Logging diff --git a/app/src/aliro/interface_impl/os.cpp b/app/src/aliro/interface_impl/os.cpp new file mode 100644 index 00000000..87dfb1a0 --- /dev/null +++ b/app/src/aliro/interface_impl/os.cpp @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/aliro.h" +#include "aliro/aliro_work/aliro_work.h" +#include "aliro/errors.h" +#include "aliro/interface.h" +#include "aliro/utils.h" + +#include +#include +#include + +LOG_MODULE_REGISTER(interface_events, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +namespace Aliro::Interface::Os { + +namespace { + +K_FIFO_DEFINE(sEventsFifo); +/* + * Set by producers after enqueue. + * Worker clears it before draining and checks it again after drain: + * if it was set meanwhile, new events arrived concurrently and the worker + * should continue (or resubmit during exit window handling). + */ +atomic_t sNewEvents = ATOMIC_INIT(0); +/* + * Scheduling/running token for the worker. + * 0: no work item queued/running + * 1: work item queued/running + * + * Producer uses CAS(0->1) to ensure only one submit for a burst. + * Worker clears it at end, then performs a final resubmit check to close + * the race where producer enqueued while worker was still active. + */ +atomic_t sWorkerActive = ATOMIC_INIT(0); + +void ProcessEventsWorkHandler(k_work *work) +{ + while (true) { + /* + * Start a new drain pass. Any producer that enqueues during/after this + * point will set sNewEvents again, which we observe after FIFO becomes + * empty to decide whether another pass is needed. + */ + atomic_clear(&sNewEvents); + + while (void *event = k_fifo_get(&sEventsFifo, K_NO_WAIT)) { + AliroStack::Instance().ProcessEvent(event); + } + + if (!atomic_get(&sNewEvents)) { + break; + } + } + + atomic_clear(&sWorkerActive); + + /* + * Close the exit race: + * - producer may enqueue just before/around worker deactivation + * - producer cannot submit while sWorkerActive==1 + * - therefore worker performs one final check and self-resubmits if needed + */ + if (atomic_get(&sNewEvents) && atomic_cas(&sWorkerActive, 0, 1)) { + const int submitErr = AliroWorkSubmit(work); + if (submitErr < 0) { + atomic_clear(&sWorkerActive); + LOG_ERR("Failed to resubmit events work, err: %d", submitErr); + } + } +} + +K_WORK_DEFINE(sProcessEventsWork, ProcessEventsWorkHandler); + +} // namespace + +AliroError QueueEvent(void *event) +{ + VerifyOrReturnStatus(event != nullptr, ALIRO_INVALID_ARGUMENT); + + k_fifo_put(&sEventsFifo, event); + /* Signal that at least one event is pending since current worker pass started. */ + atomic_set(&sNewEvents, 1); + + /* First producer in a burst schedules processing; others only enqueue+mark. */ + if (atomic_cas(&sWorkerActive, 0, 1)) { + const int submitErr = AliroWorkSubmit(&sProcessEventsWork); + if (submitErr < 0) { + atomic_clear(&sWorkerActive); + /* Do not return here, as it may cause the stack to free the event + * before removing it from the queue. */ + } + } + + return ALIRO_NO_ERROR; +} + +} // namespace Aliro::Interface::Os diff --git a/app/src/aliro/interface_impl/os_mutex.cpp b/app/src/aliro/interface_impl/os_mutex.cpp new file mode 100644 index 00000000..cce3806f --- /dev/null +++ b/app/src/aliro/interface_impl/os_mutex.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" +#include "aliro/utils.h" + +#include +#include +#include + +LOG_MODULE_REGISTER(interface_mutex, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +namespace Aliro::Interface::Os::Mutex { + +namespace { + +K_MUTEX_DEFINE(sStackSessionMutex); + +} // namespace + +void Lock() +{ + const int lockErr = k_mutex_lock(&sStackSessionMutex, K_FOREVER); + VerifyOrDie(lockErr == 0, "Stack session mutex lock failed"); +} + +void Unlock() +{ + const int unlockErr = k_mutex_unlock(&sStackSessionMutex); + VerifyOrDie(unlockErr == 0, "Stack session mutex unlock failed"); +} + +} // namespace Aliro::Interface::Os::Mutex diff --git a/app/src/aliro/interface_impl/os_timer.cpp b/app/src/aliro/interface_impl/os_timer.cpp new file mode 100644 index 00000000..ce48385c --- /dev/null +++ b/app/src/aliro/interface_impl/os_timer.cpp @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" + +#include "aliro/aliro_work/aliro_work.h" + +#include +#include +#include + +#include +#include + +LOG_MODULE_REGISTER(interface_os_timer, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +namespace Aliro::Interface::Os::Timer { + +namespace { + +constexpr size_t kNfcStackTimers{ 1 }; + +#ifdef CONFIG_DOOR_LOCK_BLE_UWB +constexpr size_t kBleStackTimers{ CONFIG_DOOR_LOCK_BLE_UWB_MAX_SESSIONS }; +#else +constexpr size_t kBleStackTimers{ 0 }; +#endif + +constexpr size_t kStackTimerCount{ kNfcStackTimers + kBleStackTimers }; + +struct TimerSlot { + k_timer mTimer{}; + k_work mWork{}; + Callback mCallback{ nullptr }; + void *mContext{ nullptr }; +}; + +std::array sTimerSlots{}; + +bool IsHandleValid(Handle handle) +{ + return handle >= 0 && handle < static_cast(sTimerSlots.size()); +} + +TimerSlot *GetSlot(Handle handle) +{ + if (IsHandleValid(handle)) { + auto &slot = sTimerSlots[handle]; + if (!slot.mCallback) { + LOG_ERR("Timer slot is not initialized (handle: %d)", handle); + return nullptr; + } + return &slot; + } + + LOG_ERR("Invalid timer slot (handle: %d)", handle); + return nullptr; +} + +void WorkHandler(k_work *work) +{ + auto &slot = *CONTAINER_OF(work, TimerSlot, mWork); + + if (slot.mCallback) { + slot.mCallback(slot.mContext); + } +} + +void ExpiryHandler(k_timer *timer) +{ + auto *slot = static_cast(k_timer_user_data_get(timer)); + if (!slot) { + return; + } + + const auto err = AliroWorkSubmit(&slot->mWork); + if (err < 0) { + LOG_ERR("Failed to submit timer expiry work, err: %d", err); + } +} + +int InitTimerSlots(void) +{ + for (auto &slot : sTimerSlots) { + k_timer_init(&slot.mTimer, ExpiryHandler, nullptr); + k_timer_user_data_set(&slot.mTimer, &slot); + k_work_init(&slot.mWork, WorkHandler); + } + + return 0; +} + +} // namespace + +Handle Acquire(Callback callback, void *context) +{ + if (!callback) { + LOG_ERR("Timer callback must not be null"); + return kInvalidHandle; + } + + for (size_t index = 0; index < kStackTimerCount; index++) { + auto &slot = sTimerSlots[index]; + if (!slot.mCallback) { + slot.mCallback = callback; + slot.mContext = context; + return static_cast(index); + } + } + + LOG_ERR("No free stack timer slot (count: %zu)", kStackTimerCount); + return kInvalidHandle; +} + +void Release(Handle handle) +{ + const auto slot{ GetSlot(handle) }; + if (!slot) { + return; + } + + /* Mark slot as unused first so pending work will not execute callback. */ + slot->mCallback = nullptr; + slot->mContext = nullptr; + + k_timer_stop(&slot->mTimer); + k_work_sync sync{}; + k_work_cancel_sync(&slot->mWork, &sync); +} + +void Start(Handle handle, uint32_t timeoutMs) +{ + const auto slot{ GetSlot(handle) }; + if (!slot) { + return; + } + + k_timer_start(&slot->mTimer, K_MSEC(timeoutMs), K_NO_WAIT); +} + +void Stop(Handle handle) +{ + const auto slot{ GetSlot(handle) }; + if (!slot) { + return; + } + + k_timer_stop(&slot->mTimer); +} + +bool IsRunning(Handle handle) +{ + const auto slot{ GetSlot(handle) }; + if (!slot) { + return false; + } + + return k_timer_remaining_ticks(&slot->mTimer) != 0; +} + +SYS_INIT(InitTimerSlots, POST_KERNEL, CONFIG_APPLICATION_INIT_PRIORITY); + +} // namespace Aliro::Interface::Os::Timer diff --git a/app/src/aliro/interface_impl/reader.cpp b/app/src/aliro/interface_impl/reader.cpp new file mode 100644 index 00000000..e47546c2 --- /dev/null +++ b/app/src/aliro/interface_impl/reader.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" + +#include "reader_cache.h" + +#include + +LOG_MODULE_REGISTER(interface_reader, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +namespace Aliro::Interface::Reader { + +AliroError GetIdentifier(Identifier &identifier) +{ + return ReaderCache::Instance().GetIdentifier(identifier); +} + +AliroError GetPublicKey(CryptoTypes::PublicKey &publicKey) +{ + return ReaderCache::Instance().GetPublicKey(publicKey); +} + +bool IsCertificateProvisioned() +{ +#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE + return ReaderCache::Instance().IsCertificateSet() && ReaderCache::Instance().IsIssuerPublicKeySet(); +#else // CONFIG_DOOR_LOCK_READER_CERTIFICATE + return false; +#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE +} + +AliroError GetIssuerPublicKey(CryptoTypes::PublicKey &publicKey) +{ +#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE + return ReaderCache::Instance().GetIssuerPublicKey(publicKey); +#else // CONFIG_DOOR_LOCK_READER_CERTIFICATE + ARG_UNUSED(publicKey); + return ALIRO_ERROR_NOT_IMPLEMENTED; +#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE +} + +AliroError GetCertificate(ConstData &certificate) +{ +#ifdef CONFIG_DOOR_LOCK_READER_CERTIFICATE + return ReaderCache::Instance().GetCertificate(certificate); +#else // CONFIG_DOOR_LOCK_READER_CERTIFICATE + ARG_UNUSED(certificate); + return ALIRO_ERROR_NOT_IMPLEMENTED; +#endif // CONFIG_DOOR_LOCK_READER_CERTIFICATE +} + +} // namespace Aliro::Interface::Reader diff --git a/app/src/aliro/interface_impl/session.cpp b/app/src/aliro/interface_impl/session.cpp new file mode 100644 index 00000000..9cd3ebac --- /dev/null +++ b/app/src/aliro/interface_impl/session.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "aliro/interface.h" + +#include "aliro/access_manager/access_manager.h" +#include "aliro/platform/nfc/nfc_transport_rfal.h" + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB +#include "aliro/platform/ble/ble_manager.h" +#endif // CONFIG_NCS_ALIRO_BLE_UWB + +namespace Aliro::Interface::Session { + +AliroError Send(ConnectionHandle handle, Data data) +{ + if (handle.IsNfc()) { + return NfcTransportRfal::Instance().Send(data); + } +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + else if (handle.IsBle()) { + return BleManager::Instance().Send(handle, data); + } +#endif // CONFIG_NCS_ALIRO_BLE_UWB + + return ALIRO_INVALID_ARGUMENT; +} + +void HandleTermination(ConnectionHandle handle) +{ + if (handle.IsNfc()) { + NfcTransportRfal::Instance().Terminate(); + } +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + else if (handle.IsBle()) { + BleManager::Instance().Terminate(handle); + } +#endif // CONFIG_NCS_ALIRO_BLE_UWB + + AccessManagerInstance().HandleSessionTermination(handle); +} + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + +AliroError StartRangingSession(ConnectionHandle handle, uint32_t rangingSessionId, const CryptoTypes::Ursk &ursk, + ProtocolVersion protocolVersion) +{ + return AccessManagerInstance().StartRangingSession(rangingSessionId, ursk, protocolVersion, handle); +} + +#endif // CONFIG_NCS_ALIRO_BLE_UWB + +} // namespace Aliro::Interface::Session diff --git a/app/src/aliro/interface_impl/uwb.cpp b/app/src/aliro/interface_impl/uwb.cpp new file mode 100644 index 00000000..df2cad2c --- /dev/null +++ b/app/src/aliro/interface_impl/uwb.cpp @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#ifdef CONFIG_NCS_ALIRO_BLE_UWB + +#include "aliro/interface.h" + +#include "uwb_impl.h" + +namespace Aliro::Interface { + +namespace Uwb { + +AliroError HandleBleMessage(ConnectionHandle sessionContext, const uint8_t *data, size_t length) +{ + return ::Aliro::Uwb::UltraWideBandImpl::Instance().HandleBleMessage(data, length, sessionContext); +} + +} // namespace Uwb + +} // namespace Aliro::Interface + +#endif // CONFIG_NCS_ALIRO_BLE_UWB diff --git a/app/src/aliro/kpersistent_manager/Kconfig b/app/src/aliro/kpersistent_manager/Kconfig index 8498a12f..3b855a0f 100644 --- a/app/src/aliro/kpersistent_manager/Kconfig +++ b/app/src/aliro/kpersistent_manager/Kconfig @@ -7,10 +7,8 @@ config MAX_NUMBER_OF_KPERSISTENT int "Maximum number of supported Kpersistent keys" depends on DOOR_LOCK_EXPEDITED_FAST_PHASE - default DOOR_LOCK_ACCESS_MANAGER_ACCESS_CREDENTIAL_MAX_STORED_KEYS if DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT - range 1 DOOR_LOCK_ACCESS_MANAGER_ACCESS_CREDENTIAL_MAX_STORED_KEYS if DOOR_LOCK_ACCESS_MANAGER_IMPLEMENTATION_DEFAULT - default 255 - range 1 255 + default DOOR_LOCK_ACCESS_MANAGER_ACCESS_CREDENTIAL_MAX_STORED_KEYS + range 1 DOOR_LOCK_ACCESS_MANAGER_ACCESS_CREDENTIAL_MAX_STORED_KEYS help Specifies the maximum number of Kpersistent keys that can be supported in the Expedited-fast Phase. diff --git a/lib/aliro/interfaces/kpersistent_manager/kpersistent_manager.h b/app/src/aliro/kpersistent_manager/kpersistent_manager.h similarity index 94% rename from lib/aliro/interfaces/kpersistent_manager/kpersistent_manager.h rename to app/src/aliro/kpersistent_manager/kpersistent_manager.h index 7d7fc3ad..5485ebb2 100644 --- a/lib/aliro/interfaces/kpersistent_manager/kpersistent_manager.h +++ b/app/src/aliro/kpersistent_manager/kpersistent_manager.h @@ -42,13 +42,13 @@ class KpersistentManager { * @brief Preserve a Kpersistent key. * * @param publicKey The user's public key corresponding to the Kpersistent key. - * @param kpersistentKeyId The resulting keyID of the stored Kpersistent. + * @param kpersistentKeyId The volatile Kpersistent key ID. * * @return ALIRO_NO_ERROR when success, ALIRO_KEY_ALREADY_EXISTS if the Kpersistent already exists, other error * status otherwise. */ virtual AliroError PreserveKpersistent(const CryptoTypes::PublicKey &publicKey, - CryptoTypes::KeyId &kpersistentKeyId) = 0; + CryptoTypes::KeyId kpersistentKeyId) = 0; /** * @brief Remove a Kpersistent key. diff --git a/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.cpp b/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.cpp index f7c2a49d..3b80f453 100644 --- a/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.cpp +++ b/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.cpp @@ -6,11 +6,12 @@ #include "kpersistent_manager_impl.h" -#include "access_manager/access_manager.h" +#include "access_manager.h" #include "aliro/crypto_key_ids.h" #include "aliro/errors.h" +#include "aliro/interface.h" #include "aliro/utils.h" -#include "crypto/crypto.h" +#include "crypto/utils.h" #include "zephyr/sys/util.h" #include @@ -42,7 +43,7 @@ void KpersistentManagerImpl::Init() for (size_t i = 0; i < kMaxKpersistentCount; i++) { const auto kpersistentKeyId = ToKpersistentKeyId(i); - auto error = CryptoInstance().IsKeyValid(kpersistentKeyId); + auto error = DoorLock::Crypto::IsKeyAvailable(kpersistentKeyId); if (error != ALIRO_NO_ERROR) { continue; } @@ -75,7 +76,7 @@ AliroError KpersistentManagerImpl::GetKpersistentKeyIds(KeyId *keyIds, size_t &c return ALIRO_NO_ERROR; } -AliroError KpersistentManagerImpl::PreserveKpersistent(const PublicKey &publicKey, KeyId &kpersistentKeyId) +AliroError KpersistentManagerImpl::PreserveKpersistent(const PublicKey &publicKey, KeyId kpersistentKeyId) { size_t index{}; VerifyOrReturnStatus(AccessManagerInstance().IsPublicKeyStored(publicKey, &index), ALIRO_PUBLIC_KEY_NOT_FOUND, @@ -92,17 +93,16 @@ AliroError KpersistentManagerImpl::PreserveKpersistent(const PublicKey &publicKe LOG_DBG("Removing existing Kpersistent key"); auto tempKpersistentKeyId{ kpersistentKeyIdPersistent }; - auto status = CryptoInstance().DestroyKey(tempKpersistentKeyId); + auto status = DoorLock::Crypto::DestroyKey(tempKpersistentKeyId); VerifyOrReturnStatus(status == ALIRO_NO_ERROR, status, LOG_ERR("Cannot remove existing Kpersistent")); mKpersistentMap[index] = false; mKpersistentCount--; } - AliroError status = CryptoInstance().PreserveKey(kpersistentKeyId, kpersistentKeyIdPersistent); + AliroError status = DoorLock::Crypto::PreserveKey(kpersistentKeyId, kpersistentKeyIdPersistent); VerifyOrReturnStatus(status == ALIRO_NO_ERROR, status, LOG_ERR("Cannot preserve new Kpersistent")); - kpersistentKeyId = kpersistentKeyIdPersistent; mKpersistentMap[index] = true; mKpersistentCount++; @@ -123,7 +123,7 @@ AliroError KpersistentManagerImpl::RemoveKpersistent(size_t kpersistentKeyOffset VerifyOrReturnStatus(IN_RANGE(kPersistentKeyIdPersistent, kKpersistentRangeBegin, kKpersistentRangeEnd), ALIRO_INVALID_ARGUMENT, LOG_WRN("Kpersistent key ID is out of range")); - VerifyOrReturnStatus(CryptoInstance().DestroyKey(kPersistentKeyIdPersistent) == ALIRO_NO_ERROR, + VerifyOrReturnStatus(DoorLock::Crypto::DestroyKey(kPersistentKeyIdPersistent) == ALIRO_NO_ERROR, ALIRO_ERROR_INTERNAL, LOG_WRN("Cannot remove Kpersistent with key ID: 0x%08x", kPersistentKeyIdPersistent)); @@ -156,7 +156,8 @@ AliroError KpersistentManagerImpl::GetAccessCredentialPublicKey(CryptoTypes::Key VerifyOrReturnStatus(mKpersistentMap[index], ALIRO_INVALID_ARGUMENT); AliroError status = AccessManagerInstance().GetPublicKey(index, publicKey); - VerifyOrReturnStatus(status == ALIRO_NO_ERROR, status, LOG_ERR("Cannot get Access Credential public key")); + VerifyOrReturnStatus(status == ALIRO_NO_ERROR, ALIRO_PUBLIC_KEY_NOT_FOUND, + LOG_ERR("Cannot get Access Credential public key")); return ALIRO_NO_ERROR; } diff --git a/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.h b/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.h index 4ad8999b..aeab1539 100644 --- a/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.h +++ b/app/src/aliro/kpersistent_manager/kpersistent_manager_impl.h @@ -6,7 +6,7 @@ #pragma once -#include "kpersistent_manager/kpersistent_manager.h" +#include "kpersistent_manager.h" #include #include @@ -22,7 +22,7 @@ class KpersistentManagerImpl : public KpersistentManager { AliroError GetKpersistentKeyIds(CryptoTypes::KeyId *keyIds, size_t &count) override; AliroError PreserveKpersistent(const CryptoTypes::PublicKey &publicKey, - CryptoTypes::KeyId &kpersistentKeyId) override; + CryptoTypes::KeyId kpersistentKeyId) override; AliroError RemoveKpersistent(size_t kpersistentKeyOffset) override; diff --git a/app/src/aliro/lock_sim/Kconfig b/app/src/aliro/lock_sim/Kconfig index 9e7c2dcf..90ed9ce2 100644 --- a/app/src/aliro/lock_sim/Kconfig +++ b/app/src/aliro/lock_sim/Kconfig @@ -4,6 +4,8 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menu "Lock simulator" + config DOOR_LOCK_LOCK_SIM_MOVEMENT_TIME_MS int "Movement time of the lock actuator (ms)" default 2000 @@ -14,6 +16,7 @@ config DOOR_LOCK_LOCK_SIM_MOVEMENT_TIME_MS config DOOR_LOCK_LOCK_SIM_AUTO_RELOCK bool "Enable auto relock" default y + depends on !CHIP help Enable auto relock of the lock. When enabled, the lock will relock itself after a certain time. @@ -27,3 +30,12 @@ config DOOR_LOCK_LOCK_SIM_AUTO_RELOCK_TIME_MS The auto relock time is the time it takes for the lock to relock itself after it has been unlocked. endif # DOOR_LOCK_LOCK_SIM_AUTO_RELOCK + +config DOOR_LOCK_LOCK_SIM_INDICATOR + bool "Enable lock simulator indicator" + default y + depends on !CHIP + help + Enable the lock simulator indicator. When enabled, the lock simulator will indicate the lock state. + +endmenu # Lock simulator diff --git a/app/src/aliro/lock_sim/lock_sim.cpp b/app/src/aliro/lock_sim/lock_sim.cpp index 96f8b65d..59ddb7f9 100644 --- a/app/src/aliro/lock_sim/lock_sim.cpp +++ b/app/src/aliro/lock_sim/lock_sim.cpp @@ -5,14 +5,35 @@ */ #include "lock_sim.h" + +#include "aliro/aliro_work/aliro_work.h" #include "aliro/utils.h" +#ifdef CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR +#include +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + #include +#include + LOG_MODULE_REGISTER(lock_sim, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); namespace Aliro { +namespace { + +#ifdef CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + +constexpr int kLedOn{ 1 }; +constexpr int kLedOff{ 0 }; + +constexpr gpio_dt_spec kLockSimIndicatorLed = GPIO_DT_SPEC_GET(DT_ALIAS(lock_sim_indicator), gpios); + +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + +} // namespace + void LockSim::Init(LockStateChangeCallback callback) { mLockStateChangeCallback = callback; @@ -26,6 +47,12 @@ void LockSim::Init(LockStateChangeCallback callback) k_timer_init(&mAutoRelockTimer, &LockSim::AutoRelockTimerEventHandler, nullptr); k_timer_user_data_set(&mAutoRelockTimer, this); #endif // CONFIG_DOOR_LOCK_LOCK_SIM_AUTO_RELOCK + +#ifdef CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + VerifyOrDie(gpio_is_ready_dt(&kLockSimIndicatorLed), "Lock simulator indicator GPIO not ready"); + VerifyOrDie(gpio_pin_configure_dt(&kLockSimIndicatorLed, GPIO_OUTPUT_INACTIVE) == 0, + "Failed to configure lock simulator indicator GPIO"); +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR } bool LockSim::Lock(OperationSource source) @@ -47,7 +74,7 @@ void LockSim::StartOperation(OperationSource source, ReaderStateByte state) mSource = source; mState = state; - k_work_submit(&mNotifyWork); + std::ignore = AliroWorkSubmit(&mNotifyWork); k_timer_start(&mActuatorTimer, K_MSEC(kActuatorMovementTimeMs), K_NO_WAIT); } @@ -75,7 +102,7 @@ void LockSim::ActuatorTimerEventHandler() } if (prevState != mState) { - k_work_submit(&mNotifyWork); + std::ignore = AliroWorkSubmit(&mNotifyWork); } } @@ -90,9 +117,15 @@ void LockSim::NotifyWorkHandler() switch (mState) { case ReaderStateByte::Secured: LOG_INF("Locking the lock completed"); +#ifdef CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + gpio_pin_set_dt(&kLockSimIndicatorLed, kLedOff); +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR break; case ReaderStateByte::Unsecured: LOG_INF("Unlocking the lock completed"); +#ifdef CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR + gpio_pin_set_dt(&kLockSimIndicatorLed, kLedOn); +#endif // CONFIG_DOOR_LOCK_LOCK_SIM_INDICATOR #ifdef CONFIG_DOOR_LOCK_LOCK_SIM_AUTO_RELOCK StartAutoRelock(); #endif // CONFIG_DOOR_LOCK_LOCK_SIM_AUTO_RELOCK diff --git a/app/src/aliro/lock_sim/lock_sim_instance.h b/app/src/aliro/lock_sim/lock_sim_instance.h new file mode 100644 index 00000000..187d74df --- /dev/null +++ b/app/src/aliro/lock_sim/lock_sim_instance.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +#pragma once + +#include "lock_sim.h" + +namespace Aliro { + +/** + * @brief Get the LockSim instance. + * + * @return The LockSim instance. + */ +inline LockSim &LockSimInstance() +{ + static LockSim lockSim; + return lockSim; +} + +} // namespace Aliro diff --git a/app/src/aliro/platform/CMakeLists.txt b/app/src/aliro/platform/CMakeLists.txt index e72da348..8555cd06 100644 --- a/app/src/aliro/platform/CMakeLists.txt +++ b/app/src/aliro/platform/CMakeLists.txt @@ -6,12 +6,13 @@ zephyr_include_directories(.) -add_subdirectory(nfc_transport_impl) -add_subdirectory(logger) +zephyr_library_sources(timer.cpp) -if(CONFIG_DOOR_LOCK_BLE_UWB OR CONFIG_DOOR_LOCK_DFU_BLE_SMP OR CONFIG_DOOR_LOCK_BLE_NUS) +add_subdirectory(crypto) +add_subdirectory(nfc) + +if(CONFIG_BT) add_subdirectory(ble) endif() add_subdirectory_ifdef(CONFIG_DOOR_LOCK_BLE_UWB uwb_impl) -add_subdirectory_ifdef(CONFIG_ACCESS_DECISION_INDICATOR access_decision_indicator) diff --git a/app/src/aliro/platform/Kconfig b/app/src/aliro/platform/Kconfig index d8f9e442..36f5e672 100644 --- a/app/src/aliro/platform/Kconfig +++ b/app/src/aliro/platform/Kconfig @@ -4,13 +4,13 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -rsource "access_decision_indicator/Kconfig" -rsource "nfc_transport_impl/Kconfig" +rsource "crypto/Kconfig" +rsource "nfc/Kconfig" if DOOR_LOCK_BLE_UWB rsource "uwb_impl/Kconfig" endif # DOOR_LOCK_BLE_UWB -if DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS +if BT rsource "ble/Kconfig" -endif # DOOR_LOCK_BLE_UWB || DOOR_LOCK_DFU_BLE_SMP || DOOR_LOCK_BLE_NUS +endif # BT diff --git a/app/src/aliro/platform/access_decision_indicator/Kconfig b/app/src/aliro/platform/access_decision_indicator/Kconfig deleted file mode 100644 index da278698..00000000 --- a/app/src/aliro/platform/access_decision_indicator/Kconfig +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) 2025 Nordic Semiconductor ASA -# -# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause -# - -config ACCESS_DECISION_INDICATOR - bool "Enable access decision indicator" - default y if !CHIP - -config RESET_ACCESS_DECISION_INDICATOR_STATE_DELAY_MS - int "Access decision indicator reset state delay (ms)" - depends on ACCESS_DECISION_INDICATOR - default 1000 - help - Specifies how long (in milliseconds) the access indicator (e.g. LED) remains active before automatically - resetting to its default state. This is useful to provide a visual indication of the access decision made - by a Aliro Access Manager (e.g. LED indication). diff --git a/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.cpp b/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.cpp deleted file mode 100644 index c95dda61..00000000 --- a/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#include "access_decision_indicator.h" - -#include "aliro/utils.h" - -#include -#include - -namespace { - -constexpr int kDelayMs{ CONFIG_RESET_ACCESS_DECISION_INDICATOR_STATE_DELAY_MS }; -constexpr int kLedOn{ 1 }; -constexpr int kLedOff{ 0 }; -constexpr gpio_dt_spec kAccessGrantedLed = GPIO_DT_SPEC_GET(DT_ALIAS(access_decision_indicator), gpios); - -static K_WORK_DELAYABLE_DEFINE(ResetIndicatorStateWork, - []([[maybe_unused]] k_work *) { (void)gpio_pin_set_dt(&kAccessGrantedLed, kLedOff); }); - -} // namespace - -namespace Aliro::Access::Indicator { - -AliroError InitAccessDecisionIndicator() -{ - VerifyOrReturnStatus(gpio_is_ready_dt(&kAccessGrantedLed), ALIRO_ERROR_INTERNAL); - VerifyOrReturnStatus(gpio_pin_configure_dt(&kAccessGrantedLed, GPIO_OUTPUT_INACTIVE) == 0, - ALIRO_ERROR_INTERNAL); - - return ALIRO_NO_ERROR; -} - -void SignalAccessGranted() -{ - (void)gpio_pin_set_dt(&kAccessGrantedLed, kLedOn); - (void)k_work_schedule(&ResetIndicatorStateWork, K_MSEC(kDelayMs)); -} - -} // namespace Aliro::Access::Indicator diff --git a/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.h b/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.h deleted file mode 100644 index c1d506b2..00000000 --- a/app/src/aliro/platform/access_decision_indicator/access_decision_indicator.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include - -namespace Aliro::Access::Indicator { - -/** - * @brief Initializes a access decision indicator (e.g LED). - * This function sets up the access decision indicator to be used - * when an access decision is made. - * - * @return ALIRO_NO_ERROR on success, or an error code on failure. - */ -AliroError InitAccessDecisionIndicator(); - -/** - * @brief Signals that access has been granted. - * This function activates the access decision indicator (e.g LED) - * to indicate that access has been granted. - * It also schedules a work to reset the indicator state after a delay. - */ -void SignalAccessGranted(); - -} // namespace Aliro::Access::Indicator diff --git a/app/src/aliro/platform/ble/CMakeLists.txt b/app/src/aliro/platform/ble/CMakeLists.txt index f19e464a..a1bae64c 100644 --- a/app/src/aliro/platform/ble/CMakeLists.txt +++ b/app/src/aliro/platform/ble/CMakeLists.txt @@ -6,10 +6,15 @@ zephyr_include_directories(.) - add_subdirectory_ifdef(CONFIG_DOOR_LOCK_BLE_UWB gatt_server) add_subdirectory_ifdef(CONFIG_DOOR_LOCK_BLE_UWB l2cap_server) -file(GLOB ble_src CONFIGURE_DEPENDS *.cpp) +# BLE Manager (always included for BT builds) +zephyr_library_sources(ble_manager.cpp) -zephyr_library_sources(${ble_src}) +# BLE Advertising Arbiter - select implementation based on Matter support +if(CONFIG_CHIP) + zephyr_library_sources(ble_advertising_arbiter_chip.cpp) +else() + zephyr_library_sources(ble_advertising_arbiter.cpp) +endif() diff --git a/app/src/aliro/platform/ble/ble_advertising_arbiter.cpp b/app/src/aliro/platform/ble/ble_advertising_arbiter.cpp new file mode 100644 index 00000000..3a6615b5 --- /dev/null +++ b/app/src/aliro/platform/ble/ble_advertising_arbiter.cpp @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/** + * @file + * BLE Advertising Arbiter implementation for non-Matter builds. + * + * This implementation directly manages BLE advertising using Zephyr's bt_le_adv_* APIs. + * It is compiled only when CONFIG_CHIP is not enabled. + */ + +#include "ble_advertising_arbiter.h" + +#include "aliro/utils.h" +#include "mutex_guard.h" + +#include +#include +#include + +#include +#include +#include +#include + +LOG_MODULE_REGISTER(BleAdvArbiter, CONFIG_DOOR_LOCK_BLE_LOG_LEVEL); + +namespace DoorLock::Interface::BleAdvertisingArbiter { + +namespace { + +K_MUTEX_DEFINE(sMutex); + +// Registered requests per component +std::array sRequests{}; + +// Currently active (advertising) request +Request *sActiveRequest{ nullptr }; + +// Find the highest priority request based on Component enum order (lower index = higher priority) +std::pair FindTopPriorityRequest() +{ + for (size_t idx = 0; idx < kNumberOfComponents; ++idx) { + if (sRequests[idx]) { + return { sRequests[idx], static_cast(idx) }; + } + } + + return { nullptr, Component::None }; +} + +// Get the component that is currently advertising +Component GetActiveComponent() +{ + for (size_t idx = 0; idx < kNumberOfComponents; ++idx) { + if (sRequests[idx] == sActiveRequest) { + return static_cast(idx); + } + } + return Component::None; +} + +AliroError StopAdvertising() +{ + VerifyOrReturnStatus(sActiveRequest, ALIRO_NO_ERROR, LOG_INF("Currently not advertising")); + + int err = bt_le_adv_stop(); + VerifyOrReturnStatus(err == 0, AliroError::FromInt(err), LOG_ERR("Failed to stop advertising: %d", err)); + + LOG_INF("Stopped advertising for %s", ComponentToString(GetActiveComponent())); + + sActiveRequest = nullptr; + + return ALIRO_NO_ERROR; +} + +size_t GetConnectionCount() +{ + size_t count = 0; + + bt_conn_foreach( + BT_CONN_TYPE_ALL, + [](bt_conn *conn, void *data) { + bt_conn_info info{}; + if (bt_conn_get_info(conn, &info) == 0 && info.state == BT_CONN_STATE_CONNECTED) { + (*static_cast(data))++; + } + }, + &count); + + return count; +} + +AliroError StartAdvertising(Component component, Request &request) +{ + if ((request.mOptions & BT_LE_ADV_OPT_CONN) && GetConnectionCount() >= CONFIG_BT_MAX_CONN) { + LOG_WRN("Cannot start connectable advertising: max connections reached"); + return ALIRO_NO_MEMORY; + } + + bt_le_adv_param advParam = + BT_LE_ADV_PARAM_INIT(request.mOptions, request.mMinInterval, request.mMaxInterval, nullptr); + + int err = bt_le_adv_start(&advParam, request.mAdvertisingData, std::size(request.mAdvertisingData), + request.mScanResponseData, std::size(request.mScanResponseData)); + + VerifyOrReturnStatus(err == 0, AliroError::FromInt(err), + LOG_ERR("Failed to start advertising for %s: %d", ComponentToString(component), err)); + + sActiveRequest = &request; + + LOG_INF("Started advertising for %s", ComponentToString(component)); + + return ALIRO_NO_ERROR; +} + +} // namespace + +AliroError InsertRequest(Component component, Request &request) +{ + MutexGuard lock{ sMutex }; + + const auto componentIdx = static_cast(component); + sRequests[componentIdx] = &request; + + auto [top, topComponent] = FindTopPriorityRequest(); + VerifyOrReturnStatus(top, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to find top priority request")); + + // Try to update advertising data first. + // If advertising is not active, bt_le_adv_update_data returns -EAGAIN and we start advertising. + int err = bt_le_adv_update_data(top->mAdvertisingData, std::size(top->mAdvertisingData), top->mScanResponseData, + std::size(top->mScanResponseData)); + + if (err == 0) { + sActiveRequest = top; + LOG_INF("Advertising data updated successfully for %s", ComponentToString(topComponent)); + return ALIRO_NO_ERROR; + } else if (err == -EAGAIN) { + return StartAdvertising(topComponent, *top); + } + + LOG_ERR("Failed to update advertising data for %s: %d", ComponentToString(topComponent), err); + + return AliroError::FromInt(err); +} + +AliroError CancelRequest(Component component) +{ + MutexGuard lock{ sMutex }; + + const auto componentIdx = static_cast(component); + Request *requestToCancel = sRequests[componentIdx]; + + // If the cancelled request is currently active, stop advertising + if (sActiveRequest == requestToCancel) { + ReturnErrorOnFailure(StopAdvertising()); + } + + sRequests[componentIdx] = nullptr; + + // Start advertising for the next highest priority request, if any + auto [newTop, newTopComponent] = FindTopPriorityRequest(); + if (!newTop) { + LOG_INF("No more advertising requests pending"); + return ALIRO_NO_ERROR; + } + + return StartAdvertising(newTopComponent, *newTop); +} + +} // namespace DoorLock::Interface::BleAdvertisingArbiter diff --git a/app/src/aliro/platform/ble/ble_advertising_arbiter.h b/app/src/aliro/platform/ble/ble_advertising_arbiter.h new file mode 100644 index 00000000..2407225f --- /dev/null +++ b/app/src/aliro/platform/ble/ble_advertising_arbiter.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include "aliro/errors.h" + +#include + +#include + +namespace DoorLock::Interface::BleAdvertisingArbiter { + +/** + * @file + * BLE Advertising Arbiter for the Door Lock application. + * + * This module coordinates BLE advertising between different application components + * (Aliro, SMP DFU, NUS). When multiple components request BLE advertising at the + * same time, the arbiter selects the one with the highest priority based on the + * Component enum order (Aliro > Smp > Nus) and starts BLE advertising using + * parameters defined in the winning request. + * + * Two implementations exist: + * - Non-Matter (ble_advertising_arbiter.cpp): Directly manages bt_le_adv_* calls + * - Matter (ble_advertising_arbiter_chip.cpp): Delegates to Matter's BLEAdvertisingArbiter + * + * The appropriate implementation is selected at compile time based on CONFIG_CHIP. + */ + +/** + * @brief BLE advertising component identifiers. + * + * Components are ordered by default priority (lower value = higher priority). + */ +enum class Component : uint8_t { + Aliro, ///< Aliro BLE/UWB service + Smp, ///< SMP DFU service + Nus, ///< Nordic UART Service + None ///< None +}; + +/** + * @brief Number of components. + */ +static constexpr size_t kNumberOfComponents{ static_cast(Component::None) }; + +/** + * @brief Convert component enum to string for logging. + */ +constexpr const char *ComponentToString(Component component) +{ + switch (component) { + case Component::Aliro: + return "Aliro"; + case Component::Smp: + return "SMP"; + case Component::Nus: + return "NUS"; + case Component::None: + return "None"; + default: + return "Unknown"; + } +} + +/** + * @brief BLE advertising request structure. + */ +struct Request { + uint32_t mOptions; ///< Advertising options (BT_LE_ADV_OPT_XXX) + uint16_t mMinInterval; ///< Minimum advertising interval (0.625 ms units) + uint16_t mMaxInterval; ///< Maximum advertising interval (0.625 ms units) + bt_data mAdvertisingData[2]; ///< Advertising data buffer + bt_data mScanResponseData[1]; ///< Scan response data buffer +}; + +/** + * @brief Request BLE advertising for a component. + * + * If the request has higher priority than other active requests, BLE + * advertising is restarted using the new request's parameters. + * + * @note This function does not take ownership of the Request object, so the object + * must not get destroyed and shall remain valid after the call until the Request + * is cancelled by CancelRequest(). + * + * @param component The component making the request. + * @param request The advertising request parameters. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ +AliroError InsertRequest(Component component, Request &request); + +/** + * @brief Cancel BLE advertising request for a component. + * + * If the cancelled request was the top-priority one, advertising is + * restarted with the next highest-priority request, or stopped if + * no other requests are active. + * + * @param component The component cancelling its request. + */ +AliroError CancelRequest(Component component); + +} // namespace DoorLock::Interface::BleAdvertisingArbiter diff --git a/app/src/aliro/platform/ble/ble_advertising_arbiter_chip.cpp b/app/src/aliro/platform/ble/ble_advertising_arbiter_chip.cpp new file mode 100644 index 00000000..ec1a034a --- /dev/null +++ b/app/src/aliro/platform/ble/ble_advertising_arbiter_chip.cpp @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/** + * @file + * BLE Advertising Arbiter implementation for Matter builds. + * + * This implementation delegates to Matter's BLEAdvertisingArbiter to ensure + * compatibility with Matter's BLE requirements. It is compiled only when + * CONFIG_CHIP is enabled. + */ + +#include "ble_advertising_arbiter.h" + +#include +#include + +#include +#include + +#include +#include + +// Undefine Matter macros that conflict with Aliro utilities +#ifdef ReturnErrorOnFailure +#undef ReturnErrorOnFailure +#endif + +#ifdef VerifyOrReturnValue +#undef VerifyOrReturnValue +#endif + +#ifdef VerifyOrExit +#undef VerifyOrExit +#endif + +#ifdef VerifyOrDie +#undef VerifyOrDie +#endif + +#include "aliro/utils.h" + +LOG_MODULE_REGISTER(BleAdvArbiter, CONFIG_DOOR_LOCK_BLE_LOG_LEVEL); + +using namespace ::chip; +using namespace ::chip::DeviceLayer; + +namespace DoorLock::Interface::BleAdvertisingArbiter { + +namespace { + +struct RequestSlot { + Request *mRequest{ nullptr }; + chip::DeviceLayer::BLEAdvertisingArbiter::Request mMatterRequest{}; +}; + +std::array sSlots{}; + +} // namespace + +AliroError InsertRequest(Component component, Request &request) +{ + const auto idx = static_cast(component); + VerifyOrReturnStatus(idx < kNumberOfComponents, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid component")); + + auto &slot = sSlots[idx]; + + slot.mRequest = &request; + + // Map to Matter arbiter's request structure + // Priority is based on Component enum order (lower index = higher priority) + auto &matterReq = slot.mMatterRequest; + matterReq.priority = static_cast(idx); + matterReq.options = request.mOptions; + matterReq.minInterval = request.mMinInterval; + matterReq.maxInterval = request.mMaxInterval; + matterReq.advertisingData = Span(request.mAdvertisingData, std::size(request.mAdvertisingData)); + matterReq.scanResponseData = + Span(request.mScanResponseData, std::size(request.mScanResponseData)); + matterReq.onStarted = nullptr; + matterReq.onStopped = nullptr; + + // Forward to Matter's arbiter + PlatformMgr().LockChipStack(); + CHIP_ERROR err = chip::DeviceLayer::BLEAdvertisingArbiter::InsertRequest(matterReq); + PlatformMgr().UnlockChipStack(); + + VerifyOrReturnStatus(err == CHIP_NO_ERROR, ALIRO_ERROR_INTERNAL, + LOG_ERR("Failed to insert advertising request for %s", ComponentToString(component))); + + LOG_INF("Inserted advertising request for %s", ComponentToString(component)); + + return ALIRO_NO_ERROR; +} + +AliroError CancelRequest(Component component) +{ + const auto idx = static_cast(component); + VerifyOrReturnStatus(idx < kNumberOfComponents, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid component")); + + auto &slot = sSlots[idx]; + VerifyOrReturnStatus(slot.mRequest, ALIRO_NO_ERROR, LOG_ERR("No request to cancel")); + + // Forward to Matter's arbiter + PlatformMgr().LockChipStack(); + chip::DeviceLayer::BLEAdvertisingArbiter::CancelRequest(slot.mMatterRequest); + PlatformMgr().UnlockChipStack(); + + slot.mRequest = nullptr; + + LOG_INF("Cancelled advertising request for %s", ComponentToString(component)); + + return ALIRO_NO_ERROR; +} + +} // namespace DoorLock::Interface::BleAdvertisingArbiter diff --git a/app/src/aliro/platform/ble/ble_manager_impl.cpp b/app/src/aliro/platform/ble/ble_manager.cpp similarity index 61% rename from app/src/aliro/platform/ble/ble_manager_impl.cpp rename to app/src/aliro/platform/ble/ble_manager.cpp index 92dcfab3..3337f4e4 100644 --- a/app/src/aliro/platform/ble/ble_manager_impl.cpp +++ b/app/src/aliro/platform/ble/ble_manager.cpp @@ -4,14 +4,17 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#include "ble_manager_impl.h" +#include "ble_manager.h" -#include "aliro/mutex_guard.h" +#include "aliro/aliro.h" +#include "aliro/aliro_work/aliro_work.h" +#include "ble_advertising_arbiter.h" +#include "mutex_guard.h" #ifdef CONFIG_DOOR_LOCK_BLE_UWB #include "gatt_server/gatt_server.h" #include "l2cap_server/l2cap_server.h" -#include "uwb/uwb.h" +#include "uwb.h" #include "uwb_impl.h" #endif // CONFIG_DOOR_LOCK_BLE_UWB @@ -28,52 +31,18 @@ using namespace Aliro::BtNus; #include #include -#ifdef CONFIG_CHIP - -#include -#include - -#ifdef ReturnErrorOnFailure -#undef ReturnErrorOnFailure -#endif - -#ifdef VerifyOrReturnValue -#undef VerifyOrReturnValue -#endif - -#ifdef VerifyOrExit -#undef VerifyOrExit -#endif - -#ifdef VerifyOrDie -#undef VerifyOrDie -#endif - -#endif // CONFIG_CHIP - #include "aliro/utils.h" -LOG_MODULE_REGISTER(BLEManagerImpl, CONFIG_DOOR_LOCK_BLE_LOG_LEVEL); +LOG_MODULE_REGISTER(BleManager, CONFIG_DOOR_LOCK_BLE_LOG_LEVEL); -#ifdef CONFIG_CHIP - -using namespace ::chip; -using namespace ::chip::DeviceLayer; - -namespace { - -BLEAdvertisingArbiter::Request sAdvertisingRequest{}; - -} // namespace - -#endif // CONFIG_CHIP - -namespace Aliro::BleInterface { +namespace Aliro { namespace { K_MUTEX_DEFINE(sMutex); +namespace BleAdvArbiter = DoorLock::Interface::BleAdvertisingArbiter; + constexpr uint8_t GetAdvertisingDataFieldType(BleTypes::AdvertisingDataFieldType type) { switch (type) { @@ -97,7 +66,7 @@ constexpr uint8_t GetAdvertisingDataFieldType(BleTypes::AdvertisingDataFieldType #ifndef CONFIG_CHIP -int BleManagerImpl::CreateRandomStaticAddress() +int BleManager::CreateRandomStaticAddress() { // Generate a random static address for the default identity. // For nRF5340 this must be done before bt_enable() as after that updating the default identity is not possible. @@ -110,12 +79,12 @@ int BleManagerImpl::CreateRandomStaticAddress() return ALIRO_NO_ERROR; } -void BleManagerImpl::Connected(bt_conn *connId, uint8_t error) +void BleManager::Connected(bt_conn *connId, uint8_t error) { mConnectionCount++; ResumeAdvertising(); - VerifyOrReturn(connId, LOG_ERR("Connection ID is null")); + VerifyOrReturn(connId, LOG_ERR("Connection handle is null")); VerifyOrReturn(error == 0, LOG_ERR("Connection failed (error: %d, conn: %p)", error, connId)); LOG_DBG("Connected (conn: %p)", connId); @@ -131,16 +100,10 @@ void BleManagerImpl::Connected(bt_conn *connId, uint8_t error) VerifyOrReturn(refConn, LOG_ERR("Failed to reference connection (conn: %p)", connId)); } -void BleManagerImpl::Disconnected(bt_conn *connId, uint8_t reason) +void BleManager::Disconnected(bt_conn *connId, uint8_t reason) { mConnectionCount--; -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - - L2capServer::Instance().FreeL2capChannel(connId); - -#endif // CONFIG_DOOR_LOCK_BLE_UWB - bt_conn_unref(connId); #ifdef CONFIG_DOOR_LOCK_BLE_NUS @@ -151,7 +114,7 @@ void BleManagerImpl::Disconnected(bt_conn *connId, uint8_t reason) } // This callback is called when the BT is disconnected and also when the advertising is stopped. -void BleManagerImpl::Recycled() +void BleManager::Recycled() { LOG_DBG("Connection recycled"); @@ -160,9 +123,10 @@ void BleManagerImpl::Recycled() #ifdef CONFIG_BT_SMP -void BleManagerImpl::SecurityChanged([[maybe_unused]] bt_conn *connId, bt_security_t level, enum bt_security_err error) +void BleManager::SecurityChanged(bt_conn *connId, bt_security_t level, bt_security_err error) { - VerifyOrReturn(error == 0, LOG_ERR("Security failed (error: %d, conn: %p)", error, connId)); + VerifyOrReturn(error == BT_SECURITY_ERR_SUCCESS, + LOG_WRN("Security failed (error: %d, conn: %p)", static_cast(error), connId)); #ifdef CONFIG_DOOR_LOCK_BLE_NUS NUSService::Instance().SecurityChanged(connId, level, error); @@ -173,20 +137,20 @@ void BleManagerImpl::SecurityChanged([[maybe_unused]] bt_conn *connId, bt_securi #endif // CONFIG_BT_SMP -void BleManagerImpl::ResumeAdvertising() +void BleManager::ResumeAdvertising() { // Allow to resume advertising only if it is enabled. VerifyOrReturn(IsAdvertising(), LOG_DBG("Skipped, advertising is disabled")); - const auto workErr = k_work_submit(&mAdvResumeWork); + const auto workErr = AliroWorkSubmit(&mAdvResumeWork); VerifyOrReturn(workErr >= 0, LOG_ERR("Failed to submit work (error: %d)", workErr)); } -void BleManagerImpl::ResumeAdvertisingHandler() +void BleManager::ResumeAdvertisingHandler() { VerifyOrReturn(mConnectionCount < CONFIG_BT_MAX_CONN, LOG_DBG("Max connections reached")); - auto error = StartAdvertising(); + auto error = RestartAdvertising(); VerifyOrReturn(error == ALIRO_NO_ERROR || error == ALIRO_INVALID_STATE, LOG_ERR("Failed to resume advertising")); @@ -195,7 +159,7 @@ void BleManagerImpl::ResumeAdvertisingHandler() #else // CONFIG_CHIP -AliroError BleManagerImpl::GetRandomStaticAddress() +AliroError BleManager::GetRandomStaticAddress() { static_assert(CONFIG_BT_ID_MAX == 1, "CONFIG_BT_ID_MAX must be 1"); @@ -209,7 +173,7 @@ AliroError BleManagerImpl::GetRandomStaticAddress() #endif // CONFIG_CHIP -AliroError BleManagerImpl::SetAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type) +AliroError BleManager::SetAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type) { VerifyOrReturnStatus(data.mLength <= mAdvertisingServiceData.size(), ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid service data size")); @@ -221,14 +185,14 @@ AliroError BleManagerImpl::SetAdvertisingData(const ConstData &data, BleTypes::A return ALIRO_NO_ERROR; } -AliroError BleManagerImpl::Send(ConnectionHandle handle, Data data) const +AliroError BleManager::Send(ConnectionHandle handle, Data data) const { #ifdef CONFIG_DOOR_LOCK_BLE_UWB VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); - VerifyOrReturnStatus(handle, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid connection handle")); + VerifyOrReturnStatus(handle.IsBle(), ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid connection handle")); - return L2capServer::Instance().Send(static_cast(handle), data.mData, data.mLength); + return L2capServer::Instance().Send(handle.GetBtConn(), data.mData, data.mLength); #else // CONFIG_DOOR_LOCK_BLE_UWB @@ -237,20 +201,20 @@ AliroError BleManagerImpl::Send(ConnectionHandle handle, Data data) const #endif // CONFIG_DOOR_LOCK_BLE_UWB } -AliroError BleManagerImpl::Disconnect(ConnectionHandle handle) +AliroError BleManager::Terminate(ConnectionHandle handle) { VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); - VerifyOrReturnStatus(handle, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid connection handle")); + VerifyOrReturnStatus(handle.IsBle(), ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid connection handle")); bt_conn_info info{}; - VerifyOrReturnStatus(bt_conn_get_info(static_cast(handle), &info) == 0, ALIRO_ERROR_INTERNAL, + VerifyOrReturnStatus(bt_conn_get_info(handle.GetBtConn(), &info) == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to get connection info")); VerifyAndExit(info.state != BT_CONN_STATE_CONNECTED, LOG_DBG("No active connection found")); - LOG_INF("Disconnecting (handle: %p)", handle); + LOG_INF("Disconnecting (handle: %p)", handle.GetRaw()); { - int error = bt_conn_disconnect(static_cast(handle), BT_HCI_ERR_REMOTE_USER_TERM_CONN); + int error = bt_conn_disconnect(handle.GetBtConn(), BT_HCI_ERR_REMOTE_USER_TERM_CONN); VerifyOrReturnStatus(error == 0 || error == -ENOTCONN, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to disconnect (error: %d)", error)); } @@ -259,9 +223,9 @@ AliroError BleManagerImpl::Disconnect(ConnectionHandle handle) return ALIRO_NO_ERROR; } -void BleManagerImpl::DisconnectAll() +AliroError BleManager::DisconnectAll() { - VerifyOrReturn(IsInitialized(), LOG_ERR("BLE manager not initialized")); + VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); bt_conn_foreach( BT_CONN_TYPE_ALL, @@ -269,16 +233,16 @@ void BleManagerImpl::DisconnectAll() bt_conn_disconnect(conn, BT_HCI_ERR_REMOTE_USER_TERM_CONN); }, nullptr); + + return ALIRO_NO_ERROR; } -AliroError BleManagerImpl::Init(const PlatformTransportCallbacks &callbacks) +AliroError BleManager::Init() { MutexGuard lock{ sMutex }; VerifyOrReturnStatus(!IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager already initialized")); - mTransportCallbacks = callbacks; - #ifndef CONFIG_CHIP k_work_init(&mAdvResumeWork, []([[maybe_unused]] k_work *) { Instance().ResumeAdvertisingHandler(); }); @@ -330,19 +294,12 @@ AliroError BleManagerImpl::Init(const PlatformTransportCallbacks &callbacks) L2capServer::Callbacks l2capCallbacks = { .mOnConnected = - [](bt_conn *conn) { - VerifyAndCall(Instance().mTransportCallbacks.mOnTransportReady, - static_cast(conn)); - }, + [](bt_conn *conn) { AliroStack::Instance().CreateSession(ConnectionHandle::Ble(conn)); }, .mOnDisconnected = - [](bt_conn *conn) { - VerifyAndCall(Instance().mTransportCallbacks.mOnTransportLoss, - static_cast(conn)); - }, + [](bt_conn *conn) { AliroStack::Instance().DestroySession(ConnectionHandle::Ble(conn)); }, .mOnDataReceived = [](bt_conn *conn, uint8_t *data, size_t length) { - VerifyAndCall(Instance().mTransportCallbacks.mOnDataReceived, - static_cast(conn), { data, length }); + AliroStack::Instance().HandleSessionData(ConnectionHandle::Ble(conn), { data, length }); }, }; @@ -358,7 +315,7 @@ AliroError BleManagerImpl::Init(const PlatformTransportCallbacks &callbacks) return ALIRO_NO_ERROR; } -AliroError BleManagerImpl::GetAddress(BleTypes::BleAddress &address) const +AliroError BleManager::GetAddress(BleTypes::BleAddress &address) const { VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); std::copy_n(mAddress.a.val, BleTypes::kBleAddressSize, address.data()); @@ -366,7 +323,7 @@ AliroError BleManagerImpl::GetAddress(BleTypes::BleAddress &address) const return ALIRO_NO_ERROR; } -AliroError BleManagerImpl::GetTxPowerLevel(BleTypes::TxPowerLevel &txPowerLevel) const +AliroError BleManager::GetTxPowerLevel(BleTypes::TxPowerLevel &txPowerLevel) const { VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); @@ -407,7 +364,7 @@ AliroError BleManagerImpl::GetTxPowerLevel(BleTypes::TxPowerLevel &txPowerLevel) return ALIRO_NO_ERROR; } -size_t BleManagerImpl::GetMaxSessions() const +size_t BleManager::GetMaxSessions() const { #ifdef CONFIG_DOOR_LOCK_BLE_UWB_MAX_SESSIONS @@ -420,143 +377,94 @@ size_t BleManagerImpl::GetMaxSessions() const #endif // CONFIG_DOOR_LOCK_BLE_UWB_MAX_SESSIONS } -AliroError BleManagerImpl::StartAdvertising(const ConstData &data, BleTypes::AdvertisingDataFieldType type) +AliroError BleManager::StartAdvertising(const BleTypes::AdvertisingServiceData &data) +{ + BleTypes::AdvertisingService advertisingService{}; + advertisingService.mAdvertisingServiceData = data; + + return StartAdvertising({ reinterpret_cast(&advertisingService), sizeof(advertisingService) }, + BleTypes::AdvertisingDataFieldType::Uuid16); +} + +AliroError BleManager::StartAdvertising(const ConstData &data, BleTypes::AdvertisingDataFieldType type) { VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); ReturnErrorOnFailure(SetAdvertisingData(data, type)); - return StartAdvertising(); + return RestartAdvertising(); } -AliroError BleManagerImpl::StartAdvertising() +AliroError BleManager::RestartAdvertising() { MutexGuard lock{ sMutex }; VerifyOrReturnStatus(IsInitialized(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not initialized")); - mAdvertisingData[kAdvertisingFlagsIndex] = + mBleAdvertisingRequest = BleAdvArbiter::Request{ .mOptions = kAdvertisingOptions, + .mMinInterval = kIntervalMin, + .mMaxInterval = kIntervalMax }; + + // Set advertising data buffers + mBleAdvertisingRequest.mAdvertisingData[0] = BT_DATA(BT_DATA_FLAGS, &kAdvertisingFlags, sizeof(kAdvertisingFlags)); - mAdvertisingData[kAdvertisingServiceDataIndex] = + mBleAdvertisingRequest.mAdvertisingData[1] = BT_DATA(GetAdvertisingDataFieldType(mAdvertisingDataFieldType), mAdvertisingServiceData.data(), mAdvertisingServiceDataSize); const char *name = bt_get_name(); - mScanResponseData[kScanResponseIndex] = + mBleAdvertisingRequest.mScanResponseData[0] = BT_DATA(BT_DATA_NAME_COMPLETE, name, static_cast(strlen(name))); -#ifndef CONFIG_CHIP - - bt_le_adv_param advParam = BT_LE_ADV_PARAM_INIT(BT_LE_ADV_OPT_CONN, kIntervalMin, kIntervalMax, NULL); - - int error = bt_le_adv_start(&advParam, mAdvertisingData.data(), mAdvertisingData.size(), - mScanResponseData.data(), mScanResponseData.size()); - VerifyOrReturnStatus(error == 0 || error == -EALREADY, ALIRO_ERROR_INTERNAL, - LOG_ERR("Cannot start advertising (err %d)", error)); - if (error == -EALREADY) { - LOG_INF("Advertising already started"); - return ALIRO_NO_ERROR; - } - -#else // CONFIG_CHIP - - sAdvertisingRequest.priority = kAdvertisingPriority; - sAdvertisingRequest.options = kAdvertisingOptions; - sAdvertisingRequest.minInterval = kIntervalMin; - sAdvertisingRequest.maxInterval = kIntervalMax; - sAdvertisingRequest.advertisingData = Span(mAdvertisingData); - sAdvertisingRequest.scanResponseData = Span(mScanResponseData); - - sAdvertisingRequest.onStopped = []() { - Instance().SetState(BleManagerState::Initialized); - LOG_DBG("BLE advertising stopped"); - }; - - PlatformMgr().LockChipStack(); - CHIP_ERROR ret = BLEAdvertisingArbiter::InsertRequest(sAdvertisingRequest); - PlatformMgr().UnlockChipStack(); - - VerifyOrReturnStatus(ret == CHIP_NO_ERROR, ALIRO_ERROR_INTERNAL, - LOG_ERR("Failed to insert BLE advertising request")); - -#endif // CONFIG_CHIP + AliroError err = BleAdvArbiter::InsertRequest(BleAdvArbiter::Component::Aliro, mBleAdvertisingRequest); + VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, LOG_ERR("Failed to insert Aliro advertising request")); SetState(BleManagerState::Advertising); - LOG_INF("BLE advertising started"); LOG_HEXDUMP_DBG(mAdvertisingServiceData.data(), mAdvertisingServiceDataSize, "Advertising data:"); return ALIRO_NO_ERROR; } -AliroError BleManagerImpl::UpdateAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type) +AliroError BleManager::UpdateAdvertisingData(const BleTypes::AdvertisingServiceData &data) { - VerifyOrReturnStatus(IsAdvertising(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not advertising")); - - ReturnErrorOnFailure(SetAdvertisingData(data, type)); - - mAdvertisingData[kAdvertisingServiceDataIndex] = - BT_DATA(GetAdvertisingDataFieldType(mAdvertisingDataFieldType), mAdvertisingServiceData.data(), - mAdvertisingServiceDataSize); - -#ifndef CONFIG_CHIP + BleTypes::AdvertisingService advertisingService{}; + advertisingService.mAdvertisingServiceData = data; - int error = bt_le_adv_update_data(mAdvertisingData.data(), mAdvertisingData.size(), mScanResponseData.data(), - mScanResponseData.size()); - VerifyOrReturnStatus(error == 0, ALIRO_ERROR_INTERNAL, - LOG_ERR("Cannot update advertising data (err %d)", error)); - -#else // CONFIG_CHIP - - sAdvertisingRequest.advertisingData = Span(mAdvertisingData); - sAdvertisingRequest.scanResponseData = Span(mScanResponseData); + return UpdateAdvertisingData({ reinterpret_cast(&advertisingService), + sizeof(advertisingService) }, + BleTypes::AdvertisingDataFieldType::Uuid16); +} - PlatformMgr().LockChipStack(); - CHIP_ERROR ret = BLEAdvertisingArbiter::InsertRequest(sAdvertisingRequest); - PlatformMgr().UnlockChipStack(); - VerifyOrReturnStatus(ret == CHIP_NO_ERROR, ALIRO_ERROR_INTERNAL, - LOG_ERR("Failed to update BLE advertising data")); +AliroError BleManager::UpdateAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type) +{ + VerifyOrReturnStatus(IsAdvertising(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not advertising")); -#endif // CONFIG_CHIP + ReturnErrorOnFailure(SetAdvertisingData(data, type)); - LOG_INF("BLE advertising service data updated"); - LOG_HEXDUMP_DBG(mAdvertisingServiceData.data(), mAdvertisingServiceDataSize, "Advertising data:"); - return ALIRO_NO_ERROR; + return RestartAdvertising(); } -AliroError BleManagerImpl::StopAdvertising() +AliroError BleManager::StopAdvertising() { MutexGuard lock{ sMutex }; VerifyOrReturnStatus(IsAdvertising(), ALIRO_INVALID_STATE, LOG_ERR("BLE manager not advertising")); -#ifndef CONFIG_CHIP - - int error = bt_le_adv_stop(); - VerifyOrReturnStatus(error == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Cannot stop advertising (err %d)", error)); - -#else // CONFIG_CHIP - - PlatformMgr().LockChipStack(); - BLEAdvertisingArbiter::CancelRequest(sAdvertisingRequest); - PlatformMgr().UnlockChipStack(); - -#endif // CONFIG_CHIP + BleAdvArbiter::CancelRequest(BleAdvArbiter::Component::Aliro); SetState(BleManagerState::Initialized); - LOG_INF("BLE advertising stopped"); - return ALIRO_NO_ERROR; } -ProtocolVersion BleManagerImpl::GetProtocolVersion(ConnectionHandle handle) const +ProtocolVersion BleManager::GetProtocolVersion(ConnectionHandle handle) const { #ifdef CONFIG_DOOR_LOCK_BLE_UWB VerifyOrReturnValue(IsInitialized(), BleTypes::kInvalidProtocolVersion, LOG_ERR("BLE manager not initialized")); - VerifyOrReturnValue(handle, BleTypes::kInvalidProtocolVersion, LOG_ERR("Invalid connection handle")); + VerifyOrReturnValue(handle.IsBle(), BleTypes::kInvalidProtocolVersion, LOG_ERR("Invalid connection handle")); - return L2capServer::Instance().GetBleUwbProtocolVersion(static_cast(handle)); + return L2capServer::Instance().GetBleUwbProtocolVersion(handle.GetBtConn()); #else // CONFIG_DOOR_LOCK_BLE_UWB @@ -565,4 +473,4 @@ ProtocolVersion BleManagerImpl::GetProtocolVersion(ConnectionHandle handle) cons #endif // CONFIG_DOOR_LOCK_BLE_UWB } -} // namespace Aliro::BleInterface +} // namespace Aliro diff --git a/app/src/aliro/platform/ble/ble_manager.h b/app/src/aliro/platform/ble/ble_manager.h new file mode 100644 index 00000000..5faa637a --- /dev/null +++ b/app/src/aliro/platform/ble/ble_manager.h @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include "aliro/ble_types.h" +#include "ble_advertising_arbiter.h" + +#ifdef CONFIG_DOOR_LOCK_BLE_UWB +#include "gatt_server/gatt_server.h" +#endif // CONFIG_DOOR_LOCK_BLE_UWB + +#include "aliro/errors.h" +#include "aliro/interface.h" +#include "aliro/protocol_version.h" +#include "aliro/types.h" + +#include +#include +#include + +#include + +namespace Aliro { + +/** + * @brief BLE Manager. + * + * This class manages the BLE stack and provides BLE control functionality. + */ +class BleManager final { +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + // Allow Interface::Ble functions to access private methods + friend size_t Interface::Ble::GetMaxSessions(); + friend ProtocolVersion Interface::Ble::GetProtocolVersion(ConnectionHandle handle); + // Allow Interface::Session functions to access private methods + friend AliroError Interface::Session::Send(ConnectionHandle handle, Data data); + friend void Interface::Session::HandleTermination(ConnectionHandle handle); +#endif // CONFIG_DOOR_LOCK_BLE_UWB + +public: + /** + * @brief Get the instance of the BLE manager. + * + * @return The instance of the BLE manager. + */ + static BleManager &Instance() + { + static BleManager sInstance; + return sInstance; + } + + /** + * @brief Initialize the BLE manager and Bluetooth stack. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Init(); + + /** + * @brief Start BLE advertising with Aliro service data. + * + * @param data The Aliro advertising service data. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError StartAdvertising(const BleTypes::AdvertisingServiceData &data); + + /** + * @brief Start BLE advertising with custom service data. + * + * @param data The raw service data (e.g., UUID). + * @param type The advertising data field type. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError StartAdvertising(const ConstData &data, BleTypes::AdvertisingDataFieldType type); + + /** + * @brief Stop BLE advertising. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError StopAdvertising(); + + /** + * @brief Disconnect all active BLE connections. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError DisconnectAll(); + + /** + * @brief Update BLE advertising data with Aliro service data while advertising is active. + * + * @param data The updated Aliro advertising service data. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError UpdateAdvertisingData(const BleTypes::AdvertisingServiceData &data); + + /** + * @brief Get the current BLE address. + * + * @param address The structure that will be filled with the current BLE address. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetAddress(BleTypes::BleAddress &address) const; + + /** + * @brief Get the current TX power level. + * + * @param txPowerLevel The structure that will be filled with the current TX power level. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetTxPowerLevel(BleTypes::TxPowerLevel &txPowerLevel) const; + +private: + enum class BleManagerState : uint8_t { Uninitialized, Initialized, Advertising }; + + BleManager() = default; + ~BleManager() = default; + BleManager(const BleManager &) = delete; + BleManager &operator=(const BleManager &) = delete; + BleManager(BleManager &&) = delete; + BleManager &operator=(BleManager &&) = delete; + + // Interface::Ble implementation methods (accessed via friend functions) + /** + * @brief Send data over an established BLE connection. + */ + AliroError Send(ConnectionHandle handle, Data data) const; + /** + * @brief Get the maximum number of concurrent BLE sessions. + */ + size_t GetMaxSessions() const; + /** + * @brief Get the protocol version for a connection. + */ + ProtocolVersion GetProtocolVersion(ConnectionHandle handle) const; + /** + * @brief Terminate a BLE connection (called by stack to disconnect). + */ + AliroError Terminate(ConnectionHandle handle); + + // Bluetooth connection callbacks + void Connected(bt_conn *connId, uint8_t error); + void Disconnected(bt_conn *connId, uint8_t reason); + void Recycled(); +#ifdef CONFIG_BT_SMP + void SecurityChanged(bt_conn *connId, bt_security_t level, enum bt_security_err error); +#endif // CONFIG_BT_SMP + + int CreateRandomStaticAddress(); + [[maybe_unused]] AliroError GetRandomStaticAddress(); + void ResumeAdvertising(); + void ResumeAdvertisingHandler(); + AliroError RestartAdvertising(); + AliroError SetAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type); + AliroError UpdateAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type); + + // currently not used + [[maybe_unused]] bt_ready_cb_t mReadyCb{ nullptr }; + + bt_conn_cb mConnCallbacks{}; + bt_addr_le_t mAddress{}; + [[maybe_unused]] k_work mAdvResumeWork{}; + + static constexpr uint8_t kAdvertisingFlags{ BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR }; + static constexpr uint32_t kIntervalMin{ BT_GAP_ADV_FAST_INT_MIN_2 }; + static constexpr uint32_t kIntervalMax{ BT_GAP_ADV_FAST_INT_MAX_2 }; + static constexpr uint32_t kAdvertisingOptions{ BT_LE_ADV_OPT_CONN }; + + // Legacy BLE ADV packets are limited to 31 bytes, 2 bytes are reserved flags (1 byte for flags, 1 byte for + // service data length). There are 29 bytes left for advertising data. + static constexpr size_t kMaxAdvertisingDataSize{ 29 }; + std::array mAdvertisingServiceData{}; + uint8_t mAdvertisingServiceDataSize{}; + BleTypes::AdvertisingDataFieldType mAdvertisingDataFieldType{ BleTypes::AdvertisingDataFieldType::Uuid16 }; + +#ifdef CONFIG_DOOR_LOCK_BLE_UWB + GattServer mGattServer{}; +#endif // CONFIG_DOOR_LOCK_BLE_UWB + + DoorLock::Interface::BleAdvertisingArbiter::Request mBleAdvertisingRequest{}; + + size_t mConnectionCount{}; + + BleManagerState mState{ BleManagerState::Uninitialized }; + bool IsInitialized() const { return mState >= BleManagerState::Initialized; } + bool IsAdvertising() const { return mState == BleManagerState::Advertising; } + + void SetState(BleManagerState state) { mState = state; } +}; + +} // namespace Aliro diff --git a/app/src/aliro/platform/ble/ble_manager_impl.h b/app/src/aliro/platform/ble/ble_manager_impl.h deleted file mode 100644 index 5b782fef..00000000 --- a/app/src/aliro/platform/ble/ble_manager_impl.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include "aliro/ble_types.h" -#include "aliro/transport_callbacks.h" - -#ifdef CONFIG_DOOR_LOCK_BLE_UWB -#include "gatt_server/gatt_server.h" -#endif // CONFIG_DOOR_LOCK_BLE_UWB - -#include "transport/ble/ble_iface.h" - -#include -#include -#include - -#include - -namespace Aliro::BleInterface { - -class BleManagerImpl : public BleIfc { -public: - static BleManagerImpl &Instance() - { - static BleManagerImpl sInstance; - return sInstance; - } - - AliroError Init(const PlatformTransportCallbacks &callbacks) override; - - AliroError Send(ConnectionHandle handle, Data data) const override; - - AliroError Disconnect(ConnectionHandle handle) override; - - void DisconnectAll() override; - - AliroError StartAdvertising(const ConstData &data, BleTypes::AdvertisingDataFieldType type) override; - AliroError UpdateAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type) override; - AliroError StopAdvertising() override; - - AliroError GetTxPowerLevel(BleTypes::TxPowerLevel &txPowerLevel) const override; - AliroError GetAddress(BleTypes::BleAddress &address) const override; - - size_t GetMaxSessions() const override; - - ProtocolVersion GetProtocolVersion(ConnectionHandle handle) const override; - -private: - enum class BleManagerState : uint8_t { Uninitialized, Initialized, Advertising }; - - BleManagerImpl() = default; - ~BleManagerImpl() final = default; - BleManagerImpl(const BleManagerImpl &) = delete; - BleManagerImpl &operator=(const BleManagerImpl &) = delete; - BleManagerImpl(BleManagerImpl &&) = delete; - BleManagerImpl &operator=(BleManagerImpl &&) = delete; - - // Bluetooth connection callbacks - void Connected(bt_conn *connId, uint8_t error); - void Disconnected(bt_conn *connId, uint8_t reason); - void Recycled(); -#ifdef CONFIG_BT_SMP - void SecurityChanged(bt_conn *connId, bt_security_t level, enum bt_security_err error); -#endif // CONFIG_BT_SMP - - int CreateRandomStaticAddress(); - [[maybe_unused]] AliroError GetRandomStaticAddress(); - void ResumeAdvertising(); - void ResumeAdvertisingHandler(); - AliroError StartAdvertising(); - AliroError SetAdvertisingData(const ConstData &data, BleTypes::AdvertisingDataFieldType type); - - // currently not used - [[maybe_unused]] bt_ready_cb_t mReadyCb{ nullptr }; - - bt_conn_cb mConnCallbacks{}; - bt_addr_le_t mAddress{}; - [[maybe_unused]] k_work mAdvResumeWork{}; - - static constexpr size_t kAdvertisingDataSize{ 2 }; - static constexpr size_t kScanResponseSize{ 1 }; - static constexpr uint32_t kAdvertisingPriority{ 1 }; - static constexpr uint8_t kAdvertisingFlags{ BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR }; - static constexpr uint32_t kIntervalMin{ BT_GAP_ADV_FAST_INT_MIN_2 }; - static constexpr uint32_t kIntervalMax{ BT_GAP_ADV_FAST_INT_MAX_2 }; - static constexpr uint32_t kAdvertisingOptions{ BT_LE_ADV_OPT_CONN }; - static constexpr size_t kAdvertisingFlagsIndex{ 0 }; - static constexpr size_t kAdvertisingServiceDataIndex{ 1 }; - static constexpr size_t kScanResponseIndex{ 0 }; - - // Legacy BLE ADV packets are limited to 31 bytes, 2 bytes are reserved flags (1 byte for flags, 1 byte for - // service data length). There are 29 bytes left for advertising data. - static constexpr size_t kMaxAdvertisingDataSize{ 29 }; - std::array mAdvertisingServiceData{}; - uint8_t mAdvertisingServiceDataSize{}; - BleTypes::AdvertisingDataFieldType mAdvertisingDataFieldType{ BleTypes::AdvertisingDataFieldType::Uuid16 }; - -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - GattServer mGattServer{}; -#endif // CONFIG_DOOR_LOCK_BLE_UWB - - using AdvertisingData = std::array; - using ScanResponseData = std::array; - AdvertisingData mAdvertisingData{}; - ScanResponseData mScanResponseData{}; - - size_t mConnectionCount{}; - - PlatformTransportCallbacks mTransportCallbacks{}; - - BleManagerState mState{ BleManagerState::Uninitialized }; - bool IsInitialized() const { return mState >= BleManagerState::Initialized; } - bool IsAdvertising() const { return mState == BleManagerState::Advertising; } - - void SetState(BleManagerState state) { mState = state; } -}; - -} // namespace Aliro::BleInterface diff --git a/app/src/aliro/platform/ble/gatt_server/gatt_server.cpp b/app/src/aliro/platform/ble/gatt_server/gatt_server.cpp index bd8682e4..034d867c 100644 --- a/app/src/aliro/platform/ble/gatt_server/gatt_server.cpp +++ b/app/src/aliro/platform/ble/gatt_server/gatt_server.cpp @@ -86,12 +86,11 @@ ssize_t GattServer::UserDeviceSelectedSpsmBleUwbProtocolversion(bt_conn *connect VerifyOrReturnValue(versionFound, dataLength, LOG_DBG("Unsupported protocol version: 0x%04x", version)); - const auto *l2capServerPtr = static_cast(attribute->user_data); + auto *l2capServerPtr = static_cast(attribute->user_data); VerifyOrReturnValue(l2capServerPtr, BT_GATT_ERR(BT_ATT_ERR_INVALID_HANDLE), LOG_ERR("Invalid L2CAP server pointer")); - // Ignore the error code, as it is not critical. - std::ignore = l2capServerPtr->AllocateL2capChannel(connectionId, version); + l2capServerPtr->SetProtocolVersion(connectionId, version); return dataLength; } diff --git a/app/src/aliro/platform/ble/l2cap_server/l2cap_server.cpp b/app/src/aliro/platform/ble/l2cap_server/l2cap_server.cpp index 38baca1b..6bc71911 100644 --- a/app/src/aliro/platform/ble/l2cap_server/l2cap_server.cpp +++ b/app/src/aliro/platform/ble/l2cap_server/l2cap_server.cpp @@ -8,8 +8,8 @@ #include "aliro/aliro.h" #include "aliro/memory.h" -#include "aliro/mutex_guard.h" #include "aliro/utils.h" +#include "mutex_guard.h" #include LOG_MODULE_REGISTER(L2CAPServer, CONFIG_DOOR_LOCK_BLE_LOG_LEVEL); @@ -21,7 +21,6 @@ struct L2CapChanNode { bt_conn *conn{ nullptr }; bt_l2cap_le_chan chan{}; - Aliro::ProtocolVersion bleUwbProtocolVersion{}; }; static_assert(offsetof(L2CapChanNode, node) == 0); @@ -35,7 +34,7 @@ NET_BUF_POOL_DEFINE(sNetBufPool, CONFIG_DOOR_LOCK_BLE_UWB_MAX_SESSIONS, BT_L2CAP K_MUTEX_DEFINE(sL2CapChanMutex); sys_slist_t sL2CapChanList{}; -bt_l2cap_le_chan *AllocateNewL2capChan(bt_conn *conn, Aliro::ProtocolVersion version) +bt_l2cap_le_chan *AllocateNewL2capChan(bt_conn *conn) { auto *ref = bt_conn_ref(conn); VerifyOrReturnValue(ref, nullptr, LOG_ERR("Cannot reference connection (conn: %p)", conn)); @@ -44,7 +43,6 @@ bt_l2cap_le_chan *AllocateNewL2capChan(bt_conn *conn, Aliro::ProtocolVersion ver VerifyOrReturnValue(node, nullptr, LOG_ERR("Cannot allocate channel node (conn: %p)", conn)); node->conn = ref; - node->bleUwbProtocolVersion = version; { MutexGuard lock{ sL2CapChanMutex }; @@ -98,12 +96,11 @@ int L2capServer::Accept(bt_conn *conn, bt_l2cap_server *server, bt_l2cap_chan ** VerifyOrReturnValue(Instance().mChannelCount < CONFIG_DOOR_LOCK_BLE_UWB_MAX_SESSIONS, -ENOMEM, LOG_ERR("Too many connections")); - auto *l2capChan = GetL2capChan(conn); - VerifyOrReturnValue(l2capChan, -ENOENT, LOG_ERR("Cannot get allocated channel (conn: %p)", conn)); - - VerifyOrReturnValue(Instance().GetBleUwbProtocolVersion(conn) != BleTypes::kInvalidProtocolVersion, -ENOENT, + const auto protocolVersion = Instance().GetBleUwbProtocolVersion(conn); + VerifyOrReturnValue(protocolVersion != BleTypes::kInvalidProtocolVersion, -ENOENT, LOG_ERR("BLE UWB protocol version is not set(conn: %p)", conn)); + auto *l2capChan = AllocateNewL2capChan(conn); l2capChan->chan.ops = &Instance().mChannelCallbacks; *channel = &l2capChan->chan; @@ -129,6 +126,8 @@ void L2capServer::Disconnected(bt_l2cap_chan *channel) LOG_INF("L2CAP disconnected: %p", channel); VerifyAndCall(Instance().mCallbacks.mOnDisconnected, channel->conn); + + Instance().SetProtocolVersion(channel->conn, BleTypes::kInvalidProtocolVersion); } int L2capServer::DataReceived(bt_l2cap_chan *channel, net_buf *buffer) @@ -175,44 +174,16 @@ bool L2capServer::IsValidDynamicSpsm(Spsm spsm) return IN_RANGE(spsm, kL2capSpsmMin, kL2capSpsmMax); } -AliroError L2capServer::AllocateL2capChannel(bt_conn *conn, ProtocolVersion version) const -{ - VerifyOrReturnValue(conn, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid connection")); - VerifyOrExit(GetL2capChan(conn) == nullptr, LOG_DBG("Channel already allocated (conn: %p)", conn)); - - VerifyOrReturnValue(AllocateNewL2capChan(conn, version) != nullptr, ALIRO_NO_MEMORY, - LOG_ERR("Cannot allocate channel (conn: %p)", conn)); - -exit: - return ALIRO_NO_ERROR; -} - -void L2capServer::FreeL2capChannel(bt_conn *conn) const +void L2capServer::SetProtocolVersion(bt_conn *conn, ProtocolVersion protocolVersion) { - VerifyOrReturn(conn, LOG_ERR("Invalid connection")); - - auto *chan = GetL2capChan(conn); - VerifyOrReturn(chan, LOG_DBG("Channel not allocated or already freed (conn: %p)", conn)); - - FreeL2capChan(chan); + const auto index = bt_conn_index(conn); + mConnectionProtocolVersion[index] = protocolVersion; } ProtocolVersion L2capServer::GetBleUwbProtocolVersion(bt_conn *conn) const { - sys_snode_t *node{ nullptr }; - - { - MutexGuard lock{ sL2CapChanMutex }; - - SYS_SLIST_FOR_EACH_NODE (&sL2CapChanList, node) { - const auto *nodeObj = CONTAINER_OF(node, L2CapChanNode, node); - if (nodeObj->conn == conn) { - return nodeObj->bleUwbProtocolVersion; - } - } - } - - return BleTypes::kInvalidProtocolVersion; + const auto index = bt_conn_index(conn); + return mConnectionProtocolVersion[index]; } AliroError L2capServer::Send(bt_conn *conn, const uint8_t *data, size_t length) const diff --git a/app/src/aliro/platform/ble/l2cap_server/l2cap_server.h b/app/src/aliro/platform/ble/l2cap_server/l2cap_server.h index 3dcb859b..13cc7a63 100644 --- a/app/src/aliro/platform/ble/l2cap_server/l2cap_server.h +++ b/app/src/aliro/platform/ble/l2cap_server/l2cap_server.h @@ -68,28 +68,15 @@ class L2capServer { AliroError Init(); /** - * @brief Allocates a new L2CAP channel for the given connection. + * @brief Sets the BLE UWB protocol version for the given connection. * - * This function allocates a new L2CAP channel that will be used when the L2CAP connection is accepted. - * The channel must be pre-allocated after protocol BLE UWB version validation via GATT. Additionally, the - * channel is pre-allocated for the given protocol version. - * If the channel is already pre-allocated, this function returns success without re-allocating. + * This function stores the protocol version negotiated for the given + * connection. The version can be retrieved later with GetBleUwbProtocolVersion(). * - * @param conn The connection to preallocate the channel for. - * @param version The BLE UWB protocol version to use for the channel. - * - * @return ALIRO_NO_ERROR on success, or an error code on failure. - */ - AliroError AllocateL2capChannel(bt_conn *conn, ProtocolVersion version) const; - - /** - * @brief Frees a L2CAP channel for the given connection. - * - * This function frees a L2CAP channel that was previously allocated using the AllocateL2capChannel function. - * - * @param conn The connection to free the L2CAP channel for. + * @param conn The connection to set the BLE UWB protocol version for. + * @param protocolVersion The protocol version to store. */ - void FreeL2capChannel(bt_conn *conn) const; + void SetProtocolVersion(bt_conn *conn, ProtocolVersion protocolVersion); /** * @brief Gets the BLE UWB protocol version for the given connection. @@ -179,6 +166,7 @@ class L2capServer { static void Released(bt_l2cap_chan *channel); Spsm mSpsm{}; + ProtocolVersion mConnectionProtocolVersion[CONFIG_BT_MAX_CONN]{}; Callbacks mCallbacks{}; diff --git a/app/src/aliro/access_manager_impl_default/CMakeLists.txt b/app/src/aliro/platform/crypto/CMakeLists.txt similarity index 58% rename from app/src/aliro/access_manager_impl_default/CMakeLists.txt rename to app/src/aliro/platform/crypto/CMakeLists.txt index dd7be26e..0c6e9191 100644 --- a/app/src/aliro/access_manager_impl_default/CMakeLists.txt +++ b/app/src/aliro/platform/crypto/CMakeLists.txt @@ -1,11 +1,11 @@ # -# Copyright (c) 2025 Nordic Semiconductor ASA +# Copyright (c) 2026 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # zephyr_include_directories(.) -file(GLOB src CONFIGURE_DEPENDS ./*.cpp) +file(GLOB src CONFIGURE_DEPENDS *.cpp) zephyr_library_sources(${src}) diff --git a/app/src/aliro/platform/crypto/Kconfig b/app/src/aliro/platform/crypto/Kconfig new file mode 100644 index 00000000..02ddd254 --- /dev/null +++ b/app/src/aliro/platform/crypto/Kconfig @@ -0,0 +1,27 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +rsource "Kconfig.defaults" + +menu "Crypto" + +config DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART + bool + default y if SOC_NRF54LM20A + help + When enabled, the single-part AEAD API is used. + +if DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART + +config DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART_BUFFER_SIZE + int "Maximum size of the buffer used for the single-part AEAD API" + default 256 + help + Maximum size of the buffer used for the single-part AEAD API. + +endif # DOOR_LOCK_CRYPTO_PSA_AEAD_SINGLE_PART + +endmenu # Crypto diff --git a/app/src/aliro/platform/crypto/Kconfig.defaults b/app/src/aliro/platform/crypto/Kconfig.defaults new file mode 100644 index 00000000..4fc590a1 --- /dev/null +++ b/app/src/aliro/platform/crypto/Kconfig.defaults @@ -0,0 +1,60 @@ +# +# Copyright (c) 2026 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +config MBEDTLS_PSA_CRYPTO_C + default y + +config MBEDTLS_ENABLE_HEAP + default y + +config MBEDTLS_HEAP_SIZE + default 8192 + +config MBEDTLS_X509_LIBRARY + default y if DOOR_LOCK_CREDENTIAL_ISSUER_CA + +config PSA_WANT_ALG_ECDSA + default y + +config PSA_WANT_ALG_ECDH + default y + +config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE + default y + +config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT + default y + +config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT + default y + +config PSA_WANT_ECC_SECP_R1_256 + default y + +config PSA_WANT_ALG_SHA_256 + default y + +config PSA_WANT_ALG_HKDF + default y + +config PSA_WANT_ALG_HMAC + default y + +config PSA_WANT_KEY_TYPE_HMAC + default y + +config PSA_WANT_KEY_TYPE_AES + default y + +config PSA_WANT_ALG_ECB_NO_PADDING + default y if NCS_ALIRO_BLE_UWB + +config PSA_WANT_GENERATE_RANDOM + default y + +config PSA_WANT_ALG_GCM + default y + diff --git a/app/src/aliro/platform/crypto/utils.cpp b/app/src/aliro/platform/crypto/utils.cpp new file mode 100644 index 00000000..247b679b --- /dev/null +++ b/app/src/aliro/platform/crypto/utils.cpp @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "utils.h" + +#include "aliro/utils.h" + +#include +#include + +LOG_MODULE_REGISTER(crypto_utils, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); + +using namespace Aliro; + +namespace DoorLock::Crypto { + +namespace { + +psa_key_attributes_t GetPrivateKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); + psa_set_key_algorithm(&attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256)); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kEccP256KeyPrivateKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + + return attributes; +} + +psa_key_attributes_t GetPublicKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1)); + psa_set_key_algorithm(&attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256)); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kEccP256KeyPrivateKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + + return attributes; +} + +psa_key_attributes_t GetGroupResolvingKeyAttributes() +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_algorithm(&attributes, PSA_ALG_ECB_NO_PADDING); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(CryptoTypes::kGroupResolvingKeyLength)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_EXPORT); + + return attributes; +} + +AliroError SetPersistentLifetime(psa_key_attributes_t &attributes, CryptoTypes::KeyId keyId) +{ + VerifyOrReturnStatus(IN_RANGE(keyId, PSA_KEY_ID_USER_MIN, PSA_KEY_ID_USER_MAX), ALIRO_INVALID_ARGUMENT, + LOG_WRN("Key ID is not defined")); + psa_set_key_id(&attributes, keyId); + + return ALIRO_NO_ERROR; +} + +AliroError ImportKey(const uint8_t *key, size_t keyLength, psa_key_attributes_t &attributes, bool persistent, + CryptoTypes::KeyId &keyId) +{ + if (persistent) { + ReturnErrorOnFailure(SetPersistentLifetime(attributes, keyId)); + } + + const auto status = psa_import_key(&attributes, key, keyLength, &keyId); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Could not import key [Error: %d]", status)); + + return ALIRO_NO_ERROR; +} + +} // namespace + +AliroError Init() +{ + /* Initialize PSA Crypto */ + psa_status_t status = psa_crypto_init(); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_ERR("Cannot initialize PSA Crypto! (Error: %d)", status)); + + return ALIRO_NO_ERROR; +} + +AliroError ImportPrivateKey(const CryptoTypes::PrivateKey &privateKey, bool persistent, CryptoTypes::KeyId &keyId) +{ + auto attributes = GetPrivateKeyAttributes(); + return ImportKey(privateKey.data(), privateKey.size(), attributes, persistent, keyId); +} + +AliroError ImportPublicKey(const CryptoTypes::PublicKey &publicKey, bool persistent, CryptoTypes::KeyId &keyId) +{ + auto attributes = GetPublicKeyAttributes(); + return ImportKey(publicKey.data(), publicKey.size(), attributes, persistent, keyId); +} + +AliroError ImportGroupResolvingKey(const CryptoTypes::GroupResolvingKey &groupResolvingKey, bool persistent, + CryptoTypes::KeyId &keyId) +{ + auto attributes = GetGroupResolvingKeyAttributes(); + return ImportKey(groupResolvingKey.data(), groupResolvingKey.size(), attributes, persistent, keyId); +} + +AliroError ExportPublicKey(CryptoTypes::KeyId keyId, CryptoTypes::PublicKey &publicKey) +{ + size_t outputLength{}; + psa_status_t status = psa_export_public_key(keyId, publicKey.data(), publicKey.size(), &outputLength); + + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_PUBLIC_KEY_NOT_FOUND, + LOG_WRN("Cannot export public key with ID: 0x%x [Error: %d]", keyId, status)); + VerifyOrReturnStatus(outputLength == publicKey.size(), ALIRO_INVALID_ARGUMENT, + LOG_WRN("Invalid public key length")); + + return ALIRO_NO_ERROR; +} + +AliroError ExportKey(CryptoTypes::KeyId keyId, uint8_t *key, size_t keyLength) +{ + VerifyOrReturnStatus(keyId != PSA_KEY_ID_NULL, ALIRO_INVALID_ARGUMENT, LOG_WRN("Invalid Key ID")); + + size_t outputLength{}; + psa_status_t status = psa_export_key(keyId, key, keyLength, &outputLength); + + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot export key ID: 0x%x [Error: %d]", keyId, status)); + VerifyOrReturnStatus(outputLength == keyLength, ALIRO_ERROR_INTERNAL, LOG_WRN("Invalid key length")); + + return ALIRO_NO_ERROR; +} + +AliroError PreserveKey(CryptoTypes::KeyId volatileKeyId, CryptoTypes::KeyId persistentKeyId) +{ + // Validate destination key ID range + VerifyOrReturnStatus(IN_RANGE(persistentKeyId, PSA_KEY_ID_USER_MIN, PSA_KEY_ID_USER_MAX), + ALIRO_INVALID_ARGUMENT, + LOG_WRN("Destination key ID 0x%x is outside valid range [0x%x, 0x%x]", persistentKeyId, + PSA_KEY_ID_USER_MIN, PSA_KEY_ID_USER_MAX)); + + psa_key_attributes_t attributes{}; + psa_status_t status = psa_get_key_attributes(volatileKeyId, &attributes); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_DBG("Cannot get key attributes [Error: %d]", status)); + + psa_set_key_id(&attributes, persistentKeyId); + + CryptoTypes::KeyId keyId{}; + status = psa_copy_key(volatileKeyId, &attributes, &keyId); + if (status == PSA_ERROR_ALREADY_EXISTS) { + LOG_INF("Key already exists [Status: %d]", status); + return ALIRO_KEY_ALREADY_EXISTS; + } + + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_WRN("Cannot copy key [Error: %d]", status)); + + VerifyOrReturnStatus(keyId == persistentKeyId, ALIRO_ERROR_INTERNAL, LOG_WRN("Bad key ID")); + + return ALIRO_NO_ERROR; +} + +AliroError DestroyKey(CryptoTypes::KeyId &keyId) +{ + psa_status_t status = psa_destroy_key(keyId); + AliroError error = (status == PSA_SUCCESS) ? ALIRO_NO_ERROR : ALIRO_ERROR_INTERNAL; + VerifyOrReturnStatus(error == ALIRO_NO_ERROR, error, LOG_ERR("Cannot destroy key [Error: %d]", status)); + keyId = 0; + + return error; +} + +AliroError IsKeyAvailable(CryptoTypes::KeyId keyId) +{ + VerifyOrReturnStatus(keyId != PSA_KEY_ID_NULL, ALIRO_INVALID_ARGUMENT, LOG_WRN("Key ID is not defined")); + + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_status_t status = psa_get_key_attributes(keyId, &attributes); + VerifyOrReturnStatus(status == PSA_SUCCESS, ALIRO_ERROR_INTERNAL, + LOG_DBG("Cannot get key attributes [Error: %d]", status)); + + return ALIRO_NO_ERROR; +} + +AliroError VerifySignature(CryptoTypes::KeyId keyId, const uint8_t *msg, const size_t msgLength, + const CryptoTypes::Signature &signature) +{ + VerifyOrReturnStatus(msg && msgLength > 0, ALIRO_INVALID_ARGUMENT); + + psa_status_t ec = psa_verify_message(keyId, PSA_ALG_ECDSA(PSA_ALG_SHA_256), msg, msgLength, signature.data(), + signature.size()); + + return (ec == PSA_SUCCESS) ? ALIRO_NO_ERROR : ALIRO_INVALID_SIGNATURE; +} + +} // namespace DoorLock::Crypto diff --git a/app/src/aliro/platform/crypto/utils.h b/app/src/aliro/platform/crypto/utils.h new file mode 100644 index 00000000..44684a8f --- /dev/null +++ b/app/src/aliro/platform/crypto/utils.h @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include "aliro/errors.h" +#include "aliro/types.h" + +namespace DoorLock::Crypto { + +/** + * @brief Initialize the crypto module. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError Init(); + +/** + * @brief Import a private key. + * + * @param privateKey input buffer with the private key. + * @param persistent true if the key is persistent, false otherwise. + * @param keyId output identifier of the imported key. Has to be set to a valid key ID if the key is persistent. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError ImportPrivateKey(const Aliro::CryptoTypes::PrivateKey &privateKey, bool persistent, + Aliro::CryptoTypes::KeyId &keyId); + +/** + * @brief Import a public key. + * + * @param publicKey input buffer with the public key. + * @param persistent true if the key is persistent, false otherwise. + * @param keyId output identifier of the imported key. Has to be set to a valid key ID if the key is persistent. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError ImportPublicKey(const Aliro::CryptoTypes::PublicKey &publicKey, bool persistent, + Aliro::CryptoTypes::KeyId &keyId); + +/** + * @brief Import a Group Resolving Key. + * + * @param groupResolvingKey input buffer with the Group Resolving Key. + * @param persistent true if the key is persistent, false otherwise. + * @param keyId output identifier of the imported key. Has to be set to a valid key ID if the key is persistent. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError ImportGroupResolvingKey(const Aliro::CryptoTypes::GroupResolvingKey &groupResolvingKey, bool persistent, + Aliro::CryptoTypes::KeyId &keyId); + +/** + * @brief Export EC public key. + * + * @param keyId input identifier of a private key for which the public key should be exported. + * @param publicKey Output buffer where the public key is to be copied. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError ExportPublicKey(Aliro::CryptoTypes::KeyId keyId, Aliro::CryptoTypes::PublicKey &publicKey); + +/** + * @brief Export a key. + * + * @note The caller must know the key type associated with the given keyId. + * The size of the buffer must match the key size for that type. + * + * @param keyId input identifier of a key to export. + * @param key output buffer where the key is to be copied. + * @param keyLength length of the key in bytes. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError ExportKey(Aliro::CryptoTypes::KeyId keyId, uint8_t *key, size_t keyLength); + +/** + * @brief Preserve a volatile key by copying it to persistent slot. + * + * @param volatileKeyId input identifier of the volatile key. + * @param persistentKeyId input identifier of the persistent key. + * + * @return ALIRO_NO_ERROR on success, ALIRO_KEY_ALREADY_EXISTS if the key already exists, other error status + * otherwise. + */ +AliroError PreserveKey(Aliro::CryptoTypes::KeyId volatileKeyId, Aliro::CryptoTypes::KeyId persistentKeyId); + +/** + * @brief Destroy an key by ID. + * + * @note When the key is successfully destroyed, keyId is set to 0. + * + * @param keyId identifier of a key to delete. + * + * @return ALIRO_NO_ERROR on success, error status otherwise. + */ +AliroError DestroyKey(Aliro::CryptoTypes::KeyId &keyId); + +/** + * @brief Checks if a key ID exists. + * + * @param keyId The key ID to check. + * + * @return ALIRO_NO_ERROR if the key is available, a error code otherwise. + */ +AliroError IsKeyAvailable(Aliro::CryptoTypes::KeyId keyId); + +/** + * @brief Verify signature of a message. + * + * @param keyId input identifier of the public key to use for verification. + * @param msg input message whose signature is to be verified. + * @param msgLength input size of the message. + * @param signature input signature to verify. + * + * @return ALIRO_NO_ERROR when signature is valid, ALIRO_INVALID_SIGNATURE otherwise. + */ +AliroError VerifySignature(Aliro::CryptoTypes::KeyId keyId, const uint8_t *msg, const size_t msgLength, + const Aliro::CryptoTypes::Signature &signature); + +} // namespace DoorLock::Crypto diff --git a/lib/aliro/include/aliro/mutex_guard.h b/app/src/aliro/platform/mutex_guard.h similarity index 79% rename from lib/aliro/include/aliro/mutex_guard.h rename to app/src/aliro/platform/mutex_guard.h index f8aa95c2..e5174d00 100644 --- a/lib/aliro/include/aliro/mutex_guard.h +++ b/app/src/aliro/platform/mutex_guard.h @@ -8,6 +8,8 @@ #include +#include + /** * @brief RAII-style mutex guard. * @@ -20,14 +22,17 @@ struct MutexGuard { * * @param mutex Pointer to the mutex to lock. */ - explicit MutexGuard(k_mutex &mutex) noexcept; + explicit MutexGuard(k_mutex &mutex) noexcept : mMutex{ mutex } + { + std::ignore = k_mutex_lock(&mMutex, K_FOREVER); + } /** * @brief Destructor for MutexGuard. * * Unlocks the mutex when the MutexGuard object is destroyed. */ - ~MutexGuard() noexcept; + ~MutexGuard() noexcept { k_mutex_unlock(&mMutex); } // Disable copy and move constructors and assignment operators. MutexGuard(const MutexGuard &) = delete; @@ -36,5 +41,5 @@ struct MutexGuard { MutexGuard &operator=(MutexGuard &&) = delete; private: - k_mutex *const mMutex{ nullptr }; + k_mutex &mMutex; }; diff --git a/app/src/aliro/platform/nfc_transport_impl/CMakeLists.txt b/app/src/aliro/platform/nfc/CMakeLists.txt similarity index 72% rename from app/src/aliro/platform/nfc_transport_impl/CMakeLists.txt rename to app/src/aliro/platform/nfc/CMakeLists.txt index 4cc34d51..e7f635c6 100644 --- a/app/src/aliro/platform/nfc_transport_impl/CMakeLists.txt +++ b/app/src/aliro/platform/nfc/CMakeLists.txt @@ -8,5 +8,3 @@ zephyr_include_directories(.) # Core RFAL transport implementation zephyr_library_sources(nfc_transport_rfal.cpp) - -zephyr_library_sources_ifdef(CONFIG_DOOR_LOCK_NFC_PROP nfc_transport_rfal_prop.cpp) diff --git a/app/src/aliro/platform/nfc_transport_impl/Kconfig b/app/src/aliro/platform/nfc/Kconfig similarity index 96% rename from app/src/aliro/platform/nfc_transport_impl/Kconfig rename to app/src/aliro/platform/nfc/Kconfig index ca5b9905..00d5ade4 100644 --- a/app/src/aliro/platform/nfc_transport_impl/Kconfig +++ b/app/src/aliro/platform/nfc/Kconfig @@ -6,8 +6,10 @@ rsource "Kconfig.rfal.defconfig" -# Prompt-less option only for internal tuning of the RFAL worker thread. Do not change it. -config RFAL_NFC_WORKER_TIMEOUT_MS +menu "NFC" + +# Prompt-less option only for internal tuning of the RFAL worker. +config RFAL_NFC_WORKER_INTERVAL_MS int default 10 @@ -68,3 +70,5 @@ module-str = DOOR_LOCK_RFAL module-dep = LOG module-help = Enables Door Lock NFC RFAL log messages. source "$(ZEPHYR_BASE)/subsys/logging/Kconfig.template.log_config" + +endmenu # NFC diff --git a/app/src/aliro/platform/nfc_transport_impl/Kconfig.rfal.defconfig b/app/src/aliro/platform/nfc/Kconfig.rfal.defconfig similarity index 100% rename from app/src/aliro/platform/nfc_transport_impl/Kconfig.rfal.defconfig rename to app/src/aliro/platform/nfc/Kconfig.rfal.defconfig diff --git a/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.cpp b/app/src/aliro/platform/nfc/nfc_transport_rfal.cpp similarity index 63% rename from app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.cpp rename to app/src/aliro/platform/nfc/nfc_transport_rfal.cpp index 873fecf9..a4bb0655 100644 --- a/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.cpp +++ b/app/src/aliro/platform/nfc/nfc_transport_rfal.cpp @@ -5,10 +5,11 @@ */ #include "nfc_transport_rfal.h" -#include "ncs_pal_semaphore.h" #include #include +#include "aliro/aliro.h" +#include "aliro/aliro_work/aliro_work.h" #include "aliro/utils.h" #include "ncs_pal_nfc_worker.h" @@ -20,19 +21,33 @@ LOG_MODULE_REGISTER(nfc_st_rfal_impl, CONFIG_DOOR_LOCK_RFAL_LOG_LEVEL); -namespace Aliro { +K_WORK_DELAYABLE_DEFINE(nfc_pal_nfc_work, [](k_work *) { Aliro::NfcTransportRfal::Instance().Execute(); }); -K_THREAD_STACK_DEFINE(mStack, CONFIG_RFAL_WORKER_THREAD_STACK_SIZE); +extern "C" void ncs_pal_submit_nfc_work() +{ + (void)AliroWorkReschedule(&nfc_pal_nfc_work, K_NO_WAIT); +} +namespace Aliro { -[[noreturn]] void NfcTransportRfal::Run() +void NfcTransportRfal::Execute() { - while (true) { - if (mRecoverPolling && !mSendInProgress) { - mRecoverPolling = false; - RecoverPolling(); - } - rfalNfcWorker(); - ncs_pal_take_semaphore(K_MSEC(CONFIG_RFAL_NFC_WORKER_TIMEOUT_MS)); + // NFC shield generates IRQ on startup, triggering Execute() before RFAL is initialized. + // Without this check, rfalNfcGetState() returns garbage which accidentally satisfies the + // condition below, causing unnecessary periodic worker scheduling at CONFIG_RFAL_NFC_WORKER_INTERVAL_MS. + if (!atomic_get(&mStarted)) { + return; + } + + if (mRecoverPolling && !mSendInProgress) { + mRecoverPolling = false; + RecoverPolling(); + } + rfalNfcWorker(); + + const rfalNfcState st = rfalNfcGetState(); + + if (st != RFAL_NFC_STATE_WAKEUP_MODE || mSendInProgress) { + (void)AliroWorkReschedule(&nfc_pal_nfc_work, K_MSEC(CONFIG_RFAL_NFC_WORKER_INTERVAL_MS)); } } @@ -67,6 +82,7 @@ void NfcTransportRfal::RfalNotifyCallback(rfalNfcState state) LOG_DBG("RFAL: Start discovery state"); mMultiSel = false; mSendInProgress = false; + mTagDetectedState = false; break; case RFAL_NFC_STATE_DATAEXCHANGE: LOG_DBG("RFAL: Data exchange state"); @@ -78,6 +94,7 @@ void NfcTransportRfal::RfalNotifyCallback(rfalNfcState state) case RFAL_NFC_STATE_DEACTIVATION: LOG_DBG("RFAL: Deactivation State"); mSendInProgress = false; + mTagDetectedState = false; break; case RFAL_NFC_STATE_ACTIVATED: LOG_DBG("RFAL: Activated state"); @@ -131,19 +148,20 @@ ReturnCode NfcTransportRfal::RfalNfcInit() return err; } -void NfcTransportRfal::SelectTag() const +void NfcTransportRfal::SelectTag() { rfalNfcDevice *nfcDevice; rfalNfcGetActiveDevice(&nfcDevice); VerifyOrReturn(nfcDevice); - LOG_INF("RFAL: Active device type = %d", nfcDevice->type); + LOG_INF("RFAL: Active device type = %d", static_cast(nfcDevice->type)); if (nfcDevice->type == RFAL_NFC_LISTEN_TYPE_NFCA) { if (nfcDevice->dev.nfca.type == RFAL_NFCA_T4T) { LOG_HEXDUMP_DBG(nfcDevice->nfcid, nfcDevice->nfcidLen, "RFAL: NFCA Passive ISO-DEP device found. UID: "); - VerifyAndCall(this->NfcDriver::mCallbacks.mOnTagDetected); + mTagDetectedState = true; + AliroStack::Instance().CreateSession(ConnectionHandle::Nfc()); } else { LOG_HEXDUMP_DBG(nfcDevice->nfcid, nfcDevice->nfcidLen, "RFAL: Usupported NFC card found. UID: %s"); @@ -156,7 +174,8 @@ void NfcTransportRfal::CaptureRxData() ReturnCode status = rfalNfcDataExchangeGetStatus(); if (status == RFAL_ERR_BUSY) { LOG_ERR("RFAL: Data transaction has not been completed [status: %d]", status); - VerifyAndCall(this->NfcDriver::mCallbacks.mOnError, ALIRO_INVALID_STATE); + mTagDetectedState = false; + AliroStack::Instance().DestroySession(ConnectionHandle::Nfc()); return; } @@ -168,12 +187,18 @@ void NfcTransportRfal::CaptureRxData() LOG_HEXDUMP_DBG(mRxBuffer.data(), currentDataLen, "RFAL: RX data:"); - VerifyAndCall(NfcDriver::mCallbacks.mOnDataReceived, { .mData = mRxBuffer.data(), .mLength = currentDataLen }, - 0); + if (currentDataLen > 0) { + AliroStack::Instance().HandleSessionData(ConnectionHandle::Nfc(), + { .mData = mRxBuffer.data(), .mLength = currentDataLen }); + } else { + mTagDetectedState = false; + AliroStack::Instance().DestroySession(ConnectionHandle::Nfc()); + } } -void NfcTransportRfal::RecoverPolling() const +void NfcTransportRfal::RecoverPolling() { + mTagDetectedState = false; if (rfalNfcIsDevActivated(rfalNfcGetState())) { ReturnCode err = rfalNfcDeactivate(RFAL_NFC_DEACTIVATE_SLEEP); VerifyOrReturn(err == RFAL_ERR_NONE, LOG_ERR("RFAL: Deactivation failed, return code: %d", err)); @@ -182,73 +207,50 @@ void NfcTransportRfal::RecoverPolling() const /* ****************************************************************************** -* IsoDep interface implementation +* Public API ****************************************************************************** */ -AliroError NfcTransportRfal::_Init(IsoDep::Callbacks callbacks) + +AliroError NfcTransportRfal::Init() { - IsoDep::mCallbacks = callbacks; + int err = rfal_ncs_pal_init(); + VerifyOrReturnStatus(err == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("RFAL: NFC PAL init failed %d", err)); + return ALIRO_NO_ERROR; } -AliroError NfcTransportRfal::_PrepareData([[maybe_unused]] Data data) const +AliroError NfcTransportRfal::Start() { - // ISO-DEP layer is implemented internally in the RFAL, no need for special data handling - return ALIRO_ERROR_NOT_IMPLEMENTED; -} + VerifyOrReturnStatus(RfalNfcInit() == RFAL_ERR_NONE, ALIRO_ERROR_INTERNAL, + LOG_ERR("RFAL: NFC initialization failed")); -AliroError NfcTransportRfal::_PrepareRats() const -{ - // RATS is sent by the driver internally as an activation procedure, so we can presume the tag is fully selected - // a this point - return ALIRO_ERROR_NOT_IMPLEMENTED; -} + ReturnCode err = rfalNfcDiscover(&mNfcConfig); + VerifyOrReturnStatus(err == RFAL_ERR_NONE, ALIRO_ERROR_INTERNAL, + LOG_ERR("RFAL: NFC discovery failed, return code: %d", err)); -AliroError NfcTransportRfal::_HandleReceivedData([[maybe_unused]] Data data, [[maybe_unused]] int transferError) const -{ - // No specific processing needed, all ISO-DEP specific data handling happens in driver's internals - return ALIRO_ERROR_NOT_IMPLEMENTED; -} + atomic_set(&mStarted, true); -AliroError NfcTransportRfal::_ReportTimeout() const -{ - // No special handling needed with RFAL - return ALIRO_ERROR_NOT_IMPLEMENTED; -} + // Kickstart worker - at boot IRQ does this, but when starting with delay(provisioning) we need manual trigger + ncs_pal_submit_nfc_work(); -/* Implementation of the generic IsoDep instance getter. */ -IsoDep &IsoDepInstance() -{ - return NfcTransportRfal::Instance(); + return ALIRO_NO_ERROR; } -/* -****************************************************************************** -****************************************************************************** -*/ -/* -****************************************************************************** -* NfcDriver interface implementation -****************************************************************************** -*/ -AliroError NfcTransportRfal::_Init(NfcDriver::Callbacks callbacks) +AliroError NfcTransportRfal::Stop() { - NfcDriver::mCallbacks = callbacks; - - int err = rfal_ncs_pal_init(); - VerifyOrReturnStatus(err == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("RFAL: NFC PAL init failed %d", err)); - - VerifyOrReturnStatus(RfalNfcInit() == RFAL_ERR_NONE, ALIRO_ERROR_INTERNAL, - LOG_ERR("RFAL: NFC initialization failed")); - - const k_tid_t thread = ncs_pal_nfc_worker_start([](void *, void *, void *) { Instance().Run(); }); - VerifyOrReturnStatus(thread, ALIRO_INVALID_STATE, LOG_ERR("RFAL: Cannot spawn the NFC driver thread")); + ReturnCode err = rfalNfcDeactivate(RFAL_NFC_DEACTIVATE_IDLE); + VerifyOrReturnStatus(err == RFAL_ERR_NONE || err == RFAL_ERR_WRONG_STATE, ALIRO_ERROR_INTERNAL, + LOG_ERR("RFAL: NFC deactivation failed, return code: %d", err)); + atomic_clear(&mStarted); return ALIRO_NO_ERROR; } -AliroError NfcTransportRfal::_Send(Data data, [[maybe_unused]] uint32_t maximumFrameDelayTime) +AliroError NfcTransportRfal::Send(Data data) { + VerifyOrReturnStatus(mTagDetectedState, ALIRO_INVALID_STATE, + LOG_WRN("NFC not activated, no data transfer possible")); + LOG_HEXDUMP_DBG(data.mData, data.mLength, "RFAL: TX data:"); mSendInProgress = true; @@ -261,39 +263,10 @@ AliroError NfcTransportRfal::_Send(Data data, [[maybe_unused]] uint32_t maximumF return ALIRO_NO_ERROR; } -AliroError NfcTransportRfal::_NfcOn() const -{ - VerifyOrReturnStatus(NfcTransportRfal::Instance().RfalNfcInit() == RFAL_ERR_NONE, ALIRO_ERROR_INTERNAL, - LOG_ERR("RFAL: NFC initialization failed")); - - ReturnCode err = rfalNfcDiscover(&mNfcConfig); - VerifyOrReturnStatus(err == RFAL_ERR_NONE, ALIRO_ERROR_INTERNAL, - LOG_ERR("RFAL: NFC discovery failed, return code: %d", err)); - - return ALIRO_NO_ERROR; -} - -AliroError NfcTransportRfal::_NfcOff() const -{ - // RFAL handles this internally and knows when the field can be off - return ALIRO_NO_ERROR; -} - -AliroError NfcTransportRfal::_RestartPolling() +AliroError NfcTransportRfal::Terminate() { mRecoverPolling = true; - return ALIRO_NO_ERROR; } -/* Implementation of the generic NfcDriver instance getter. */ -NfcDriver &NfcDriverInstance() -{ - return NfcTransportRfal::Instance(); -} -/* -****************************************************************************** -****************************************************************************** -*/ - } // namespace Aliro diff --git a/app/src/aliro/platform/nfc/nfc_transport_rfal.h b/app/src/aliro/platform/nfc/nfc_transport_rfal.h new file mode 100644 index 00000000..678f17cc --- /dev/null +++ b/app/src/aliro/platform/nfc/nfc_transport_rfal.h @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include "aliro/errors.h" +#include "aliro/types.h" + +extern "C" { +#include +#include +#include +} + +#include +#include + +#include + +namespace Aliro { + +/** + * @class NfcTransportRfal + * @brief NFC transport implementation using ST RFAL library. + * + */ +class NfcTransportRfal { +public: + /** + * @brief Gets the singleton instance. + * @return Reference to the singleton instance. + */ + static NfcTransportRfal &Instance() + { + static NfcTransportRfal sInstance; + return sInstance; + } + + /** + * @brief Initializes the NFC transport. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Init(); + + /** + * @brief Starts NFC polling/discovery. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Start(); + + /** + * @brief Stops NFC polling. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Stop(); + + /** + * @brief Sends data to the detected NFC card. + * + * @param data The data to send. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Send(Data data); + + /** + * @brief Terminates the current NFC session and restarts polling. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError Terminate(); + + /** + * @brief Execute a single RFAL NFC worker iteration. + * + */ + void Execute(); + +private: + NfcTransportRfal() = default; + NfcTransportRfal(const NfcTransportRfal &) = delete; + NfcTransportRfal(NfcTransportRfal &&) = delete; + ~NfcTransportRfal() = default; + NfcTransportRfal &operator=(const NfcTransportRfal &) = delete; + NfcTransportRfal &operator=(NfcTransportRfal &&) = delete; + + ReturnCode RfalNfcInit(); + void RfalNotifyCallback(rfalNfcState state); + void CaptureRxData(); + void SelectTag(); + void RecoverPolling(); + + rfalNfcDiscoverParam mNfcConfig{}; + k_thread mThread{}; + bool mMultiSel{ false }; + + std::array mRxBuffer{}; + uint8_t *mRxData{}; + uint16_t *mRcvLen{}; + + bool mRecoverPolling{ false }; + bool mSendInProgress{ false }; + bool mTagDetectedState{ false }; + atomic_t mStarted{ false }; +}; + +} // namespace Aliro diff --git a/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal_prop.h b/app/src/aliro/platform/nfc/nfc_transport_rfal_prop.h similarity index 100% rename from app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal_prop.h rename to app/src/aliro/platform/nfc/nfc_transport_rfal_prop.h diff --git a/app/src/aliro/platform/nfc_transport_impl/isodep_config.h b/app/src/aliro/platform/nfc_transport_impl/isodep_config.h deleted file mode 100644 index 11188c0f..00000000 --- a/app/src/aliro/platform/nfc_transport_impl/isodep_config.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -/* An alias for a name of the class that implements the IsoDep interface. */ -#define IsoDepImpl NfcTransportRfal diff --git a/app/src/aliro/platform/nfc_transport_impl/isodep_impl.h b/app/src/aliro/platform/nfc_transport_impl/isodep_impl.h deleted file mode 100644 index 070867ce..00000000 --- a/app/src/aliro/platform/nfc_transport_impl/isodep_impl.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include "nfc_transport_rfal.h" diff --git a/app/src/aliro/platform/nfc_transport_impl/nfc_driver_config.h b/app/src/aliro/platform/nfc_transport_impl/nfc_driver_config.h deleted file mode 100644 index c4075d4c..00000000 --- a/app/src/aliro/platform/nfc_transport_impl/nfc_driver_config.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -/* An alias for a name of the class that implements the NfcDriver interface. */ -#define NfcDriverImpl NfcTransportRfal diff --git a/app/src/aliro/platform/nfc_transport_impl/nfc_driver_impl.h b/app/src/aliro/platform/nfc_transport_impl/nfc_driver_impl.h deleted file mode 100644 index 070867ce..00000000 --- a/app/src/aliro/platform/nfc_transport_impl/nfc_driver_impl.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include "nfc_transport_rfal.h" diff --git a/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.h b/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.h deleted file mode 100644 index dadabbdb..00000000 --- a/app/src/aliro/platform/nfc_transport_impl/nfc_transport_rfal.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include "transport/nfc/driver/interface/aliro_nfc_driver.h" -#include "transport/nfc/isodep/interface/aliro_isodep.h" - -extern "C" { -#include -#include -#include -} - -#include - -#include - -namespace Aliro { - -class NfcTransportRfal : public IsoDep, public NfcDriver { -private: - friend class IsoDep; - friend IsoDep &IsoDepInstance(); - friend class NfcDriver; - friend NfcDriver &NfcDriverInstance(); - - // IsoDep interface - AliroError _Init(IsoDep::Callbacks callbacks); - AliroError _PrepareData(Data data) const; - AliroError _PrepareRats() const; - AliroError _HandleReceivedData(Data data, int transferError) const; - AliroError _ReportTimeout() const; - - // NfcDriver interface - AliroError _Init(NfcDriver::Callbacks callbacks); - AliroError _Send(Data data, uint32_t maximumFrameDelayTime); - AliroError _NfcOn() const; - AliroError _NfcOff() const; - AliroError _RestartPolling(); - - static NfcTransportRfal &Instance() - { - static NfcTransportRfal sInstance; - return sInstance; - } - - ReturnCode RfalNfcInit(); - [[noreturn]] void Run(); - void RfalNotifyCallback(rfalNfcState state); - void CaptureRxData(); - void SelectTag() const; - void RecoverPolling() const; - - rfalNfcDiscoverParam mNfcConfig{}; - k_thread mThread{}; - bool mMultiSel{ false }; - - std::array mRxBuffer{}; - uint8_t *mRxData{}; - uint16_t *mRcvLen{}; - - bool mRecoverPolling{ false }; - bool mSendInProgress{ false }; -}; - -} // namespace Aliro diff --git a/app/src/aliro/platform/timer.cpp b/app/src/aliro/platform/timer.cpp new file mode 100644 index 00000000..56ae0d3f --- /dev/null +++ b/app/src/aliro/platform/timer.cpp @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause + */ + +#include "timer.h" + +#include "aliro/aliro_work/aliro_work.h" +#include "aliro/utils.h" + +#include + +namespace Aliro { + +Timer::Timer(uint32_t timeoutMs, Callback callback, Context userData) + : mTimeout{ K_MSEC(timeoutMs) }, mCallback{ callback }, mContext{ userData } +{ + k_timer_init( + &mTimer, + [](k_timer *timer) { + auto timerObj = static_cast(k_timer_user_data_get(timer)); + VerifyOrDie(timerObj, "Invalid timer"); + + std::ignore = AliroWorkSubmit(&timerObj->mWork); + }, + nullptr); + + k_timer_user_data_set(&mTimer, this); + + k_work_init(&mWork, [](k_work *work) { + auto *timer = CONTAINER_OF(work, Timer, mWork); + timer->mCallback(timer->mContext); + }); +} + +Timer::~Timer() +{ + k_timer_stop(&mTimer); + + // wait for the work to be cancelled before destroying the timer + k_work_sync sync{}; + k_work_cancel_sync(&mWork, &sync); +} + +void Timer::Start() +{ + k_timer_start(&mTimer, mTimeout, K_NO_WAIT); +} + +void Timer::Restart() +{ + Start(); +} + +bool Timer::IsRunning() +{ + return k_timer_remaining_ticks(&mTimer) != 0; +} + +void Timer::Stop() +{ + k_timer_stop(&mTimer); +} + +} // namespace Aliro diff --git a/lib/aliro/include/aliro/timer.h b/app/src/aliro/platform/timer.h similarity index 99% rename from lib/aliro/include/aliro/timer.h rename to app/src/aliro/platform/timer.h index 4b5e0211..72ac223f 100644 --- a/lib/aliro/include/aliro/timer.h +++ b/app/src/aliro/platform/timer.h @@ -7,6 +7,7 @@ #pragma once #include + #include namespace Aliro { diff --git a/app/src/aliro/platform/uwb_impl/Kconfig b/app/src/aliro/platform/uwb_impl/Kconfig index 92b7bf93..2ba2dee3 100644 --- a/app/src/aliro/platform/uwb_impl/Kconfig +++ b/app/src/aliro/platform/uwb_impl/Kconfig @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menu "UWB" config TIMESYNC_PROCEDURE_0 bool "Enable timesync Procedure 0" @@ -24,3 +25,5 @@ module-str = DOOR_LOCK_UWB module-dep = LOG module-help = Enables Door Lock UWB platform log messages. source "$(ZEPHYR_BASE)/subsys/logging/Kconfig.template.log_config" + +endmenu # UWB diff --git a/lib/aliro/interfaces/uwb/uwb.h b/app/src/aliro/platform/uwb_impl/uwb.h similarity index 84% rename from lib/aliro/interfaces/uwb/uwb.h rename to app/src/aliro/platform/uwb_impl/uwb.h index 45e6cd9e..57fc8f4c 100644 --- a/lib/aliro/interfaces/uwb/uwb.h +++ b/app/src/aliro/platform/uwb_impl/uwb.h @@ -6,6 +6,7 @@ #pragma once +#include "aliro/connection_handle.h" #include "aliro/errors.h" #include "aliro/protocol_version.h" #include "aliro/types.h" @@ -24,7 +25,7 @@ namespace Aliro::Uwb { template class UltraWideBand { public: using SessionIdentifier = uint32_t; - using SessionContextHandle = const void *; + using SessionContextHandle = ConnectionHandle; /** * @struct Callbacks @@ -55,29 +56,6 @@ template class UltraWideBand { RangingSessionState state){ nullptr }; }; - /** - * @struct StackCallbacks - * @brief Struct containing callback functions for interfacing with the Aliro stack. - * - * This struct holds pointers to functions that are used to communicate with the Aliro stack. - */ - struct StackCallbacks { - /** - * @brief Callback to transmit a BLE message. - * - * This callback is invoked when the UWB module needs to send a BLE message - * as part of the Aliro protocol flow. The message must conform to the format - * specified in the Aliro spec., and the payload must stay - * unencrypted. - * - * @param sessionContextData Pointer to current session context data used by the Aliro stack. - * @param data Pointer to the formatted BLE message data. - * @param length Size of the message data in bytes. - */ - void (*mTransmitBleMessage)(SessionContextHandle sessionContextData, const uint8_t *data, - size_t length){ nullptr }; - }; - /** * @brief Initializes the UltraWideBand module. * @@ -91,13 +69,6 @@ template class UltraWideBand { */ AliroError Init(const Callbacks &callbacks) { return Impl()->_Init(callbacks); } - /** - * @brief Set the stack callbacks. - * - * @param callbacks Stack callbacks. - */ - void SetStackCallbacks(const StackCallbacks &callbacks) { Impl()->_SetStackCallbacks(callbacks); } - /** * @brief Deinitializes the UltraWideBand module. * @@ -145,14 +116,14 @@ template class UltraWideBand { * @param sessionId The session identifier for the ranging session. * @param ursk Reference to the URSK. * @param protocolVersion The protocol version to use for the ranging session. - * @param sessionContextData Pointer to current session context data used by the Aliro stack. + * @param sessionContextHandle Pointer to current session context handle used by the Aliro stack. * * @return ALIRO_NO_ERROR on success, or an error code on failure. */ AliroError ConfigureRangingSession(SessionIdentifier sessionId, const CryptoTypes::Ursk &ursk, - ProtocolVersion protocolVersion, SessionContextHandle sessionContextData) + ProtocolVersion protocolVersion, SessionContextHandle sessionContextHandle) { - return Impl()->_ConfigureRangingSession(sessionId, ursk, protocolVersion, sessionContextData); + return Impl()->_ConfigureRangingSession(sessionId, ursk, protocolVersion, sessionContextHandle); } /** diff --git a/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.cpp b/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.cpp index a4a34614..a37595c6 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.cpp +++ b/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.cpp @@ -13,8 +13,6 @@ AliroError UltraWideBandImpl::_Init([[maybe_unused]] const Callbacks &) return ALIRO_ERROR_NOT_IMPLEMENTED; } -void UltraWideBandImpl::_SetStackCallbacks([[maybe_unused]] const StackCallbacks &) {} - AliroError UltraWideBandImpl::_Deinit() { return ALIRO_ERROR_NOT_IMPLEMENTED; diff --git a/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.h b/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.h index 66837e17..874abb74 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.h +++ b/app/src/aliro/platform/uwb_impl/uwb_dummy_impl/uwb_impl.h @@ -7,7 +7,7 @@ #pragma once #include "aliro/errors.h" -#include "uwb/uwb.h" +#include "uwb.h" #include @@ -34,12 +34,11 @@ class UltraWideBandImpl : public UltraWideBand { } AliroError _Init(const Callbacks &callbacks); - void _SetStackCallbacks(const StackCallbacks &callbacks); AliroError _Deinit(); void _BleTimeSync(); AliroError _HandleBleMessage(const uint8_t *data, size_t length, SessionContextHandle sessionContextData); AliroError _ConfigureRangingSession(SessionIdentifier sessionId, const CryptoTypes::Ursk &ursk, - ProtocolVersion protocolVersion, SessionContextHandle sessionContextData); + ProtocolVersion protocolVersion, SessionContextHandle sessionContextHandle); AliroError _InitiateRangingSession(SessionContextHandle sessionContextData); AliroError _TerminateRangingSession(SessionContextHandle sessionContextData); AliroError _SuspendRangingSession(SessionContextHandle sessionContextData, bool force); diff --git a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/cli/uwb_shell.cpp b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/cli/uwb_shell.cpp index 378b08b0..d921328d 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/cli/uwb_shell.cpp +++ b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/cli/uwb_shell.cpp @@ -14,6 +14,11 @@ using namespace Aliro::Uwb; int ShellCmdQm35Version(const struct shell *shell, size_t, char **) { + if (!UltraWideBandImpl::Instance().IsInitialized()) { + shell_warn(shell, "UWB not initialized"); + return 0; + } + const char *version = UltraWideBandImpl::Instance().GetQm35FirmwareVersion(); if (version) { diff --git a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/dfu/uwb_dfu.cpp b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/dfu/uwb_dfu.cpp index 1de48fe3..14236b68 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/dfu/uwb_dfu.cpp +++ b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/dfu/uwb_dfu.cpp @@ -87,6 +87,8 @@ int PerformFirmwareUpdate() mcuboot_img_header header; uint8_t firmwareChunkBuffer[kMaxChunkSize]; + LOG_INF("Starting firmware update"); + ret = boot_read_bank_header(QM35_DFU_IMAGE_PARTITION_ID, &header, sizeof(mcuboot_img_header)); VerifyOrReturnValue(ret == 0, ret, LOG_WRN("Error when reading QM35 FW primary slot: %d", ret)); @@ -158,6 +160,8 @@ int PerformFirmwareUpdate() qmrom_spi_unregister_drivers(); + LOG_INF("Firmware update %s", (ret ? "failed" : "successful")); + return ret; } diff --git a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.cpp b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.cpp index c2703d3e..199deac2 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.cpp +++ b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.cpp @@ -8,9 +8,10 @@ #include "dfu/uwb_dfu.h" #include "uwb_message.h" +#include "aliro/aliro.h" #include "aliro/memory.h" -#include "aliro/mutex_guard.h" #include "aliro/utils.h" +#include "mutex_guard.h" // UWB API #include @@ -190,8 +191,7 @@ void UltraWideBandImpl::TransmitBleMessage(aliro_uwb_message *message, UwbSessio auto *sessionCtx = uwbImpl->FindSession(uwbSessionCtx); VerifyOrExit(sessionCtx, LOG_ERR("Session context not found")); - VerifyAndCall(uwbImpl->mStackCallbacks.mTransmitBleMessage, sessionCtx->mSessionContextData, - message->data, message->len); + AliroStack::Instance().SendBleMessage(sessionCtx->mSessionContextData, message->data, message->len); } exit: @@ -319,6 +319,16 @@ AliroError UltraWideBandImpl::HandleDeviceCapsEvent(CoreEvent *event) mAliroCtx = aliro_uwb_adapter_create_reader(mCtx, event->data.device_caps, &mReaderConfig); VerifyOrReturnStatus(mAliroCtx, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to create UWB adapter reader.")); + if (event->data.device_caps->ccc_capabilities) { + const auto *src = event->data.device_caps->ccc_capabilities; + mCccCaps.mSlotBitmask = src->slot_bitmask; + mCccCaps.mChannelBitmask = src->channel_bitmask; + mCccCaps.mHoppingConfigBitmask = src->hopping_config_bitmask; + mCccCaps.mSyncCodeIndexBitmask = src->sync_code_index_bitmask; + mCccCaps.mMinimumRanMultiplier = src->minimum_ran_multiplier; + mCccCapsValid = true; + } + return ALIRO_NO_ERROR; } @@ -374,80 +384,63 @@ AliroError UltraWideBandImpl::HandleUwbEvent(UwbEvents expectedEvent, EventHandl AliroError UltraWideBandImpl::_Init(const Callbacks &callbacks) { - cherry_err cErr{}; - AliroError err{}; + LOG_INF("Initializing UWB device..."); -#ifdef CONFIG_DOOR_LOCK_UWB_QM35_DFU - if (!mFwUpdateInProgress) { -#endif - mCallbacks = callbacks; + mInitialized = false; + mCccCapsValid = false; - VerifyOrReturnStatus(k_mutex_init(&mMutex) == 0, ALIRO_ERROR_INTERNAL, - LOG_ERR("Failed to initialize mutex")); - sys_slist_init(&mActiveSessionsList); -#ifdef CONFIG_DOOR_LOCK_UWB_QM35_DFU - } -#endif + mCallbacks = callbacks; - LOG_INF("Initializing UWB device..."); + VerifyOrReturnStatus(k_mutex_init(&mMutex) == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to initialize mutex")); + sys_slist_init(&mActiveSessionsList); mCtx = cherry_create("qm35", &UwbCoreCallback, this); VerifyOrReturnStatus(mCtx, ALIRO_UWB_INIT_FAILED, LOG_ERR("Failed to create Cherry context")); - // Use full calibration data for the QM35825 device. - // This needs to be done only once during initialization, or after a power cycle. - const auto calibData = &util_calib_qm35825; - int status = cherry_set_calib(mCtx, calibData); - VerifyOrExit(status == CHERRY_ERR_NONE, LOG_ERR("Failed to set calibration data: %d", status)); + auto err = GetDeviceInfo(); - // Read Cherry device capabilities. - cErr = cherry_get_device_capabilities(mCtx); - VerifyOrExit(cErr == CHERRY_ERR_NONE, LOG_ERR("Failed to get device capabilities: %s", cherry_err_str(cErr))); +#ifdef CONFIG_DOOR_LOCK_UWB_QM35_DFU + + if (err != ALIRO_NO_ERROR || Dfu::ShouldUpdate(mQm35FirmwareVersion.get())) { + cherry_destroy_sync(mCtx); + mCtx = nullptr; + + const auto ret = Dfu::PerformFirmwareUpdate(); + VerifyOrReturnStatus(ret == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Firmware update failed")); + + mCtx = cherry_create("qm35", &UwbCoreCallback, this); + VerifyOrReturnStatus(mCtx, ALIRO_UWB_INIT_FAILED, LOG_ERR("Failed to create Cherry context")); + + err = GetDeviceInfo(); + } + +#endif // CONFIG_DOOR_LOCK_UWB_QM35_DFU - // Wait for and handle device capabilities event. - err = HandleUwbEvent(UwbEvents::DeviceCaps, - [](CoreEvent *event) -> AliroError { return Instance().HandleDeviceCapsEvent(event); }); VerifyOrExit(err == ALIRO_NO_ERROR); - // Read Cherry device info. - cErr = cherry_get_device_info(mCtx); - VerifyOrExit(cErr == CHERRY_ERR_NONE, LOG_ERR("Failed to get device info: %s", cherry_err_str(cErr))); + err = SetCalibrationData(); + VerifyOrExit(err == ALIRO_NO_ERROR); - // Wait for and handle device info event. - err = HandleUwbEvent(UwbEvents::DeviceInfo, - [](CoreEvent *event) -> AliroError { return Instance().HandleDeviceInfoEvent(event); }); + err = GetDeviceCapabilities(); VerifyOrExit(err == ALIRO_NO_ERROR); + mInitialized = true; LOG_INF("UWB device initialized successfully."); -#ifdef CONFIG_DOOR_LOCK_UWB_QM35_DFU - if (!mFwUpdateInProgress) { - return CheckAndUpdateQm35(false); - } -#endif - return ALIRO_NO_ERROR; exit: - -#ifdef CONFIG_DOOR_LOCK_UWB_QM35_DFU - if (!mFwUpdateInProgress) { - return CheckAndUpdateQm35(true); - } -#else + LOG_ERR("UWB device initialization failed"); _Deinit(); -#endif - return ALIRO_UWB_INIT_FAILED; } -void UltraWideBandImpl::_SetStackCallbacks(const StackCallbacks &callbacks) -{ - mStackCallbacks = callbacks; -} - AliroError UltraWideBandImpl::_Deinit() { + mInitialized = false; + mCccCapsValid = false; + mQm35FirmwareVersion.reset(); + RemoveAllSessions(); if (mAliroCtx) { @@ -474,7 +467,6 @@ void UltraWideBandImpl::_BleTimeSync() AliroError UltraWideBandImpl::_HandleBleMessage(const uint8_t *data, size_t length, SessionContextHandle sessionContextData) { - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); VerifyOrReturnStatus(data && length > 0, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid BLE message data.")); aliro_uwb_err err{}; @@ -486,7 +478,7 @@ AliroError UltraWideBandImpl::_HandleBleMessage(const uint8_t *data, size_t leng const auto *sessionCtx = FindSession(sessionContextData); VerifyOrReturnStatus(sessionCtx, ALIRO_SESSION_NOT_FOUND, - LOG_ERR("Session context not found for handle: %p", sessionContextData)); + LOG_ERR("Session context not found for handle: %p", sessionContextData.GetRaw())); err = aliro_uwb_session_message_handle(sessionCtx->mUwbSessionContext, message.get()); VerifyOrReturnStatus(err == ALIRO_UWB_ERR_NONE, ConvertUwbError(err), LOG_ERR("Cannot handle UWB session message 0x%x", ToUnderlying(err))); @@ -496,14 +488,13 @@ AliroError UltraWideBandImpl::_HandleBleMessage(const uint8_t *data, size_t leng AliroError UltraWideBandImpl::_ConfigureRangingSession(SessionIdentifier sessionId, const CryptoTypes::Ursk &ursk, ProtocolVersion protocolVersion, - SessionContextHandle sessionContextData) + SessionContextHandle sessionContextHandle) { VerifyOrReturnStatus(mAliroCtx, ALIRO_INVALID_STATE, LOG_ERR("UWB is not initialized.")); - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); - auto *sessionCtx = FindSession(sessionContextData); + auto *sessionCtx = FindSession(sessionContextHandle); VerifyOrReturnStatus(!sessionCtx, ALIRO_INVALID_STATE, - LOG_ERR("Session context already exists for handle: %p", sessionContextData)); + LOG_ERR("Session context already exists for handle: %p", sessionContextHandle.GetRaw())); aliro_uwb_session *newSessionCtx = aliro_uwb_session_create(mAliroCtx, sessionId, &SessionHandlerCallback, &TransmitBleMessage, this); @@ -515,11 +506,11 @@ AliroError UltraWideBandImpl::_ConfigureRangingSession(SessionIdentifier session err = ConvertUwbError(aliro_uwb_session_set_protocol_version(newSessionCtx, protocolVersion)); VerifyOrExit(err == ALIRO_NO_ERROR, LOG_ERR("Failed to set protocol version in UWB session: %d", err.ToInt())); - err = AddSession({ .mUwbSessionContext = newSessionCtx, .mSessionContextData = sessionContextData }); + err = AddSession(newSessionCtx, sessionContextHandle); VerifyOrExit(err == ALIRO_NO_ERROR, LOG_ERR("Failed to add session to the active sessions list: %d", err.ToInt())); - LOG_INF("UWB session created with sessionContextData: %p", sessionContextData); + LOG_INF("UWB session created with sessionContextHandle: %p", sessionContextHandle.GetRaw()); return ALIRO_NO_ERROR; exit: @@ -530,11 +521,9 @@ AliroError UltraWideBandImpl::_ConfigureRangingSession(SessionIdentifier session AliroError UltraWideBandImpl::_InitiateRangingSession(SessionContextHandle sessionContextData) { - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); - const auto *sessionCtx = FindSession(sessionContextData); VerifyOrReturnStatus(sessionCtx, ALIRO_SESSION_NOT_FOUND, - LOG_ERR("Session context not found for handle: %p", sessionContextData)); + LOG_ERR("Session context not found for handle: %p", sessionContextData.GetRaw())); aliro_uwb_err err = aliro_uwb_session_init_setup(sessionCtx->mUwbSessionContext); VerifyOrReturnStatus(err == ALIRO_UWB_ERR_NONE, ConvertUwbError(err), @@ -545,25 +534,22 @@ AliroError UltraWideBandImpl::_InitiateRangingSession(SessionContextHandle sessi AliroError UltraWideBandImpl::_TerminateRangingSession(SessionContextHandle sessionContextData) { - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); - auto *sessionCtx = FindSession(sessionContextData); VerifyOrReturnStatus(sessionCtx, ALIRO_SESSION_NOT_FOUND, - LOG_ERR("Session context not found for handle: %p", sessionContextData)); + LOG_ERR("Session context not found for handle: %p", sessionContextData.GetRaw())); RemoveSession(sessionCtx); - LOG_DBG("Terminating UWB session with context: %p", sessionContextData); + LOG_DBG("Terminating UWB session with context: %p", sessionContextData.GetRaw()); return ALIRO_NO_ERROR; } AliroError UltraWideBandImpl::_SuspendRangingSession(SessionContextHandle sessionContextData) { - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); const auto *sessionCtx = FindSession(sessionContextData); VerifyOrReturnStatus(sessionCtx, ALIRO_SESSION_NOT_FOUND, - LOG_ERR("Session context not found for handle: %p", sessionContextData)); + LOG_ERR("Session context not found for handle: %p", sessionContextData.GetRaw())); aliro_uwb_err err = aliro_uwb_session_suspend(sessionCtx->mUwbSessionContext); VerifyOrReturnStatus(err == ALIRO_UWB_ERR_NONE, ConvertUwbError(err), @@ -574,10 +560,9 @@ AliroError UltraWideBandImpl::_SuspendRangingSession(SessionContextHandle sessio AliroError UltraWideBandImpl::_ResumeRangingSession(SessionContextHandle sessionContextData) { - VerifyOrReturnStatus(sessionContextData, ALIRO_INVALID_ARGUMENT, LOG_ERR("Session context data is null.")); const auto *sessionCtx = FindSession(sessionContextData); VerifyOrReturnStatus(sessionCtx, ALIRO_SESSION_NOT_FOUND, - LOG_ERR("Session context not found for handle: %p", sessionContextData)); + LOG_ERR("Session context not found for handle: %p", sessionContextData.GetRaw())); aliro_uwb_err err = aliro_uwb_session_resume(sessionCtx->mUwbSessionContext); VerifyOrReturnStatus(err == ALIRO_UWB_ERR_NONE, ConvertUwbError(err), @@ -586,14 +571,11 @@ AliroError UltraWideBandImpl::_ResumeRangingSession(SessionContextHandle session return ALIRO_NO_ERROR; } -AliroError UltraWideBandImpl::AddSession(const SessionContext &sessionCtx) +AliroError UltraWideBandImpl::AddSession(UwbSessionContext uwbSessionContext, SessionContextHandle sessionContextHandle) { - auto newCtx = Aliro::new_nothrow(); + auto newCtx = Aliro::new_nothrow(uwbSessionContext, sessionContextHandle); VerifyOrReturnStatus(newCtx, ALIRO_NO_MEMORY, LOG_ERR("Memory allocation failed for session context.")); - newCtx->mUwbSessionContext = sessionCtx.mUwbSessionContext; - newCtx->mSessionContextData = sessionCtx.mSessionContextData; - MutexGuard lock{ mMutex }; sys_slist_append(&mActiveSessionsList, &newCtx->mSessionContextNode); @@ -666,37 +648,40 @@ void UltraWideBandImpl::DestroySession(SessionContext *sessionCtx) } } -AliroError UltraWideBandImpl::CheckAndUpdateQm35(bool skipVersionCheck) +AliroError UltraWideBandImpl::GetDeviceInfo() { - int err; - cherry_err cErr{}; - AliroError aErr{}; - - if (!skipVersionCheck && !Dfu::ShouldUpdate(mQm35FirmwareVersion.get())) { - return ALIRO_NO_ERROR; - } - - LOG_DBG("Starting firmware update, resetting device"); - - cErr = cherry_reset_device(mCtx, true); - if (cErr != CHERRY_ERR_NONE) { - LOG_ERR("cherry_reset failed with error %d", cErr); - return ALIRO_ERROR_UNKNOWN; - } - - mFwUpdateInProgress = true; + // Read Cherry device info. + const auto cErr = cherry_get_device_info(mCtx); + VerifyOrReturnStatus(cErr == CHERRY_ERR_NONE, ALIRO_ERROR_INTERNAL, + LOG_ERR("Failed to get device info: %s", cherry_err_str(cErr))); - _Deinit(); + // Wait for and handle device info event. + return HandleUwbEvent(UwbEvents::DeviceInfo, + [](CoreEvent *event) -> AliroError { return Instance().HandleDeviceInfoEvent(event); }); +} - err = Dfu::PerformFirmwareUpdate(); - aErr = _Init(mCallbacks); +AliroError UltraWideBandImpl::GetDeviceCapabilities() +{ + // Read Cherry device capabilities. + const auto cErr = cherry_get_device_capabilities(mCtx); + VerifyOrReturnStatus(cErr == CHERRY_ERR_NONE, ALIRO_ERROR_INTERNAL, + LOG_ERR("Failed to get device capabilities: %s", cherry_err_str(cErr))); - mFwUpdateInProgress = false; + // Wait for and handle device capabilities event. + return HandleUwbEvent(UwbEvents::DeviceCaps, + [](CoreEvent *event) -> AliroError { return Instance().HandleDeviceCapsEvent(event); }); +} - LOG_INF("Firmware update %s", (err ? "failed" : "successful")); +AliroError UltraWideBandImpl::SetCalibrationData() +{ + // Use full calibration data for the QM35825 device. + // This needs to be done only once during initialization, or after a power cycle. + const auto calibData = &util_calib_qm35825; + const auto cErr = cherry_set_calib(mCtx, calibData); + VerifyOrReturnStatus(cErr == CHERRY_ERR_NONE, ALIRO_ERROR_INTERNAL, + LOG_ERR("Failed to set calibration data: %s", cherry_err_str(cErr))); - // If DFU was succesful report init's result - return (err == 0 ? aErr : ALIRO_UWB_DFU_FAILED); + return ALIRO_NO_ERROR; } } // namespace Aliro::Uwb diff --git a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.h b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.h index 6c863d92..ee27b995 100644 --- a/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.h +++ b/app/src/aliro/platform/uwb_impl/uwb_qm35_impl/uwb_impl.h @@ -7,7 +7,7 @@ #pragma once #include "aliro/errors.h" -#include "uwb/uwb.h" +#include "uwb.h" #include #include @@ -50,12 +50,11 @@ class UltraWideBandImpl : public UltraWideBand { } AliroError _Init(const Callbacks &callbacks); - void _SetStackCallbacks(const StackCallbacks &callbacks); AliroError _Deinit(); void _BleTimeSync(); AliroError _HandleBleMessage(const uint8_t *data, size_t length, SessionContextHandle sessionContextData); AliroError _ConfigureRangingSession(SessionIdentifier sessionId, const CryptoTypes::Ursk &ursk, - ProtocolVersion protocolVersion, SessionContextHandle sessionContextData); + ProtocolVersion protocolVersion, SessionContextHandle sessionContextHandle); AliroError _InitiateRangingSession(SessionContextHandle sessionContextData); AliroError _TerminateRangingSession(SessionContextHandle sessionContextData); AliroError _SuspendRangingSession(SessionContextHandle sessionContextData); @@ -68,6 +67,28 @@ class UltraWideBandImpl : public UltraWideBand { */ const char *GetQm35FirmwareVersion() const { return mQm35FirmwareVersion.get(); } + /** + * @brief Indicates whether the UWB module has been fully initialized. + * + * When true, device info and capabilities have been retrieved and cached. + */ + bool IsInitialized() const { return mInitialized; } + + struct CccCaps { + uint8_t mSlotBitmask; + uint8_t mChannelBitmask; + uint8_t mHoppingConfigBitmask; + uint32_t mSyncCodeIndexBitmask; + uint8_t mMinimumRanMultiplier; + }; + + /** + * @brief Gets the CCC capabilities. + * + * @return Pointer to the CCC capabilities structure, or nullptr if not available. + */ + const CccCaps *GetCccCapabilities() const { return mCccCapsValid ? &mCccCaps : nullptr; } + // Delete copy and move constructors and assignment operators. UltraWideBandImpl(const UltraWideBandImpl &) = delete; UltraWideBandImpl &operator=(const UltraWideBandImpl &) = delete; @@ -85,9 +106,14 @@ class UltraWideBandImpl : public UltraWideBand { * for efficient linked list management following Zephyr patterns. */ struct SessionContext { + SessionContext(UwbSessionContext uwbSessionContext, SessionContextHandle sessionContextData) + : mUwbSessionContext(uwbSessionContext), mSessionContextData(sessionContextData) + { + } + sys_snode_t mSessionContextNode{}; - UwbSessionContext mUwbSessionContext{}; - SessionContextHandle mSessionContextData{}; + UwbSessionContext mUwbSessionContext; + SessionContextHandle mSessionContextData; cherry_ccc_session_state mSessionState{ CHERRY_CCC_SESSION_STATE_INIT }; RangingSessionState mRangingSessionState{ RangingSessionState::Uninitialized }; }; @@ -181,11 +207,12 @@ class UltraWideBandImpl : public UltraWideBand { /** * @brief Adds a session context to the list. * - * @param sessionCtx The session context to add. + * @param uwbSessionCtx The UWB session context. + * @param sessionContextHandle The session context data. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ - AliroError AddSession(const SessionContext &sessionCtx); + AliroError AddSession(UwbSessionContext uwbSessionContext, SessionContextHandle sessionContextHandle); /** * @brief Removes and destroys a session from the list. @@ -210,27 +237,37 @@ class UltraWideBandImpl : public UltraWideBand { void DestroySession(SessionContext *sessionCtx); /** - * @brief Perform firmware update procedure for QM35 if needed. + * @brief Retrieves device information from the QM35 UWB device. * - * This method compares QM35 version to one stored in the primary slot. If the version is - * newer it will restart QM35, perform update, and re-initialize. + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetDeviceInfo(); + + /** + * @brief Retrieves device capabilities from the QM35 UWB device. * - * @param skipVersionCheck Skip version comparison + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetDeviceCapabilities(); + + /** + * @brief Sets the calibration data for the QM35825 UWB device. * * @return ALIRO_NO_ERROR on success, error code otherwise. */ - AliroError CheckAndUpdateQm35(bool skipVersionCheck); + AliroError SetCalibrationData(); CoreEvent *mCoreEvent{}; Callbacks mCallbacks{}; - StackCallbacks mStackCallbacks{}; cherry *mCtx{}; aliro_uwb_adapter *mAliroCtx{}; std::unique_ptr mQm35FirmwareVersion{ nullptr }; + CccCaps mCccCaps{}; + bool mCccCapsValid{ false }; + bool mInitialized{ false }; ActiveSessionsList mActiveSessionsList{}; k_mutex mMutex{}; std::array mCurrentDistanceCm{}; - bool mFwUpdateInProgress{ false }; aliro_uwb_adapter_reader_config mReaderConfig = { .min_ran_multiplier = CONFIG_DOOR_LOCK_UWB_MIN_RAN_MULTIPLIER, diff --git a/app/src/aliro/storage/CMakeLists.txt b/app/src/aliro/storage/CMakeLists.txt index 25de9ea9..061e11da 100644 --- a/app/src/aliro/storage/CMakeLists.txt +++ b/app/src/aliro/storage/CMakeLists.txt @@ -4,7 +4,14 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -file(GLOB src CONFIGURE_DEPENDS ./*.cpp) +target_sources(app PRIVATE + reader_cache.cpp + storage.cpp +) +target_sources_ifdef(CONFIG_DOOR_LOCK_STEP_UP_PHASE app PRIVATE validity_iterations.cpp) -zephyr_library_sources(${src}) -zephyr_include_directories(.) +if(CONFIG_DOOR_LOCK_STEP_UP_PHASE AND CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS GREATER 0) + target_sources(app PRIVATE access_document.cpp) +endif() + +target_include_directories(app PRIVATE .) diff --git a/app/src/aliro/storage/Kconfig b/app/src/aliro/storage/Kconfig index a33dd0e4..e38e2b0b 100644 --- a/app/src/aliro/storage/Kconfig +++ b/app/src/aliro/storage/Kconfig @@ -4,8 +4,11 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menu "Storage" + config DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS int "Maximum number of stored Access Documents" + default 0 if SOC_SERIES_NRF52X default 5 if DOOR_LOCK_STEP_UP_PHASE default 0 help @@ -19,3 +22,5 @@ config DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENT_SIZE default 0 help Specifies the maximum size of the stored Access Document. + +endmenu # Storage diff --git a/app/src/aliro/storage/access_document.cpp b/app/src/aliro/storage/access_document.cpp index d6e49405..e166d966 100644 --- a/app/src/aliro/storage/access_document.cpp +++ b/app/src/aliro/storage/access_document.cpp @@ -4,15 +4,13 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE - #include "access_document.h" #include "access_manager_impl.h" #include "aliro/utils.h" -#include "storage.h" -#include "storage_keys.h" +#include "external_nvs_ids.h" +#include #include LOG_MODULE_REGISTER(access_document, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); @@ -21,16 +19,33 @@ namespace Aliro { namespace { -StorageKeys::KeyNameBuffer GetStorageKeyName(size_t index) +DoorLock::ExternalNvs::Id GetExternalNvsId(size_t index) +{ + return DoorLock::ExternalNvsIds::AccessDocument::kRangeStart + static_cast(index); +} + +bool IsIndexInRange(size_t index) { - return KeyValueStorage::GetStorageKeyName(StorageKeys::kStorageKeyNameAccessDocument, index); + return index < DoorLock::ExternalNvsIds::AccessDocument::kRangeSize; } int ReadAccessDocumentHelper(size_t index, AccessDocument &ad) { - const auto keyName = GetStorageKeyName(index); - return KeyValueStorage::Instance().Get(keyName.data(), reinterpret_cast(&ad), - sizeof(AccessDocument)); + const auto id = GetExternalNvsId(index); + size_t len = sizeof(AccessDocument); + const auto error = DoorLock::ExternalNvs::Read(id, &ad, len); + + if (error != 0) { + return error; + } + + if (len != sizeof(AccessDocument)) { + LOG_ERR("Invalid Access Document size at index: %zu, expected: %zu, got: %zu", index, + sizeof(AccessDocument), len); + return -EIO; + } + + return 0; } } // namespace @@ -40,18 +55,18 @@ AliroError LoadAccessDocuments() AccessDocument ad; for (size_t index = 0; index < CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS; index++) { const auto error = ReadAccessDocumentHelper(index, ad); - if (error == -ENODATA) { + if (error == -ENOENT) { continue; } VerifyOrReturnStatus(error == 0, AliroError::FromInt(error), - LOG_ERR("Failed to read Access Document at index: %u, error code: %d", index, + LOG_ERR("Failed to read Access Document at index: %zu, error code: %d", index, error)); ReturnErrorOnFailure(AccessManagerInstance().AddPublicKey( ad.mPublicKey, AccessManager::PublicKeyType::AccessDocument, index)); - LOG_DBG("Loaded AD at index: %u, Version: %u, CI index: %u, Timestamp: %.*s, Access Iteration: %" PRIu64, + LOG_DBG("Loaded AD at index: %zu, Version: %u, CI index: %u, Timestamp: %.*s, Access Iteration: %" PRIu64, index, ad.mVersion, ad.mCredentialIssuerKeyIndex, ad.mSignedTimestamp.size(), ad.mSignedTimestamp.data(), ad.mAccessIteration); } @@ -61,34 +76,40 @@ AliroError LoadAccessDocuments() AliroError StoreAccessDocument(size_t index, const AccessDocument &ad) { - const auto keyName = GetStorageKeyName(index); - const auto error = KeyValueStorage::Instance().Save(keyName.data(), reinterpret_cast(&ad), - sizeof(AccessDocument)); + VerifyOrReturnStatus(IsIndexInRange(index), ALIRO_INVALID_ARGUMENT, + LOG_ERR("Access Document index out of range: %zu", index)); + + const auto id = GetExternalNvsId(index); + const auto error = DoorLock::ExternalNvs::Write(id, &ad, sizeof(AccessDocument)); VerifyOrReturnStatus(error == 0, AliroError::FromInt(error), - LOG_ERR("Failed to store Access Document at index: %u", index)); + LOG_ERR("Failed to store Access Document at index: %zu", index)); return ALIRO_NO_ERROR; } AliroError ReadAccessDocument(size_t index, AccessDocument &ad) { + VerifyOrReturnStatus(IsIndexInRange(index), ALIRO_INVALID_ARGUMENT, + LOG_ERR("Access Document index out of range: %zu", index)); + const auto error = ReadAccessDocumentHelper(index, ad); VerifyOrReturnStatus(error == 0, AliroError::FromInt(error), - LOG_ERR("Failed to get Access Document at index: %u", index)); + LOG_ERR("Failed to get Access Document at index: %zu", index)); return ALIRO_NO_ERROR; } AliroError ClearAccessDocument(size_t index) { - const auto keyName = GetStorageKeyName(index); - const auto error = KeyValueStorage::Instance().Clear(keyName.data()); + VerifyOrReturnStatus(IsIndexInRange(index), ALIRO_INVALID_ARGUMENT, + LOG_ERR("Access Document index out of range: %zu", index)); + + const auto id = GetExternalNvsId(index); + const auto error = DoorLock::ExternalNvs::Delete(id); VerifyOrReturnStatus(error == 0, AliroError::FromInt(error), - LOG_ERR("Failed to clear Access Document at index: %u", index)); + LOG_ERR("Failed to clear Access Document at index: %zu", index)); return ALIRO_NO_ERROR; } } // namespace Aliro - -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE diff --git a/app/src/aliro/storage/access_document.h b/app/src/aliro/storage/access_document.h index 973f6da3..8ec88975 100644 --- a/app/src/aliro/storage/access_document.h +++ b/app/src/aliro/storage/access_document.h @@ -4,8 +4,6 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE - #pragma once #include "aliro/errors.h" @@ -77,5 +75,3 @@ AliroError StoreAccessDocument(size_t index, const AccessDocument &ad); AliroError ClearAccessDocument(size_t index); } // namespace Aliro - -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE diff --git a/app/src/aliro/storage/external_nvs_ids.h b/app/src/aliro/storage/external_nvs_ids.h new file mode 100644 index 00000000..ca54d974 --- /dev/null +++ b/app/src/aliro/storage/external_nvs_ids.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include + +namespace DoorLock::ExternalNvsIds::AccessDocument { + +#if CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + +constexpr ExternalNvs::Id kRangeStart{ 0 }; +constexpr ExternalNvs::Id kRangeSize{ CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS }; + +#endif // CONFIG_DOOR_LOCK_STORAGE_MAX_STORED_ACCESS_DOCUMENTS > 0 + +} // namespace DoorLock::ExternalNvsIds::AccessDocument diff --git a/app/src/aliro/storage/reader_certificate_cache.cpp b/app/src/aliro/storage/reader_cache.cpp similarity index 50% rename from app/src/aliro/storage/reader_certificate_cache.cpp rename to app/src/aliro/storage/reader_cache.cpp index 36dcc198..09cdb01b 100644 --- a/app/src/aliro/storage/reader_certificate_cache.cpp +++ b/app/src/aliro/storage/reader_cache.cpp @@ -4,7 +4,7 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#include "reader_certificate_cache.h" +#include "reader_cache.h" #include "aliro/memory.h" #include "aliro/utils.h" @@ -12,22 +12,65 @@ #include #include -LOG_MODULE_REGISTER(reader_certificate_cache, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); +LOG_MODULE_REGISTER(reader_cache, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); namespace Aliro { -ReaderCertificateCache &ReaderCertificateCache::Instance() +ReaderCache &ReaderCache::Instance() { - static ReaderCertificateCache instance; + static ReaderCache instance; return instance; } -bool ReaderCertificateCache::IsCertificateSet() const +bool ReaderCache::IsIdentifierSet() const +{ + return mIdentifier.has_value(); +} + +AliroError ReaderCache::SetIdentifier(const Identifier &identifier) +{ + mIdentifier = identifier; + return ALIRO_NO_ERROR; +} + +AliroError ReaderCache::GetIdentifier(Identifier &identifier) const +{ + VerifyOrReturnStatus(mIdentifier.has_value(), ALIRO_ERROR_INTERNAL, LOG_ERR("Reader identifier is not set")); + + identifier = mIdentifier.value(); + return ALIRO_NO_ERROR; +} + +void ReaderCache::ClearIdentifier() +{ + mIdentifier.reset(); +} + +AliroError ReaderCache::SetPublicKey(const CryptoTypes::PublicKey &publicKey) +{ + mPublicKey = publicKey; + return ALIRO_NO_ERROR; +} + +AliroError ReaderCache::GetPublicKey(CryptoTypes::PublicKey &publicKey) const +{ + VerifyOrReturnStatus(mPublicKey.has_value(), ALIRO_ERROR_INTERNAL, LOG_ERR("Reader public key is not set")); + + publicKey = mPublicKey.value(); + return ALIRO_NO_ERROR; +} + +void ReaderCache::ClearPublicKey() +{ + mPublicKey.reset(); +} + +bool ReaderCache::IsCertificateSet() const { return mCertificate.get() != nullptr; } -AliroError ReaderCertificateCache::SetCertificate(const Certificate &certificate) +AliroError ReaderCache::SetCertificate(const Certificate &certificate) { VerifyOrReturnStatus(certificate.mData != nullptr, ALIRO_INVALID_ARGUMENT, LOG_ERR("Certificate data is null")); VerifyOrReturnStatus(certificate.mLength != 0, ALIRO_INVALID_ARGUMENT, LOG_ERR("Certificate length is zero")); @@ -43,18 +86,18 @@ AliroError ReaderCertificateCache::SetCertificate(const Certificate &certificate return ALIRO_NO_ERROR; } -void ReaderCertificateCache::ClearCertificate() +void ReaderCache::ClearCertificate() { mCertificate.reset(); mCertificateLength = 0; } -bool ReaderCertificateCache::IsIssuerPublicKeySet() const +bool ReaderCache::IsIssuerPublicKeySet() const { return mIssuerPublicKey.has_value(); } -AliroError ReaderCertificateCache::GetCertificate(Certificate &certificate) const +AliroError ReaderCache::GetCertificate(Certificate &certificate) const { VerifyOrReturnStatus(mCertificate.get() != nullptr, ALIRO_ERROR_INTERNAL, LOG_ERR("Reader certificate is not set")); @@ -63,7 +106,7 @@ AliroError ReaderCertificateCache::GetCertificate(Certificate &certificate) cons return ALIRO_NO_ERROR; } -AliroError ReaderCertificateCache::SetIssuerPublicKey(const CryptoTypes::PublicKey &publicKey) +AliroError ReaderCache::SetIssuerPublicKey(const CryptoTypes::PublicKey &publicKey) { VerifyOrReturnStatus(publicKey[0] == CryptoTypes::kEccP256PublicKeyPrefix, ALIRO_INVALID_ARGUMENT, LOG_ERR("Invalid issuer public key prefix")); @@ -72,7 +115,7 @@ AliroError ReaderCertificateCache::SetIssuerPublicKey(const CryptoTypes::PublicK return ALIRO_NO_ERROR; } -AliroError ReaderCertificateCache::GetIssuerPublicKey(CryptoTypes::PublicKey &publicKey) const +AliroError ReaderCache::GetIssuerPublicKey(CryptoTypes::PublicKey &publicKey) const { VerifyOrReturnStatus(mIssuerPublicKey.has_value(), ALIRO_ERROR_INTERNAL, LOG_ERR("Issuer public key is not set")); @@ -81,7 +124,7 @@ AliroError ReaderCertificateCache::GetIssuerPublicKey(CryptoTypes::PublicKey &pu return ALIRO_NO_ERROR; } -void ReaderCertificateCache::ClearIssuerPublicKey() +void ReaderCache::ClearIssuerPublicKey() { mIssuerPublicKey.reset(); } diff --git a/app/src/aliro/storage/reader_certificate_cache.h b/app/src/aliro/storage/reader_cache.h similarity index 52% rename from app/src/aliro/storage/reader_certificate_cache.h rename to app/src/aliro/storage/reader_cache.h index 645841e2..4fd58b1f 100644 --- a/app/src/aliro/storage/reader_certificate_cache.h +++ b/app/src/aliro/storage/reader_cache.h @@ -15,13 +15,15 @@ namespace Aliro { /** - * @brief Singleton class for caching the Reader certificate. + * @brief Singleton class for caching Reader data. * - * This class manages the Reader certificate that is sent during the LOAD_CERT command. - * The certificate can be provisioned via CLI and is stored in RAM for quick access. - * If no certificate is provisioned, the LOAD_CERT state is skipped. + * This class manages Reader provisioning data used by the application: + * - Reader identifier + * - Reader public key + * - Reader certificate + * - Reader System Issuer public key */ -class ReaderCertificateCache { +class ReaderCache { public: /** * @brief Type alias for certificate data. @@ -33,7 +35,60 @@ class ReaderCertificateCache { * * @return Reference to the singleton instance. */ - static ReaderCertificateCache &Instance(); + static ReaderCache &Instance(); + + /** + * @brief Checks if the Reader identifier is set. + * + * @return True if the Reader identifier is set, false otherwise. + */ + bool IsIdentifierSet() const; + + /** + * @brief Sets the Reader identifier. + * + * @param identifier The Reader identifier. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError SetIdentifier(const Identifier &identifier); + + /** + * @brief Gets the Reader identifier. + * + * @param identifier The Reader identifier. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetIdentifier(Identifier &identifier) const; + + /** + * @brief Clears the Reader identifier. + */ + void ClearIdentifier(); + + /** + * @brief Sets the Reader public key. + * + * @param publicKey The Reader public key. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError SetPublicKey(const CryptoTypes::PublicKey &publicKey); + + /** + * @brief Gets the Reader public key. + * + * @param publicKey The Reader public key. + * + * @return ALIRO_NO_ERROR on success, error code otherwise. + */ + AliroError GetPublicKey(CryptoTypes::PublicKey &publicKey) const; + + /** + * @brief Clears the Reader public key. + */ + void ClearPublicKey(); /** * @brief Checks if the Reader certificate is set. @@ -95,17 +150,19 @@ class ReaderCertificateCache { void ClearIssuerPublicKey(); private: - ReaderCertificateCache() = default; - ~ReaderCertificateCache() = default; + ReaderCache() = default; + ~ReaderCache() = default; - ReaderCertificateCache(const ReaderCertificateCache &) = delete; - ReaderCertificateCache &operator=(const ReaderCertificateCache &) = delete; - ReaderCertificateCache(ReaderCertificateCache &&) = delete; - ReaderCertificateCache &operator=(ReaderCertificateCache &&) = delete; + ReaderCache(const ReaderCache &) = delete; + ReaderCache &operator=(const ReaderCache &) = delete; + ReaderCache(ReaderCache &&) = delete; + ReaderCache &operator=(ReaderCache &&) = delete; + std::optional mIdentifier{}; std::unique_ptr mCertificate{}; size_t mCertificateLength{ 0 }; std::optional mIssuerPublicKey{}; + std::optional mPublicKey{}; }; } // namespace Aliro diff --git a/app/src/aliro/storage/validity_iterations.cpp b/app/src/aliro/storage/validity_iterations.cpp index bbba29c9..80b85275 100644 --- a/app/src/aliro/storage/validity_iterations.cpp +++ b/app/src/aliro/storage/validity_iterations.cpp @@ -4,7 +4,6 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE #include "validity_iterations.h" #include "aliro/utils.h" @@ -56,5 +55,3 @@ AliroError ClearValidityIterations(size_t credentialIssuerKeyIndex) } } // namespace Aliro - -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE diff --git a/app/src/aliro/storage/validity_iterations.h b/app/src/aliro/storage/validity_iterations.h index 90e889b9..1dd17167 100644 --- a/app/src/aliro/storage/validity_iterations.h +++ b/app/src/aliro/storage/validity_iterations.h @@ -4,8 +4,6 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE - #pragma once #include "aliro/errors.h" @@ -26,5 +24,3 @@ AliroError StoreValidityIterations(size_t credentialIssuerKeyIndex, const Validi AliroError ClearValidityIterations(size_t credentialIssuerKeyIndex); } // namespace Aliro - -#endif // CONFIG_DOOR_LOCK_STEP_UP_PHASE diff --git a/app/src/aliro/test_key.h b/app/src/aliro/test_key.h deleted file mode 100644 index c1260b0a..00000000 --- a/app/src/aliro/test_key.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2024 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause - */ - -#pragma once - -#include "aliro/types.h" - -/* ECDSA long term keys generated with openssl: - openssl ecparam -name secp256k1 -genkey -noout -out ec-secp256k1-priv-key.pem - openssl ec -in ec-secp256k1-priv-key.pem -pubout > ec-secp256k1-pub-key.pem -*/ -constexpr Aliro::CryptoTypes::PrivateKey mPrivateKey = - Aliro::CryptoTypes::PrivateKey{ 0xfd, 0xf7, 0x1a, 0x37, 0x14, 0xe0, 0x78, 0xc2, 0xc2, 0xfa, 0x90, - 0x7a, 0xe9, 0xac, 0xf6, 0x24, 0xaa, 0x98, 0xad, 0xd7, 0xed, 0xf7, - 0x50, 0x0e, 0x61, 0xcf, 0x8a, 0xf4, 0xcc, 0x5a, 0x70, 0xa9 }; diff --git a/app/src/aliro/utils/hex_string.h b/app/src/aliro/utils/hex_string.h new file mode 100644 index 00000000..976f6a45 --- /dev/null +++ b/app/src/aliro/utils/hex_string.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace DoorLock::Utils { + +namespace Detail { + +template using RemoveCvRefType = std::remove_cv_t>; + +template struct IsByteArray : std::false_type {}; + +template struct IsByteArray> : std::true_type {}; + +template inline constexpr bool kIsByteArray = IsByteArray>::value; + +template constexpr size_t GetArraySize() +{ + using ObjectType = RemoveCvRefType; + static_assert(kIsByteArray, "Object type must be std::array"); + return std::tuple_size::value; +} + +template struct HexStringBufferType; + +template struct HexStringBufferType> { + using Type = std::array; +}; + +} // namespace Detail + +/** + * @brief Hex string buffer type for a std::array object type. + * + * Produces a null-terminated character buffer large enough to hold the + * hexadecimal representation of @p TObject: + * - 2 characters per byte + * - plus 1 character for the null terminator + * + * @tparam TObject `std::array` object type to be formatted. + */ +template +using HexStringBuffer = typename Detail::HexStringBufferType>::Type; + +/** + * @brief Convert a std::array object to a hexadecimal C-string. + * + * The function formats up to @p length bytes from @p object into @p buffer + * using `bin2hex`. If @p length is omitted, it defaults to the number of + * elements in the array (`N` for `std::array`). + * + * Compile-time checks enforce: + * - @p TObject is `std::array` + * - @p TBuffer matches `HexStringBuffer` + * + * @tparam TBuffer Character buffer type, expected to be `HexStringBuffer`. + * @tparam TObject Input object type, expected to be `std::array`. + * @param buffer Output hex string buffer. + * @param object Input data object to format. + * @param length Number of bytes to print. Defaults to `N`. + * + * @retval true Conversion completed and produced exactly `length * 2` characters. + * @retval false `length` exceeds object byte size or conversion result is invalid. + */ +template +inline bool ArrayToHexString(TBuffer &buffer, const TObject &object, size_t length = Detail::GetArraySize()) +{ + using ObjectType = Detail::RemoveCvRefType; + using BufferType = Detail::RemoveCvRefType; + + static_assert(Detail::kIsByteArray, "Object type must be std::array"); + static_assert(std::is_same_v>, + "Buffer type must match the object hex buffer type"); + + if (length > Detail::GetArraySize()) { + return false; + } + + const size_t convertedLength = bin2hex(object.data(), length, buffer.data(), buffer.size()); + return convertedLength == length * 2; +} + +} // namespace DoorLock::Utils diff --git a/app/src/bt_nus/Kconfig b/app/src/bt_nus/Kconfig index 08fefa03..d154d097 100644 --- a/app/src/bt_nus/Kconfig +++ b/app/src/bt_nus/Kconfig @@ -4,6 +4,20 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menuconfig DOOR_LOCK_BLE_NUS + bool "Nordic UART Service (NUS)" + depends on !CHIP + help + Enables the Bluetooth LE Nordic Uart Service (NUS). Using NUS service you can control a door lock using pre-defined BLE commands. + +if DOOR_LOCK_BLE_NUS + +config DOOR_LOCK_BT_NUS_MAX_COMMANDS + int "Maximum number of NUS commands" + default 2 + help + Define the maximum number of NUS commands to declare by user. + config DOOR_LOCK_BT_NUS_MAX_COMMAND_LEN int "Maximum length of single command in Bytes" default 10 @@ -12,14 +26,10 @@ config DOOR_LOCK_BT_NUS_MAX_COMMAND_LEN a paired smart door lock. config DOOR_LOCK_BT_NUS_APP_PASSKEY - int "Define the default passkey for NUS" + int "Default passkey" depends on BT_APP_PASSKEY default 123456 help Define the default password for pairing with the Bluetooth LE device. -config DOOR_LOCK_BT_NUS_MAX_COMMANDS - int "Define maximum NUS commands amount" - default 1 - help - Define the maximum number of NUS commands to declare by user. +endif # DOOR_LOCK_BLE_NUS diff --git a/app/src/bt_nus/bt_nus.cpp b/app/src/bt_nus/bt_nus.cpp index 72c6ed99..f5894c0e 100644 --- a/app/src/bt_nus/bt_nus.cpp +++ b/app/src/bt_nus/bt_nus.cpp @@ -6,30 +6,27 @@ #include "bt_nus.h" -#include "aliro/ble_types.h" #include "aliro/utils.h" -#include "aliro/platform/ble/ble_manager_impl.h" +#include "aliro/platform/ble/ble_advertising_arbiter.h" #include #include #include #include +#include + LOG_MODULE_REGISTER(NusService, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); namespace Aliro::BtNus { -using BleInterface::BleManagerImpl; +namespace BleArbiter = DoorLock::Interface::BleAdvertisingArbiter; AliroError NUSService::Start() { VerifyOrReturnStatus(!mIsStarted, ALIRO_INVALID_STATE, LOG_ERR("NUS service is already started")); -#if !defined(CONFIG_DOOR_LOCK_DFU_BLE_SMP) && !defined(CONFIG_DOOR_LOCK_BLE_UWB) - VerifyOrReturnStatus(BleManagerImpl::Instance().Init({}) == ALIRO_NO_ERROR, ALIRO_ERROR_INTERNAL); -#endif // !CONFIG_DOOR_LOCK_DFU_BLE_SMP && !CONFIG_DOOR_LOCK_BLE_UWB - static bt_conn_auth_cb sConnAuthCallbacks = { .passkey_display = [](bt_conn *conn, unsigned int passkey) { Instance().AuthPasskeyDisplay(conn, passkey); }, @@ -45,8 +42,7 @@ AliroError NUSService::Start() static bt_conn_auth_info_cb sConnAuthInfoCallbacks = { .pairing_complete = [](bt_conn *conn, bool bonded) { Instance().PairingComplete(conn, bonded); }, - .pairing_failed = [](bt_conn *conn, - enum bt_security_err reason) { Instance().PairingFailed(conn, reason); }, + .pairing_failed = [](bt_conn *conn, bt_security_err reason) { Instance().PairingFailed(conn, reason); }, }; static bt_nus_cb sNusCallbacks = { @@ -61,15 +57,21 @@ AliroError NUSService::Start() VerifyOrReturnStatus(bt_nus_init(&sNusCallbacks) == 0, ALIRO_ERROR_INTERNAL, LOG_ERR("Failed to initialize NUS service")); -#ifndef CONFIG_DOOR_LOCK_BLE_UWB + mRequest = BleArbiter::Request{ .mOptions = BT_LE_ADV_OPT_CONN, + .mMinInterval = BT_GAP_ADV_FAST_INT_MIN_2, + .mMaxInterval = BT_GAP_ADV_FAST_INT_MAX_2 }; - AliroError err = BleManagerImpl::Instance().StartAdvertising({ kNusUuid.data(), kNusUuid.size() }, - BleTypes::AdvertisingDataFieldType::Uuid128All); + // Set advertising data buffers + mRequest.mAdvertisingData[0] = BT_DATA(BT_DATA_FLAGS, &kAdvertisingFlags, sizeof(kAdvertisingFlags)); + mRequest.mAdvertisingData[1] = BT_DATA(BT_DATA_UUID128_ALL, kNusUuid.data(), kNusUuid.size()); - VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, - LOG_ERR("NUS advertising failed to start (rc %d)", err.ToInt())); + const char *deviceName = bt_get_name(); + mRequest.mScanResponseData[0] = + BT_DATA(BT_DATA_NAME_COMPLETE, deviceName, static_cast(strlen(deviceName))); -#endif // CONFIG_DOOR_LOCK_BLE_UWB + AliroError err = BleArbiter::InsertRequest(BleArbiter::Component::Nus, mRequest); + VerifyOrReturnStatus(err == ALIRO_NO_ERROR, err, + LOG_ERR("NUS advertising request failed (rc %d)", err.ToInt())); mIsStarted = true; LOG_INF("NUS service started"); @@ -80,8 +82,7 @@ void NUSService::StopServer() { VerifyOrReturn(IsNusStarted(), LOG_ERR("NUS service not started")); - AliroError err = BleManagerImpl::Instance().StopAdvertising(); - VerifyOrReturn(err == ALIRO_NO_ERROR, LOG_ERR("NUS advertising failed to stop (rc %d)", err.ToInt())); + BleArbiter::CancelRequest(BleArbiter::Component::Nus); mIsStarted = false; LOG_INF("NUS service stopped"); @@ -169,7 +170,7 @@ void NUSService::Connected(bt_conn *conn, uint8_t err) mBTConnection = conn; bt_conn_set_security(conn, BT_SECURITY_L3); - LOG_DBG("NUS connected"); + LOG_INF("NUS connected"); } void NUSService::Disconnected(bt_conn *, uint8_t reason) @@ -177,7 +178,7 @@ void NUSService::Disconnected(bt_conn *, uint8_t reason) VerifyOrReturn(IsNusStarted(), LOG_DBG("NUS service not started, ignoring disconnection")); mBTConnection = nullptr; - LOG_DBG("NUS disconnected (reason: %u)", reason); + LOG_INF("NUS disconnected (reason: %u)", reason); } void NUSService::SecurityChanged(bt_conn *conn, bt_security_t level, bt_security_err err) @@ -215,7 +216,7 @@ void NUSService::PairingComplete(bt_conn *conn, bool bonded) LOG_DBG("NUS BT Pairing completed: %s, bonded: %d", GetAddressString(conn), bonded); } -void NUSService::PairingFailed(bt_conn *conn, enum bt_security_err reason) +void NUSService::PairingFailed(bt_conn *conn, bt_security_err reason) { VerifyOrReturn(IsNusStarted(), LOG_DBG("NUS service not started, ignoring pairing failed")); LOG_ERR("NUS BT Pairing failed to %s : reason %d", GetAddressString(conn), static_cast(reason)); diff --git a/app/src/bt_nus/bt_nus.h b/app/src/bt_nus/bt_nus.h index f57f426d..3a605381 100644 --- a/app/src/bt_nus/bt_nus.h +++ b/app/src/bt_nus/bt_nus.h @@ -7,6 +7,7 @@ #pragma once #include "aliro/errors.h" +#include "aliro/platform/ble/ble_advertising_arbiter.h" #include #include @@ -102,6 +103,12 @@ class NUSService { // NUS service UUID. static constexpr std::array kNusUuid{ BT_UUID_NUS_VAL }; + + // Advertising flags. + static constexpr uint8_t kAdvertisingFlags{ BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR }; + + // Advertising data storage. + DoorLock::Interface::BleAdvertisingArbiter::Request mRequest{}; }; } // namespace Aliro::BtNus diff --git a/app/src/dfu_smp/CMakeLists.txt b/app/src/dfu_smp/CMakeLists.txt index 7be6a6e5..bd30794d 100644 --- a/app/src/dfu_smp/CMakeLists.txt +++ b/app/src/dfu_smp/CMakeLists.txt @@ -8,7 +8,7 @@ zephyr_include_directories(.) zephyr_library_sources(dfu_smp_manager.cpp) -if(NOT CONFIG_DOOR_LOCK_BLE_UWB AND NOT CONFIG_DOOR_LOCK_BLE_NUS AND CONFIG_SHELL) +if(CONFIG_SHELL) zephyr_library_sources(dfu_smp_shell.cpp) endif() diff --git a/app/src/dfu_smp/Kconfig b/app/src/dfu_smp/Kconfig index 3e323a78..19b2f5a3 100644 --- a/app/src/dfu_smp/Kconfig +++ b/app/src/dfu_smp/Kconfig @@ -4,8 +4,18 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # +menuconfig DOOR_LOCK_DFU_BLE_SMP + bool "DFU over SMP" + depends on !CHIP + help + Enables Device Firmware Upgrade over Bluetooth LE. + +if DOOR_LOCK_DFU_BLE_SMP + module = DFU_SMP module-str = DFU_SMP module-dep = LOG module-help = Enables DFU SMP module log messages. source "$(ZEPHYR_BASE)/subsys/logging/Kconfig.template.log_config" + +endif # DOOR_LOCK_DFU_BLE_SMP diff --git a/app/src/dfu_smp/dfu_smp_manager.cpp b/app/src/dfu_smp/dfu_smp_manager.cpp index 17f01604..80d68f17 100644 --- a/app/src/dfu_smp/dfu_smp_manager.cpp +++ b/app/src/dfu_smp/dfu_smp_manager.cpp @@ -6,11 +6,12 @@ #include "dfu_smp_manager.h" -#include "aliro/aliro.h" #include "aliro/ble_types.h" #include "aliro/utils.h" -#include "aliro/platform/ble/ble_manager_impl.h" +#include "aliro/aliro_work/aliro_work.h" + +#include "aliro/platform/ble/ble_advertising_arbiter.h" #include #include @@ -18,6 +19,9 @@ #include #include +#include +#include + LOG_MODULE_REGISTER(SmpManager, CONFIG_DFU_SMP_LOG_LEVEL); namespace { @@ -35,9 +39,7 @@ mgmt_cb_return UploadConfirmHandler(uint32_t, mgmt_cb_return, int32_t *, uint16_ namespace Aliro::Dfu { -#ifndef CONFIG_DOOR_LOCK_BLE_UWB - -using BleInterface::BleManagerImpl; +namespace BleArbiter = DoorLock::Interface::BleAdvertisingArbiter; AliroError SmpManager::InitButton() { @@ -61,34 +63,37 @@ AliroError SmpManager::InitButton() void SmpManager::StartAdvertising() { - AliroError err{}; + mRequest = BleArbiter::Request{ .mOptions = BT_LE_ADV_OPT_CONN, + .mMinInterval = BT_GAP_ADV_FAST_INT_MIN_2, + .mMaxInterval = BT_GAP_ADV_FAST_INT_MAX_2 }; - err = BleManagerImpl::Instance().StartAdvertising({ kSmpUuid.data(), kSmpUuid.size() }, - BleTypes::AdvertisingDataFieldType::Uuid128All); - VerifyOrReturn(err == ALIRO_NO_ERROR, LOG_ERR("Dfu SMP advertising failed to start (rc %d)", err.ToInt())); + // Set advertising data buffers + mRequest.mAdvertisingData[0] = BT_DATA(BT_DATA_FLAGS, &kAdvertisingFlags, sizeof(kAdvertisingFlags)); + mRequest.mAdvertisingData[1] = BT_DATA(BT_DATA_UUID128_ALL, kSmpUuid.data(), kSmpUuid.size()); + + const char *deviceName = bt_get_name(); + mRequest.mScanResponseData[0] = + BT_DATA(BT_DATA_NAME_COMPLETE, deviceName, static_cast(strlen(deviceName))); + + AliroError err = BleArbiter::InsertRequest(BleArbiter::Component::Smp, mRequest); + VerifyOrReturn(err == ALIRO_NO_ERROR, LOG_ERR("DFU SMP advertising request failed (rc %d)", err.ToInt())); - LOG_INF("DFU SMP advertising started"); mIsAdvEnabled = true; } void SmpManager::StopAdvertising() { - AliroError err = BleManagerImpl::Instance().StopAdvertising(); - VerifyOrReturn(err == ALIRO_NO_ERROR, LOG_ERR("Dfu SMP advertising failed to stop (rc %d)", err.ToInt())); - + BleArbiter::CancelRequest(BleArbiter::Component::Smp); LOG_INF("DFU SMP advertising stopped"); - mIsAdvEnabled = false; } void SmpManager::Toggle() { VerifyOrReturn(mIsInitialized, LOG_ERR("DFU SMP module not initialized")); - k_work_submit(&mWork); + std::ignore = AliroWorkSubmit(&mWork); } -#endif // !CONFIG_DOOR_LOCK_BLE_UWB - AliroError SmpManager::Init() { static mgmt_callback sUploadCallback = { @@ -98,8 +103,6 @@ AliroError SmpManager::Init() mgmt_callback_register(&sUploadCallback); -#ifndef CONFIG_DOOR_LOCK_BLE_UWB - k_work_init(&mWork, []([[maybe_unused]] k_work *) { if (Instance().IsSmpEnabled()) { Instance().StopAdvertising(); @@ -108,13 +111,8 @@ AliroError SmpManager::Init() } }); - PlatformTransportCallbacks emptyCallbacks{}; - VerifyOrReturnStatus(BleManagerImpl::Instance().Init(emptyCallbacks) == ALIRO_NO_ERROR, ALIRO_ERROR_INTERNAL); - VerifyOrReturnStatus(InitButton() == ALIRO_NO_ERROR, ALIRO_ERROR_INTERNAL); -#endif // !CONFIG_DOOR_LOCK_BLE_UWB - mIsInitialized = true; LOG_DBG("DFU SMP module initialized"); diff --git a/app/src/dfu_smp/dfu_smp_manager.h b/app/src/dfu_smp/dfu_smp_manager.h index c4da6184..85e0ce8e 100644 --- a/app/src/dfu_smp/dfu_smp_manager.h +++ b/app/src/dfu_smp/dfu_smp_manager.h @@ -7,8 +7,10 @@ #pragma once #include "aliro/errors.h" +#include "aliro/platform/ble/ble_advertising_arbiter.h" #include +#include #include #include #include @@ -88,6 +90,12 @@ class SmpManager { // DFU SMP service UUID. static constexpr std::array kSmpUuid{ BT_UUID_DFU_SMP_SERVICE_VAL }; + + // Advertising flags. + static constexpr uint8_t kAdvertisingFlags{ BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR }; + + // Advertising data storage. + DoorLock::Interface::BleAdvertisingArbiter::Request mRequest{}; }; } // namespace Aliro::Dfu diff --git a/app/src/dfu_smp/dfu_smp_shell.cpp b/app/src/dfu_smp/dfu_smp_shell.cpp index 7864293b..a6ca9b4e 100644 --- a/app/src/dfu_smp/dfu_smp_shell.cpp +++ b/app/src/dfu_smp/dfu_smp_shell.cpp @@ -4,33 +4,42 @@ * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ -#include "dfu_smp_shell.h" #include "dfu_smp_manager.h" -#include "aliro/utils.h" + +#include + #include -int ShellCmdHandleDfuSmp(const struct shell *shell, size_t argc, char **argv) +namespace { + +int ShellCmdHandleDfuSmpOn(const struct shell *shell, size_t argc, char **) { - using namespace Aliro::Dfu; - - VerifyOrReturnValue(IN_RANGE(argc, 2, 2), -EINVAL, shell_print(shell, "Usage: dl dfu_smp ")); - - if (strcmp(argv[1], "on") == 0) { - VerifyOrReturnValue(!SmpManager::Instance().IsSmpEnabled(), -EINVAL, - shell_print(shell, "DFU BLE SMP already started")); - SmpManager::Instance().Toggle(); - shell_print(shell, "DFU BLE SMP started"); - return 0; - } - - if (strcmp(argv[1], "off") == 0) { - VerifyOrReturnValue(SmpManager::Instance().IsSmpEnabled(), -EINVAL, - shell_print(shell, "DFU BLE SMP already stopped")); - SmpManager::Instance().Toggle(); - shell_print(shell, "DFU BLE SMP stopped"); - return 0; - } - - shell_print(shell, "Usage: dl dfu_smp "); - return -EINVAL; + VerifyOrReturnValue(argc == 1, -EINVAL, shell_print(shell, "Usage: dl dfu_smp on")); + + VerifyOrReturnValue(!Aliro::Dfu::SmpManager::Instance().IsSmpEnabled(), -EINVAL, + shell_print(shell, "DFU BLE SMP already started")); + Aliro::Dfu::SmpManager::Instance().Toggle(); + + shell_print(shell, "DFU BLE SMP started"); + return 0; } + +int ShellCmdHandleDfuSmpOff(const struct shell *shell, size_t argc, char **) +{ + VerifyOrReturnValue(argc == 1, -EINVAL, shell_print(shell, "Usage: dl dfu_smp off")); + + VerifyOrReturnValue(Aliro::Dfu::SmpManager::Instance().IsSmpEnabled(), -EINVAL, + shell_print(shell, "DFU BLE SMP already stopped")); + Aliro::Dfu::SmpManager::Instance().Toggle(); + + shell_print(shell, "DFU BLE SMP stopped"); + return 0; +} + +SHELL_STATIC_SUBCMD_SET_CREATE(dfu_smp_cmd, SHELL_CMD(on, NULL, "Enable DFU BLE SMP", ShellCmdHandleDfuSmpOn), + SHELL_CMD(off, NULL, "Disable DFU BLE SMP", ShellCmdHandleDfuSmpOff), + SHELL_SUBCMD_SET_END); + +} // namespace + +SHELL_SUBCMD_ADD((dl), dfu_smp, &dfu_smp_cmd, "Enable/disable DFU BLE SMP: dl dfu_smp ", NULL, 0, 0); diff --git a/app/src/dfu_smp/dfu_smp_shell.h b/app/src/dfu_smp/dfu_smp_shell.h deleted file mode 100644 index e21fef78..00000000 --- a/app/src/dfu_smp/dfu_smp_shell.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#pragma once - -#include - -int ShellCmdHandleDfuSmp(const struct shell *shell, size_t argc, char **argv); diff --git a/app/src/main.cpp b/app/src/main.cpp index a742c530..e6e73992 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -8,11 +8,12 @@ #include "matter/init.h" #else // CONFIG_CHIP #include "aliro/init.h" +#include "aliro/lock_sim/lock_sim_instance.h" #endif // CONFIG_CHIP #include "aliro/utils.h" -#include "crypto/crypto.h" +#include #include #include @@ -23,15 +24,11 @@ #ifdef CONFIG_DOOR_LOCK_BLE_NUS -#ifdef CONFIG_ACCESS_DECISION_INDICATOR -#include "aliro/platform/access_decision_indicator/access_decision_indicator.h" -#endif // CONFIG_ACCESS_DECISION_INDICATOR - #include "bt_nus/bt_nus.h" #endif // CONFIG_DOOR_LOCK_BLE_NUS #ifdef CONFIG_DOOR_LOCK_BLE_UWB -#include "access_manager/access_manager.h" +#include "access_manager.h" #include "uwb_impl.h" #endif // CONFIG_DOOR_LOCK_BLE_UWB @@ -43,8 +40,8 @@ LOG_MODULE_REGISTER(door_lock_app, CONFIG_DOOR_LOCK_APP_LOG_LEVEL); int main() { - auto error = Aliro::CryptoInstance().Init(); - VerifyOrReturnValue(error == ALIRO_NO_ERROR, EXIT_FAILURE, LOG_ERR("Cannot initialize crypto engine.")); + auto error = DoorLock::Crypto::Init(); + VerifyOrDie(error == ALIRO_NO_ERROR, "Failed to initialize Aliro crypto"); #ifdef CONFIG_DOOR_LOCK_BLE_UWB @@ -93,10 +90,15 @@ int main() "Unlock", strlen("Unlock"), [](void *context) { LOG_INF("Unlock command received"); + Aliro::LockSimInstance().Unlock(Aliro::OperationSource::Unspecified); + }, + nullptr); -#ifdef CONFIG_ACCESS_DECISION_INDICATOR - Aliro::Access::Indicator::SignalAccessGranted(); -#endif // CONFIG_ACCESS_DECISION_INDICATOR + Aliro::BtNus::NUSService::Instance().RegisterCommand( + "Lock", strlen("Lock"), + [](void *context) { + LOG_INF("Lock command received"); + Aliro::LockSimInstance().Lock(Aliro::OperationSource::Unspecified); }, nullptr); diff --git a/app/src/matter/CMakeLists.txt b/app/src/matter/CMakeLists.txt index af8e92c6..233f4bd6 100644 --- a/app/src/matter/CMakeLists.txt +++ b/app/src/matter/CMakeLists.txt @@ -31,25 +31,28 @@ target_include_directories(app PRIVATE ${ZAP_PARENT_DIR} ) -SET(access_srcs +target_sources(app PRIVATE + app_task.cpp + bolt_lock_manager.cpp + door_lock_delegate.cpp + init.cpp + zcl_callbacks.cpp access/access_data_types.cpp access/access_manager_credentials.cpp access/access_manager_users.cpp access/access_manager.cpp - access/access_storage.cpp ) -if(CONFIG_LOCK_SCHEDULES) - LIST(APPEND access_srcs access/access_manager_schedules.cpp) -endif() +target_sources_ifdef(CONFIG_LOCK_ACCESS_STORAGE_PROTECTED_STORAGE app PRIVATE + access/access_storage_psa_ps.cpp +) -target_sources(app PRIVATE - app_task.cpp - bolt_lock_manager.cpp - door_lock_delegate.cpp - init.cpp - zcl_callbacks.cpp - ${access_srcs} +target_sources_ifdef(CONFIG_LOCK_SCHEDULES app PRIVATE + access/access_manager_schedules.cpp +) + +target_sources_ifdef(CONFIG_LOCK_PRINT_STORAGE_STATUS app PRIVATE + access/access_storage_print.cpp ) # Do not treat warnings as errors while the variable may be uninitialized for this sample data model. diff --git a/app/src/matter/Kconfig b/app/src/matter/Kconfig index 751dd4a3..9b50ec0a 100644 --- a/app/src/matter/Kconfig +++ b/app/src/matter/Kconfig @@ -4,8 +4,6 @@ # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # -mainmenu "Matter Lock sample application" - config LOCK_MAX_NUM_USERS int "Maximum number of users supported by the lock" default 10 @@ -64,6 +62,8 @@ if LOCK_ENABLE_DEBUG config LOCK_PRINT_STORAGE_STATUS bool "Print storage status after each store call" + # This feature assumes that items are eventually stored in Zephyr settings subsystem + depends on TRUSTED_STORAGE_STORAGE_BACKEND_SETTINGS help Debug feature to print the debug-level log that contains information of the entry being stored to persistent storage and how many bytes are left to store the new entry. It can be used to verify @@ -105,39 +105,24 @@ config OPENTHREAD_DEFAULT_TX_POWER endif # OPENTHREAD -config NCS_SAMPLE_MATTER_PERSISTENT_STORAGE - default y - -# PSA SSF Crypto Client is not ready for the secure storage backend -if !PSA_SSF_CRYPTO_CLIENT - -config NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND - default y if !CHIP_WIFI - -config NCS_SAMPLE_MATTER_SETTINGS_STORAGE_BACKEND - default n if !CHIP_WIFI - -endif - -# Increase the storage capacity if the schedules are enabled with secure storage -# This also implies increasing of the OT and Matter stacks because some operations -# performed during commissioning seem to allocate stack buffers based on the -# maximum possible secure asset size. -if LOCK_SCHEDULES && NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND - -config NCS_SAMPLE_MATTER_SECURE_STORAGE_MAX_ENTRY_NUMBER - default 128 +choice LOCK_ACCESS_STORAGE_CHOICE + prompt "Access storage implementation" + default LOCK_ACCESS_STORAGE_PROTECTED_STORAGE -config TRUSTED_STORAGE_BACKEND_AEAD_MAX_DATA_SIZE - default 3072 +config LOCK_ACCESS_STORAGE_PROTECTED_STORAGE + bool "PSA Protected Storage" + # PSA SSF Crypto Client is not ready for PSA PS backend + depends on !CHIP_WIFI && !PSA_SSF_CRYPTO_CLIENT + # When building with TF-M, Protected Storage is enabled by default + select TRUSTED_STORAGE if !BUILD_WITH_TFM + select PSA_PROTECTED_STORAGE if !BUILD_WITH_TFM -config OPENTHREAD_THREAD_STACK_SIZE - default 7168 +endchoice -config CHIP_TASK_STACK_SIZE - default 10240 +if LOCK_ACCESS_STORAGE_PROTECTED_STORAGE -config MAIN_STACK_SIZE - default 7168 +config LOCK_ACCESS_STORAGE_PROTECTED_STORAGE_UID_OFFSET + int "Access storage PSA Protected Storage UID range start" + default 0 -endif +endif # LOCK_ACCESS_STORAGE_PROTECTED_STORAGE diff --git a/app/src/matter/access/access_data_types.h b/app/src/matter/access/access_data_types.h index 52e3ddac..8672bc57 100644 --- a/app/src/matter/access/access_data_types.h +++ b/app/src/matter/access/access_data_types.h @@ -491,6 +491,9 @@ using CredentialsBits = uint16_t; constexpr CredentialsBits ToCredentialBits(CredentialTypeEnum type) { + static_assert(static_cast(CredentialTypeEnum::kUnknownEnumValue) < sizeof(CredentialsBits) * 8, + "CredentialsBits does not have enough bits to represent all CredentialTypeEnum values"); + return BIT(chip::to_underlying(type)); } diff --git a/app/src/matter/access/access_manager.cpp b/app/src/matter/access/access_manager.cpp index 026de1b8..3d6d1acf 100644 --- a/app/src/matter/access/access_manager.cpp +++ b/app/src/matter/access/access_manager.cpp @@ -11,11 +11,38 @@ #include +#include + LOG_MODULE_REGISTER(cr_manager, CONFIG_CHIP_APP_LOG_LEVEL); using namespace chip; using namespace DoorLockData; +namespace { +/* + * For each itemIndex in indexList: calls AccessStorage::Remove(itemType, [extraArgs...,] itemIndex) + * Finally: calls AccessStorage::Remove(indexesType[, extraArgs...]) + */ +template +void RemoveCollection(const DoorLockData::IndexList &indexList, AccessStorage::Type itemType, + AccessStorage::Type indexesType, ExtraArgs &&...extraArgs) +{ + for (size_t i = 0; i < indexList.mList.mLength; i++) { + uint16_t itemIndex = indexList.mList.mIndexes[i]; + + if (!AccessStorage::Instance().Remove(itemType, std::forward(extraArgs)..., itemIndex)) { + LOG_ERR("Cannot remove item %u with type %u", itemIndex, static_cast(itemType)); + } + } + + if (indexList.mList.mLength > 0) { + if (!AccessStorage::Instance().Remove(indexesType, std::forward(extraArgs)...)) { + LOG_ERR("Cannot remove indexes with type %u", static_cast(indexesType)); + } + } +} +} /* namespace */ + template void AccessManager::Init(SetOrLoadCredentialCallback setCredentialClbk, ClearCredentialCallback clearCredentialClbk, @@ -37,8 +64,33 @@ void AccessManager::Init(SetOrLoadCredentialCallback setCredentia template void AccessManager::FactoryReset() { - /* Factory reset the storage */ - AccessStorage::Instance().FactoryReset(); + /* Remove users */ + RemoveCollection(mUsersIndexes, AccessStorage::Type::User, AccessStorage::Type::UsersIndexes); + + /* Remove credentials */ + for (auto type = to_underlying(CredentialTypeEnum::kPin); + type < to_underlying(CredentialTypeEnum::kUnknownEnumValue); ++type) { + RemoveCollection(mCredentialsIndexes.Get(static_cast(type)), + AccessStorage::Type::Credential, AccessStorage::Type::CredentialsIndexes, type); + } + +#ifdef CONFIG_LOCK_SCHEDULES + /* Remove schedules */ + for (uint16_t userIndex = 1; userIndex <= CONFIG_LOCK_MAX_NUM_USERS; userIndex++) { + RemoveCollection(mWeekDayScheduleIndexes.Get(userIndex), AccessStorage::Type::WeekDaySchedule, + AccessStorage::Type::WeekDayScheduleIndexes, userIndex); + RemoveCollection(mYearDayScheduleIndexes.Get(userIndex), AccessStorage::Type::YearDaySchedule, + AccessStorage::Type::YearDayScheduleIndexes, userIndex); + } + + RemoveCollection(mHolidayScheduleIndexes, AccessStorage::Type::HolidaySchedule, + AccessStorage::Type::HolidayScheduleIndexes); +#endif + + /* Remove other data */ + if (!AccessStorage::Instance().Remove(AccessStorage::Type::RequirePIN)) { + LOG_ERR("Cannot remove RequirePINforRemoteOperation"); + } /* Reinitialize to clear removed users/credentials/schedules */ InitializeAllCredentials(); diff --git a/app/src/matter/access/access_storage.cpp b/app/src/matter/access/access_storage.cpp deleted file mode 100644 index 9e611141..00000000 --- a/app/src/matter/access/access_storage.cpp +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (c) 2025 Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -#include "access_storage.h" - -#include - -#include - -#ifdef CONFIG_LOCK_PRINT_STORAGE_STATUS -#ifdef CONFIG_SETTINGS_NVS -#include -#else /* CONFIG_SETTINGS_ZMS */ -#include -#endif /* CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS */ -#include -#include - -LOG_MODULE_DECLARE(storage_manager, CONFIG_CHIP_APP_LOG_LEVEL); - -namespace { -bool GetStorageFreeSpace(size_t &freeBytes) -{ - void *storage = nullptr; - int status = settings_storage_get(&storage); - if (status != 0 || !storage) { - LOG_ERR("AccessStorage: Cannot read NVS free space [error: %d]", status); - return false; - } -#ifdef CONFIG_SETTINGS_NVS - freeBytes = nvs_calc_free_space(static_cast(storage)); -#else /* CONFIG_SETTINGS_ZMS */ - freeBytes = zms_calc_free_space(static_cast(storage)); -#endif /* CONFIG_SETTINGS_NVS || CONFIG_SETTINGS_ZMS */ - return true; -} -} /* namespace */ -#endif /* CONFIG_LOCK_PRINT_STORAGE_STATUS */ - -/* Currently the secure storage is available only for non-Wi-Fi builds, - because NCS Wi-Fi implementation does not support PSA API yet. */ -#if defined(CONFIG_NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND) && defined(CONFIG_CHIP_WIFI) -#error CONFIG_NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND is currently not available if CONFIG_CHIP_WIFI is set. -#endif - -/* Prefer to use CONFIG_NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND if both backends are set simultaneously */ -#ifdef CONFIG_NCS_SAMPLE_MATTER_SECURE_STORAGE_BACKEND -#define PSInit SecureInit -#define PSStore SecureStore -#define PSRemove SecureRemove -#define PSLoad SecureLoad -#define PSFactoryReset SecureFactoryReset -#elif defined(CONFIG_NCS_SAMPLE_MATTER_SETTINGS_STORAGE_BACKEND) -#define PSInit NonSecureInit -#define PSStore NonSecureStore -#define PSLoad NonSecureLoad -#define PSRemove NonSecureRemove -#define PSFactoryReset NonSecureFactoryReset -#endif - -bool AccessStorage::Init() -{ - return Nrf::PSErrorCode::Success == Nrf::GetPersistentStorage().PSInit(&mRootNode); -} - -void AccessStorage::FactoryReset() -{ - Nrf::GetPersistentStorage().PSFactoryReset(); -} - -bool AccessStorage::PrepareKeyName(Type storageType, uint16_t index, uint16_t subindex) -{ - memset(mKeyName, '\0', sizeof(mKeyName)); - - uint8_t limitedIndex = static_cast(index); - uint8_t limitedSubindex = static_cast(subindex); - - switch (storageType) { - case Type::User: - if (0 == limitedIndex && 0 == limitedSubindex) { - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s", kAccessPrefix, kUserPrefix); - } else if (0 == limitedSubindex) { - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s/%u", kAccessPrefix, kUserPrefix, limitedIndex); - } else { - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s/%u/%u", kAccessPrefix, kUserPrefix, - limitedIndex, limitedSubindex); - } - return true; - case Type::Credential: - if (0 == limitedIndex && 0 == limitedSubindex) { - (void)snprintf(mKeyName, kMaxAccessName, "%s", kAccessPrefix); - } else if (0 == limitedSubindex) { - (void)snprintf(mKeyName, kMaxAccessName, "%s/%u", kAccessPrefix, limitedIndex); - } else { - (void)snprintf(mKeyName, kMaxAccessName, "%s/%u/%u", kAccessPrefix, limitedIndex, - limitedSubindex); - } - return true; - case Type::UsersIndexes: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s", kAccessPrefix, kUserCounterPrefix); - return true; - case Type::CredentialsIndexes: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%u/%s", kAccessPrefix, limitedIndex, kAccessPrefix); - return true; - case Type::RequirePIN: - (void)snprintf(mKeyName, kMaxAccessName, "%s", kRequirePinPrefix); - return true; -#ifdef CONFIG_LOCK_SCHEDULES - case Type::WeekDaySchedule: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s/%u/%u", kAccessPrefix, kSchedulePrefix, - kScheduleWeekDaySuffix, limitedIndex, limitedSubindex); - return true; - case Type::YearDaySchedule: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s/%u/%u", kAccessPrefix, kSchedulePrefix, - kScheduleYearDaySuffix, limitedIndex, limitedSubindex); - return true; - case Type::HolidaySchedule: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s/%u", kAccessPrefix, kSchedulePrefix, - kScheduleHolidaySuffix, limitedIndex); - return true; - case Type::WeekDayScheduleIndexes: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s/%u", kAccessPrefix, kScheduleCounterPrefix, - kScheduleWeekDaySuffix, limitedIndex); - return true; - case Type::YearDayScheduleIndexes: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s/%u", kAccessPrefix, kScheduleCounterPrefix, - kScheduleYearDaySuffix, limitedIndex); - return true; - case Type::HolidayScheduleIndexes: - (void)snprintf(mKeyName, kMaxAccessName, "%s/%s%s", kAccessPrefix, kScheduleCounterPrefix, - kScheduleHolidaySuffix); - return true; -#endif /* CONFIG_LOCK_SCHEDULES */ - default: - break; - } - - return false; -} - -bool AccessStorage::Store(Type storageType, const void *data, size_t dataSize, uint16_t index, uint16_t subindex) -{ - if (data == nullptr || !PrepareKeyName(storageType, index, subindex)) { - return false; - } - - Nrf::PersistentStorageNode node{ mKeyName, strlen(mKeyName) + 1 }; - bool ret = (Nrf::PSErrorCode::Success == Nrf::GetPersistentStorage().PSStore(&node, data, dataSize)); - -#ifdef CONFIG_LOCK_PRINT_STORAGE_STATUS - if (ret) { - LOG_DBG("AccessStorage: Stored %s of size: %d bytes", storageType == Type::User ? "user" : "credential", - dataSize); - - size_t storageFreeSpace; - if (GetStorageFreeSpace(storageFreeSpace)) { - LOG_DBG("AccessStorage: Free space: %d bytes", storageFreeSpace); - } - } -#endif - - return ret; -} - -bool AccessStorage::Load(Type storageType, void *data, size_t dataSize, size_t &outSize, uint16_t index, - uint16_t subindex) -{ - if (data == nullptr || !PrepareKeyName(storageType, index, subindex)) { - return false; - } - - Nrf::PersistentStorageNode node{ mKeyName, strlen(mKeyName) + 1 }; - Nrf::PSErrorCode result = Nrf::GetPersistentStorage().PSLoad(&node, data, dataSize, outSize); - - return (Nrf::PSErrorCode::Success == result); -} - -bool AccessStorage::Remove(Type storageType, uint16_t index, uint16_t subindex) -{ - if (!PrepareKeyName(storageType, index, subindex)) { - return false; - } - - Nrf::PersistentStorageNode node{ mKeyName, strlen(mKeyName) + 1 }; - Nrf::PSErrorCode result = Nrf::GetPersistentStorage().PSRemove(&node); - - return (Nrf::PSErrorCode::Success == result); -} diff --git a/app/src/matter/access/access_storage.h b/app/src/matter/access/access_storage.h index 88b85595..aa53928e 100644 --- a/app/src/matter/access/access_storage.h +++ b/app/src/matter/access/access_storage.h @@ -6,43 +6,29 @@ #pragma once -#include +#include +#include /** - * @brief Class to manage access storage + * @brief Class for storing and retrieving door lock access items from the persistent storage. * - * Eventually access items will be store to the Zephyr settings to be persistent (regardless of the used persistent - * storage backend). There are several credential types: PIN, RFID, Fingerprint etc. and each of them is declared as an - * array with the maximum size defined by Kconfig ...MAX_NUM_CREDENTIALS_PER_USER. Each user has a list of credentials - * that are assign to them. The new access item should be written with the new index if the previous one is already - * occupied. + * There are several access item types that can be stored using this class. Each of them may use up to two indexes. + * For example, a credential is referenced by its: + * - type: PIN, RFID or fingerprint + * - credential index: from 1 to CONFIG_LOCK_MAX_NUM_CREDENTIALS_PER_TYPE. + * On the other hand, a user is referenced by its user index: from 1 to CONFIG_LOCK_MAX_NUM_USERS. * - * Agreed the following settings key convention: - * - * /cr/ - * // - * / cr_idxs (bytes) - * / / - * / - * /usr_idxs (bytes) - * /usr/ - * / / - * / - * - * /sch_/ - * /sch_idx_ (bytes)/ - * / / - * / / - * / + * Each user has a list of credentials that are assigned to them. * + * The new access item should be written with the new index if the previous one is already occupied. */ class AccessStorage { public: enum class Type : uint8_t { User, - Credential, UsersIndexes, + Credential, CredentialsIndexes, RequirePIN, #ifdef CONFIG_LOCK_SCHEDULES @@ -63,11 +49,6 @@ class AccessStorage { */ bool Init(); - /** - * @brief Factory reset the storage. - */ - void FactoryReset(); - /** * @brief Store the entry into the persistent storage. * @@ -111,24 +92,4 @@ class AccessStorage { static AccessStorage sInstance; return sInstance; } - -private: - constexpr static auto kAccessPrefix = "cr"; - constexpr static auto kAccessCounterPrefix = "cr_idxs"; - constexpr static auto kUserPrefix = "usr"; - constexpr static auto kUserCounterPrefix = "usr_idxs"; - constexpr static auto kRequirePinPrefix = "pin_req"; -#ifdef CONFIG_LOCK_SCHEDULES - constexpr static auto kSchedulePrefix = "sch"; - constexpr static auto kScheduleWeekDaySuffix = "_w"; - constexpr static auto kScheduleYearDaySuffix = "_y"; - constexpr static auto kScheduleHolidaySuffix = "_h"; - constexpr static auto kScheduleCounterPrefix = "sch_idxs"; -#endif /* CONFIG_LOCK_SCHEDULES */ - constexpr static auto kMaxAccessName = Nrf::PersistentStorageNode::kMaxKeyNameLength; - - Nrf::PersistentStorageNode mRootNode{ kAccessPrefix, strlen(kAccessPrefix) }; - char mKeyName[AccessStorage::kMaxAccessName]; - - bool PrepareKeyName(Type storageType, uint16_t index, uint16_t subindex); }; diff --git a/app/src/matter/access/access_storage_print.cpp b/app/src/matter/access/access_storage_print.cpp new file mode 100644 index 00000000..e750fec9 --- /dev/null +++ b/app/src/matter/access/access_storage_print.cpp @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include "access_storage_print.h" + +#ifdef CONFIG_SETTINGS_NVS +#include +#elif CONFIG_SETTINGS_ZMS || CONFIG_SETTINGS_ZMS_LEGACY +#include +#endif /* CONFIG_SETTINGS_NVS */ +#include +#include + +LOG_MODULE_DECLARE(storage_manager, CONFIG_CHIP_APP_LOG_LEVEL); + +static bool GetStorageFreeSpace(size_t &freeBytes) +{ + void *storage = nullptr; + int status = settings_storage_get(&storage); + if (status != 0 || !storage) { + LOG_ERR("AccessStorage: Cannot read free space: %d", status); + return false; + } +#ifdef CONFIG_SETTINGS_NVS + freeBytes = nvs_calc_free_space(static_cast(storage)); +#elif CONFIG_SETTINGS_ZMS || CONFIG_SETTINGS_ZMS_LEGACY + freeBytes = zms_calc_free_space(static_cast(storage)); +#endif /* CONFIG_SETTINGS_NVS */ + return true; +} + +static const char *TypeToString(AccessStorage::Type type) +{ + switch (type) { + case AccessStorage::Type::User: + return "user"; + case AccessStorage::Type::UsersIndexes: + return "user idx"; + case AccessStorage::Type::Credential: + return "credential"; + case AccessStorage::Type::CredentialsIndexes: + return "credential idx"; +#ifdef CONFIG_LOCK_SCHEDULES + case AccessStorage::Type::WeekDaySchedule: + case AccessStorage::Type::YearDaySchedule: + case AccessStorage::Type::HolidaySchedule: + return "schedule"; + case AccessStorage::Type::WeekDayScheduleIndexes: + case AccessStorage::Type::YearDayScheduleIndexes: + case AccessStorage::Type::HolidayScheduleIndexes: + return "schedule idx"; +#endif /* CONFIG_LOCK_SCHEDULES */ + default: + return "other"; + } +} + +void PrintAccessDataStored(AccessStorage::Type type, size_t dataSize, bool success) +{ + if (!success) { + return; + } + + LOG_DBG("AccessStorage: Stored %s of size: %d bytes", TypeToString(type), dataSize); + + size_t storageFreeSpace; + if (GetStorageFreeSpace(storageFreeSpace)) { + LOG_DBG("AccessStorage: Free space: %d bytes", storageFreeSpace); + } +} diff --git a/app/src/matter/access/access_storage_print.h b/app/src/matter/access/access_storage_print.h new file mode 100644 index 00000000..d380a893 --- /dev/null +++ b/app/src/matter/access/access_storage_print.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#pragma once + +#include "access_storage.h" + +#include + +/** + * @brief Print a log message that access data has been stored. + * + * Additionally, print the current storage free space. + * + * @param type Type of stored data. + * @param dataSize Size of the stored data in bytes. + * @param success Whether the storage operation was successful. + */ +void PrintAccessDataStored(AccessStorage::Type type, size_t dataSize, bool success); diff --git a/app/src/matter/access/access_storage_psa_ps.cpp b/app/src/matter/access/access_storage_psa_ps.cpp new file mode 100644 index 00000000..b0af1069 --- /dev/null +++ b/app/src/matter/access/access_storage_psa_ps.cpp @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2026 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/** + * @file access_storage_psa_ps.cpp + * + * Provides the implementation of AccessStorage class that utilizes the PSA Protected Storage API. + * + * This implementation uses the PSA PS UID range of size 2^32, which starts at a configurable offset. + * The offset within the range is composed of a type and two optional indexes, which are packed into a uint32_t. + * The type is encoded within a uint8_t as follows: + * - 0: User + * - 1: UsersIndexes + * - 2: Credential + * - 3: CredentialsIndexes + * - 4: RequirePIN + * - 5: WeekDaySchedule + * - 6: WeekDayScheduleIndexes + * - 7: YearDaySchedule + * - 8: YearDayScheduleIndexes + * - 9: HolidaySchedule + * - 10: HolidayScheduleIndexes + * + * For example, the UID offset for the credential with type Fingerprint (3) and index 10 is 0x0103000a. + */ + +#include "access_storage.h" + +#include "access_data_types.h" +#include "access_storage_print.h" + +#include + +#include + +namespace { +constexpr psa_storage_uid_t kUIDOffset = CONFIG_LOCK_ACCESS_STORAGE_PROTECTED_STORAGE_UID_OFFSET; + +static_assert(static_cast(kUIDOffset) == 0, "UID offset must fit in the upper 32 bits of the 64-bit UID"); + +template uint32_t PackIntegers() +{ + return 0; +} + +template +uint32_t PackIntegers(Integer current, Integers... others) +{ + static_assert(Offset >= sizeof(Integer), "Cannot pack integers into uint32_t"); + + constexpr size_t NewOffset = Offset - sizeof(Integer); + + return (static_cast(current) << (NewOffset * 8)) | PackIntegers(others...); +} + +psa_storage_uid_t MakeUID(AccessStorage::Type type, uint16_t index, uint16_t subindex) +{ + using UserIndex = uint16_t; + using CredentialType = CredentialTypeEnum; + using CredentialIndex = uint16_t; +#ifdef CONFIG_LOCK_SCHEDULES + using ScheduleIndex = uint8_t; +#endif + + switch (type) { + case AccessStorage::Type::User: + return kUIDOffset + PackIntegers(type, static_cast(index)); + case AccessStorage::Type::UsersIndexes: + return kUIDOffset + PackIntegers(type); + case AccessStorage::Type::Credential: + return kUIDOffset + + PackIntegers(type, static_cast(index), static_cast(subindex)); + case AccessStorage::Type::CredentialsIndexes: + return kUIDOffset + PackIntegers(type, static_cast(index)); + case AccessStorage::Type::RequirePIN: + return kUIDOffset + PackIntegers(type); +#ifdef CONFIG_LOCK_SCHEDULES + case AccessStorage::Type::WeekDaySchedule: + case AccessStorage::Type::YearDaySchedule: + return kUIDOffset + + PackIntegers(type, static_cast(index), static_cast(subindex)); + case AccessStorage::Type::WeekDayScheduleIndexes: + case AccessStorage::Type::YearDayScheduleIndexes: + return kUIDOffset + PackIntegers(type, static_cast(index)); + case AccessStorage::Type::HolidaySchedule: + return kUIDOffset + PackIntegers(type, static_cast(index)); + case AccessStorage::Type::HolidayScheduleIndexes: + return kUIDOffset + PackIntegers(type); +#endif /* CONFIG_LOCK_SCHEDULES */ + default: + __ASSERT_NO_MSG(false); + return 0; + } +} +} /* namespace */ + +bool AccessStorage::Init() +{ + return true; +} + +bool AccessStorage::Store(Type type, const void *data, size_t dataSize, uint16_t index, uint16_t subindex) +{ + if (data == nullptr) { + return false; + } + + psa_storage_uid_t uid = MakeUID(type, index, subindex); + psa_status_t status = psa_ps_set(uid, dataSize, data, PSA_STORAGE_FLAG_NONE); + +#ifdef CONFIG_LOCK_PRINT_STORAGE_STATUS + PrintAccessDataStored(type, dataSize, status == PSA_SUCCESS); +#endif + + return status == PSA_SUCCESS; +} + +bool AccessStorage::Load(Type type, void *data, size_t dataSize, size_t &outSize, uint16_t index, uint16_t subindex) +{ + if (data == nullptr) { + return false; + } + + psa_storage_uid_t uid = MakeUID(type, index, subindex); + psa_status_t status = psa_ps_get(uid, 0, dataSize, data, &outSize); + + if (status != PSA_SUCCESS) { + outSize = 0; + return false; + } + + return true; +} + +bool AccessStorage::Remove(Type type, uint16_t index, uint16_t subindex) +{ + psa_storage_uid_t uid = MakeUID(type, index, subindex); + psa_status_t status = psa_ps_remove(uid); + + return status == PSA_SUCCESS; +} diff --git a/app/src/matter/app_task.cpp b/app/src/matter/app_task.cpp index 4eeaf58c..31809e74 100644 --- a/app/src/matter/app_task.cpp +++ b/app/src/matter/app_task.cpp @@ -45,12 +45,14 @@ constexpr uint8_t kLockNUSPriority{ 2 }; #ifndef CONFIG_CHIP_FACTORY_RESET_ERASE_SETTINGS void AppEventHandler(const ChipDeviceEvent *event, [[maybe_unused]] intptr_t) { + constexpr bool reinitializeStorage{ !IS_ENABLED(CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_REBOOT) }; + switch (event->Type) { case DeviceEventType::kFactoryReset: // With this configuration we have to manually clean up the storage, // as whole settings partition won't be erased. BoltLockMgr().FactoryReset(); - ClearStorageAliro(); + ClearStorageAliro(reinitializeStorage); break; default: break; @@ -62,26 +64,6 @@ Nrf::Matter::IdentifyCluster sIdentifyCluster(kLockEndpointId, false, []() { Nrf::PostTask([] { Nrf::GetBoard().GetLED(Nrf::DeviceLeds::LED2).Set(BoltLockMgr().IsLocked()); }); }); -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - -Aliro::ReaderStateByte ToAliroState(BoltLockManager::State state) -{ - switch (state) { - case BoltLockManager::State::kLockingInitiated: - return Aliro::ReaderStateByte::EnteringSecured; - case BoltLockManager::State::kLockingCompleted: - return Aliro::ReaderStateByte::Secured; - case BoltLockManager::State::kUnlockingInitiated: - return Aliro::ReaderStateByte::EnteringUnsecured; - case BoltLockManager::State::kUnlockingCompleted: - return Aliro::ReaderStateByte::Unsecured; - default: - return Aliro::ReaderStateByte::Unknown; - } -} - -#endif - } /* namespace */ void AppTask::ButtonEventHandler(Nrf::ButtonState state, Nrf::ButtonMask hasChanged) @@ -103,40 +85,41 @@ void AppTask::LockActionEventHandler() void AppTask::LockStateChanged(const BoltLockManager::StateData &stateData) { switch (stateData.mState) { - case BoltLockManager::State::kLockingInitiated: + case Aliro::ReaderStateByte::EnteringSecured: LOG_INF("Lock action initiated"); Nrf::GetBoard().GetLED(Nrf::DeviceLeds::LED2).Blink(50, 50); #ifdef CONFIG_CHIP_NUS Nrf::GetNUSService().SendData("locking", sizeof("locking")); #endif break; - case BoltLockManager::State::kLockingCompleted: + case Aliro::ReaderStateByte::Secured: LOG_INF("Lock action completed"); Nrf::GetBoard().GetLED(Nrf::DeviceLeds::LED2).Set(true); #ifdef CONFIG_CHIP_NUS Nrf::GetNUSService().SendData("locked", sizeof("locked")); #endif break; - case BoltLockManager::State::kUnlockingInitiated: + case Aliro::ReaderStateByte::EnteringUnsecured: LOG_INF("Unlock action initiated"); Nrf::GetBoard().GetLED(Nrf::DeviceLeds::LED2).Blink(50, 50); #ifdef CONFIG_CHIP_NUS Nrf::GetNUSService().SendData("unlocking", sizeof("unlocking")); #endif break; - case BoltLockManager::State::kUnlockingCompleted: + case Aliro::ReaderStateByte::Unsecured: LOG_INF("Unlock action completed"); #ifdef CONFIG_CHIP_NUS Nrf::GetNUSService().SendData("unlocked", sizeof("unlocked")); #endif Nrf::GetBoard().GetLED(Nrf::DeviceLeds::LED2).Set(false); break; + default: + break; } #ifdef CONFIG_DOOR_LOCK_BLE_UWB - Aliro::AliroStack::Instance().SendReaderStatusChangedMessage(stateData.mAliroSource, - ToAliroState(stateData.mState)); + Aliro::AliroStack::Instance().SendReaderStatusChangedMessage(stateData.mAliroSource, stateData.mState); #endif @@ -171,10 +154,10 @@ void AppTask::UpdateClusterStateHandler(const BoltLockManager::StateData &stateD DlLockState newLockState; switch (stateData.mState) { - case BoltLockManager::State::kLockingCompleted: + case Aliro::ReaderStateByte::Secured: newLockState = DlLockState::kLocked; break; - case BoltLockManager::State::kUnlockingCompleted: + case Aliro::ReaderStateByte::Unsecured: newLockState = DlLockState::kUnlocked; break; default: @@ -221,8 +204,8 @@ void AppTask::UpdateClusterStateHandler(const BoltLockManager::StateData &stateD void AppTask::NUSLockCallback(void *context) { LOG_DBG("Received LOCK command from NUS"); - if (BoltLockMgr().GetState().mState == BoltLockManager::State::kLockingCompleted || - BoltLockMgr().GetState().mState == BoltLockManager::State::kLockingInitiated) { + if (BoltLockMgr().GetState().mState == Aliro::ReaderStateByte::Secured || + BoltLockMgr().GetState().mState == Aliro::ReaderStateByte::EnteringSecured) { LOG_INF("Device is already locked"); return; } @@ -233,8 +216,8 @@ void AppTask::NUSLockCallback(void *context) void AppTask::NUSUnlockCallback(void *context) { LOG_DBG("Received UNLOCK command from NUS"); - if (BoltLockMgr().GetState().mState == BoltLockManager::State::kUnlockingCompleted || - BoltLockMgr().GetState().mState == BoltLockManager::State::kUnlockingInitiated) { + if (BoltLockMgr().GetState().mState == Aliro::ReaderStateByte::Unsecured || + BoltLockMgr().GetState().mState == Aliro::ReaderStateByte::EnteringUnsecured) { LOG_INF("Device is already unlocked"); } else { Nrf::PostTask([] { LockActionEventHandler(); }); @@ -301,9 +284,7 @@ CHIP_ERROR AppTask::Init() CHIP_ERROR AppTask::StartApp() { ReturnErrorOnFailure(Init()); - - int err = AliroInit(); - VerifyOrReturnError(err == EXIT_SUCCESS, CHIP_ERROR_INTERNAL, LOG_ERR("Failed to initialize Aliro")); + VerifyOrReturnError(AliroInit() == EXIT_SUCCESS, CHIP_ERROR_INTERNAL, LOG_ERR("Failed to initialize Aliro")); while (true) { Nrf::DispatchNextTask(); diff --git a/app/src/matter/bolt_lock_manager.cpp b/app/src/matter/bolt_lock_manager.cpp index f527a3ef..cc243281 100644 --- a/app/src/matter/bolt_lock_manager.cpp +++ b/app/src/matter/bolt_lock_manager.cpp @@ -5,9 +5,9 @@ */ #include "bolt_lock_manager.h" -#include "access_manager/access_manager.h" #include "app/task_executor.h" +#include "aliro/access_manager/access_manager.h" #include "aliro/aliro.h" #ifdef CONFIG_DOOR_LOCK_STEP_UP_PHASE @@ -48,22 +48,26 @@ void BoltLockManager::Init(StateChangeCallback callback) { mStateChangeCallback = callback; - k_timer_init(&mActuatorTimer, &BoltLockManager::ActuatorTimerEventHandler, nullptr); - k_timer_user_data_set(&mActuatorTimer, this); + mLockSim.Init([](Aliro::OperationSource, Aliro::ReaderStateByte state) { + Nrf::PostTask([state] { BoltLockMgr().UpdateState(state); }); + }); // Set Aliro AccessManager application callbacks Aliro::AccessManagerInstance().SetApplicationCallbacks({ .mUnlockIndicatorClb = [](Aliro::OperationSource source) { - if (!BoltLockMgr().Unlock(source)) { + Nrf::PostTask([source] { + if (!BoltLockMgr().Unlock(source)) { #ifdef CONFIG_DOOR_LOCK_BLE_UWB - // The lock is already unlocked, so we can send the Unsecured state - Aliro::AliroStack::Instance().SendReaderStatusChangedMessage( - source, Aliro::ReaderStateByte::Unsecured); + // The lock is already unlocked, so we can send the Unsecured state + Aliro::AliroStack::Instance().SendReaderStatusChangedMessage( + source, Aliro::ReaderStateByte::Unsecured); #endif // CONFIG_DOOR_LOCK_BLE_UWB - } + } + }); }, - .mLockIndicatorClb = [](Aliro::OperationSource source) { BoltLockMgr().Lock(source); }, + .mLockIndicatorClb = + [](Aliro::OperationSource source) { Nrf::PostTask([source] { BoltLockMgr().Lock(source); }); }, }); auto addPublicKey = [](uint16_t credentialIndex, CredentialTypeEnum credentialType, @@ -194,79 +198,60 @@ bool BoltLockManager::GetRequirePIN() void BoltLockManager::Lock(const OperationSource source, const Nullable &fabricIdx, const Nullable &nodeId, const Nullable &validatePINResult) { - VerifyOrReturn(mStateData.mState != State::kLockingCompleted); - StateData newStateData{ State::kLockingInitiated, source, ToAliroOperationSource(source), fabricIdx, nodeId, - validatePINResult }; - SetStateData(newStateData); - - k_timer_start(&mActuatorTimer, K_MSEC(kActuatorMovementTimeMs), K_NO_WAIT); + VerifyOrReturn(mStateData.mState != Aliro::ReaderStateByte::Secured); + mStateData = { Aliro::ReaderStateByte::EnteringSecured, + source, + ToAliroOperationSource(source), + fabricIdx, + nodeId, + validatePINResult }; + + mLockSim.Lock(ToAliroOperationSource(source)); } void BoltLockManager::Unlock(const OperationSource source, const Nullable &fabricIdx, const Nullable &nodeId, const Nullable &validatePINResult) { - VerifyOrReturn(mStateData.mState != State::kUnlockingCompleted); - StateData newStateData{ State::kUnlockingInitiated, source, ToAliroOperationSource(source), fabricIdx, nodeId, - validatePINResult }; - SetStateData(newStateData); - - k_timer_start(&mActuatorTimer, K_MSEC(kActuatorMovementTimeMs), K_NO_WAIT); + VerifyOrReturn(mStateData.mState != Aliro::ReaderStateByte::Unsecured); + mStateData = { Aliro::ReaderStateByte::EnteringUnsecured, + source, + ToAliroOperationSource(source), + fabricIdx, + nodeId, + validatePINResult }; + + mLockSim.Unlock(ToAliroOperationSource(source)); } bool BoltLockManager::Lock(Aliro::OperationSource source) { - VerifyOrReturnValue(mStateData.mState != State::kLockingCompleted, false); - StateData newStateData{ - State::kLockingInitiated, OperationSource::kAliro, source, NullNullable, NullNullable, NullNullable - }; - SetStateData(newStateData); - - k_timer_start(&mActuatorTimer, K_MSEC(kActuatorMovementTimeMs), K_NO_WAIT); + VerifyOrReturnValue(mStateData.mState != Aliro::ReaderStateByte::Secured, false); + mStateData = { Aliro::ReaderStateByte::EnteringSecured, + OperationSource::kAliro, + source, + NullNullable, + NullNullable, + NullNullable }; + + mLockSim.Lock(source); return true; } bool BoltLockManager::Unlock(Aliro::OperationSource source) { - VerifyOrReturnValue(mStateData.mState != State::kUnlockingCompleted, false); - StateData newStateData{ - State::kUnlockingInitiated, OperationSource::kAliro, source, NullNullable, NullNullable, NullNullable - }; - SetStateData(newStateData); - - k_timer_start(&mActuatorTimer, K_MSEC(kActuatorMovementTimeMs), K_NO_WAIT); + VerifyOrReturnValue(mStateData.mState != Aliro::ReaderStateByte::Unsecured, false); + mStateData = { Aliro::ReaderStateByte::EnteringUnsecured, + OperationSource::kAliro, + source, + NullNullable, + NullNullable, + NullNullable }; + + mLockSim.Unlock(source); return true; } -void BoltLockManager::ActuatorTimerEventHandler(k_timer *timer) -{ - /* - * The timer event handler is called in the context of the system clock ISR. - * Post an event to the application task queue to process the event in the - * context of the application thread. - */ - - BoltLockManagerEvent event; - event.manager = static_cast(k_timer_user_data_get(timer)); - Nrf::PostTask([event] { ActuatorAppEventHandler(event); }); -} - -void BoltLockManager::ActuatorAppEventHandler(const BoltLockManagerEvent &event) -{ - BoltLockManager *lock = reinterpret_cast(event.manager); - - switch (lock->mStateData.mState) { - case State::kLockingInitiated: - lock->SetState(State::kLockingCompleted); - break; - case State::kUnlockingInitiated: - lock->SetState(State::kUnlockingCompleted); - break; - default: - break; - } -} - -void BoltLockManager::SetState(State state) +void BoltLockManager::UpdateState(Aliro::ReaderStateByte state) { mStateData.mState = state; @@ -275,15 +260,6 @@ void BoltLockManager::SetState(State state) } } -void BoltLockManager::SetStateData(const StateData &stateData) -{ - mStateData = stateData; - - if (mStateChangeCallback != nullptr) { - mStateChangeCallback(mStateData); - } -} - void BoltLockManager::FactoryReset() { AccessMgr::Instance().FactoryReset(); diff --git a/app/src/matter/bolt_lock_manager.h b/app/src/matter/bolt_lock_manager.h index 8f4aadeb..a7ac13be 100644 --- a/app/src/matter/bolt_lock_manager.h +++ b/app/src/matter/bolt_lock_manager.h @@ -7,6 +7,7 @@ #pragma once #include "access/access_manager.h" +#include "aliro/lock_sim/lock_sim.h" #include "aliro/types.h" #include @@ -16,36 +17,16 @@ #include -struct BoltLockManagerEvent; - class BoltLockManager { using AccessMgr = AccessManager; public: - static constexpr size_t kMaxCredentialLength{ 128 }; - - enum class State : uint8_t { - kLockingInitiated = 0, - kLockingCompleted, - kUnlockingInitiated, - kUnlockingCompleted, - }; - - struct UserData { - char mName[DOOR_LOCK_USER_NAME_BUFFER_SIZE]; - CredentialStruct mCredentials[CONFIG_LOCK_MAX_NUM_CREDENTIALS_PER_USER]; - }; - - struct CredentialData { - chip::Platform::ScopedMemoryBuffer mSecret; - }; - using OperationSource = chip::app::Clusters::DoorLock::OperationSourceEnum; using ValidatePINResult = AccessMgr::ValidatePINResult; struct StateData { - State mState; + Aliro::ReaderStateByte mState; OperationSource mSource; Aliro::OperationSource mAliroSource; Nullable mFabricIdx; @@ -55,12 +36,10 @@ class BoltLockManager { using StateChangeCallback = void (*)(const StateData &); - static constexpr uint32_t kActuatorMovementTimeMs{ 2000 }; - void Init(StateChangeCallback callback); const StateData &GetState() const { return mStateData; } - bool IsLocked() const { return mStateData.mState == State::kLockingCompleted; } + bool IsLocked() const { return mStateData.mState == Aliro::ReaderStateByte::Secured; } bool GetUser(uint16_t userIndex, EmberAfPluginDoorLockUserInfo &user); bool SetUser(uint16_t userIndex, chip::FabricIndex creator, chip::FabricIndex modifier, @@ -110,18 +89,16 @@ class BoltLockManager { private: friend class AppTask; - void SetState(State state); - void SetStateData(const StateData &stateData); + void UpdateState(Aliro::ReaderStateByte state); - static void ActuatorTimerEventHandler(k_timer *timer); - static void ActuatorAppEventHandler(const BoltLockManagerEvent &event); friend BoltLockManager &BoltLockMgr(); StateData mStateData = { - State::kLockingCompleted, OperationSource::kButton, Aliro::OperationSource::Manual, {}, {}, {} + Aliro::ReaderStateByte::Secured, OperationSource::kButton, Aliro::OperationSource::Manual, {}, {}, {} }; StateChangeCallback mStateChangeCallback = nullptr; - k_timer mActuatorTimer = {}; + + Aliro::LockSim mLockSim; static BoltLockManager sLock; }; @@ -130,7 +107,3 @@ inline BoltLockManager &BoltLockMgr() { return BoltLockManager::sLock; } - -struct BoltLockManagerEvent { - BoltLockManager *manager; -}; diff --git a/app/src/matter/door_lock_delegate.cpp b/app/src/matter/door_lock_delegate.cpp index 53705f21..cb3d5c0f 100644 --- a/app/src/matter/door_lock_delegate.cpp +++ b/app/src/matter/door_lock_delegate.cpp @@ -10,12 +10,15 @@ #include #include #include +#include #include #include -#include #include #include "aliro/crypto_key_ids.h" +#include "crypto/utils.h" +#include "reader_cache.h" + #include LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); @@ -23,15 +26,6 @@ LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); using namespace chip::app::Clusters::DoorLock; namespace { - -#ifdef CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - -constexpr std::array kTestGroupSubIdentifier{ - 0x63, 0x20, 0x38, 0x36, 0x20, 0x31, 0x62, 0x20, 0x33, 0x39, 0x20, 0x31, 0x66, 0x20, 0x33, 0x34 -}; - -#endif // CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - static_assert(sizeof(Aliro::CryptoTypes::PrivateKey) == kAliroSigningKeySize, "Aliro::CryptoTypes::PrivateKey size mismatch"); static_assert(sizeof(Aliro::CryptoTypes::PublicKey) == kAliroReaderVerificationKeySize, @@ -69,37 +63,17 @@ CHIP_ERROR DoorLockDelegate::Init() CHIP_ERROR err = chip::DeviceLayer::SystemLayer().ScheduleLambda([]() { Aliro::CryptoTypes::PublicKey publicKey{}; Aliro::Identifier identifier{}; - Aliro::CryptoTypes::KeyId groupResolvingKeyId{ 0 }; - Aliro::CryptoTypes::KeyId credentialIssuerCAPublicKeyId{ 0 }; - AliroError ec = Aliro::CryptoInstance().ExportPublicKey(Aliro::kPrivateKeyId, publicKey); + AliroError ec = DoorLock::Crypto::ExportPublicKey(Aliro::kPrivateKeyId, publicKey); VerifyOrReturn(ec == ALIRO_NO_ERROR, /* device not provisioned */); + VerifyOrReturn(Aliro::ReaderCache::Instance().SetPublicKey(publicKey) == ALIRO_NO_ERROR, + LOG_ERR("Failed to set reader public key")); VerifyOrReturn(KeyValueStorage::Instance().Get(Aliro::StorageKeys::kStorageKeyNameIdentifier, identifier.data(), identifier.size()) == 0, LOG_ERR("Failed to get reader group identifier")); - -#ifdef CONFIG_DOOR_LOCK_BLE_UWB - - groupResolvingKeyId = Aliro::kGroupResolvingKeyId; - -#endif // CONFIG_DOOR_LOCK_BLE_UWB - -#ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA - - ec = Aliro::CryptoInstance().ExportKey(Aliro::kCredentialIssuerCAPublicKeyId, publicKey.data(), - publicKey.size()); - if (ec == ALIRO_NO_ERROR) { - credentialIssuerCAPublicKeyId = Aliro::kCredentialIssuerCAPublicKeyId; - } else { - LOG_DBG("Credential Issuer CA Public Key is not provisioned"); - } - -#endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA - - ec = Aliro::AliroStack::Instance().Provision(Aliro::kPrivateKeyId, groupResolvingKeyId, identifier, - credentialIssuerCAPublicKeyId); - VerifyOrReturn(ec == ALIRO_NO_ERROR, LOG_ERR("Failed to provision Aliro stack")); + VerifyOrReturn(Aliro::ReaderCache::Instance().SetIdentifier(identifier) == ALIRO_NO_ERROR, + LOG_ERR("Failed to set reader identifier")); int err = AliroStart(); if (err != EXIT_SUCCESS) { @@ -118,7 +92,7 @@ CHIP_ERROR DoorLockDelegate::GetAliroReaderVerificationKey(chip::MutableByteSpan VerifyOrReturnError(verificationKey.size() == kAliroReaderVerificationKeySize, CHIP_ERROR_INVALID_ARGUMENT); Aliro::CryptoTypes::PublicKey publicKey{}; - AliroError ec = Aliro::CryptoInstance().ExportPublicKey(Aliro::kPrivateKeyId, publicKey); + AliroError ec = DoorLock::Crypto::ExportPublicKey(Aliro::kPrivateKeyId, publicKey); if (ec != ALIRO_NO_ERROR) { verificationKey.reduce_size(0); @@ -193,8 +167,8 @@ CHIP_ERROR DoorLockDelegate::GetAliroGroupResolvingKey(chip::MutableByteSpan &gr #ifdef CONFIG_DOOR_LOCK_BLE_UWB - AliroError ec = Aliro::CryptoInstance().ExportKey(Aliro::kGroupResolvingKeyId, groupResolvingKey.data(), - groupResolvingKey.size()); + AliroError ec = DoorLock::Crypto::ExportKey(Aliro::kGroupResolvingKeyId, groupResolvingKey.data(), + groupResolvingKey.size()); if (ec != ALIRO_NO_ERROR) { groupResolvingKey.reduce_size(0); return CHIP_ERROR_NOT_FOUND; @@ -282,63 +256,42 @@ CHIP_ERROR DoorLockDelegate::SetAliroReaderConfig(const chip::ByteSpan &signingK Aliro::Identifier identifier{}; Aliro::CryptoTypes::GroupResolvingKey groupResKey{}; Aliro::CryptoTypes::KeyId privateKeyId{ 0 }; - Aliro::CryptoTypes::KeyId groupResolvingKeyId{ 0 }; - Aliro::CryptoTypes::KeyId credentialIssuerCAPublicKeyId{ 0 }; + Aliro::CryptoTypes::PublicKey publicKey{}; std::copy(signingKey.begin(), signingKey.end(), privateKey.data()); std::copy_n(groupIdentifier.data(), kAliroReaderGroupIdentifierSize, identifier.data()); -#ifdef CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - - std::copy(kTestGroupSubIdentifier.begin(), kTestGroupSubIdentifier.end(), - identifier.data() + kAliroReaderGroupIdentifierSize); - -#else - - AliroError err = Aliro::CryptoInstance().GenerateRandom(identifier.data() + kAliroReaderGroupIdentifierSize, - kAliroReaderGroupSubIdentifierSize); + AliroError err = Aliro::Interface::Crypto::GenerateRandom(identifier.data() + kAliroReaderGroupIdentifierSize, + kAliroReaderGroupSubIdentifierSize); VerifyOrReturnError(err == ALIRO_NO_ERROR, CHIP_ERROR_INTERNAL); -#endif // CONFIG_DOOR_LOCK_USE_TEST_READER_IDENTIFIER - VerifyOrReturnError(KeyValueStorage::Instance().Save(Aliro::StorageKeys::kStorageKeyNameIdentifier, identifier.data(), identifier.size()) == 0, CHIP_ERROR_INTERNAL); + VerifyOrReturnError(Aliro::ReaderCache::Instance().SetIdentifier(identifier) == ALIRO_NO_ERROR, + CHIP_ERROR_INTERNAL); if (groupResolvingKey.HasValue()) { std::copy(groupResolvingKey.Value().begin(), groupResolvingKey.Value().end(), groupResKey.data()); } privateKeyId = Aliro::kPrivateKeyId; - AliroError ec = Aliro::CryptoInstance().ImportPrivateKey(privateKey, privateKeyId, true); + AliroError ec = DoorLock::Crypto::ImportPrivateKey(privateKey, true, privateKeyId); VerifyOrReturnError(ec == ALIRO_NO_ERROR, CHIP_ERROR_INTERNAL); + ec = DoorLock::Crypto::ExportPublicKey(privateKeyId, publicKey); + VerifyOrReturnError(ec == ALIRO_NO_ERROR, CHIP_ERROR_INTERNAL); + VerifyOrReturnError(Aliro::ReaderCache::Instance().SetPublicKey(publicKey) == ALIRO_NO_ERROR, + CHIP_ERROR_INTERNAL); + #ifdef CONFIG_DOOR_LOCK_BLE_UWB - groupResolvingKeyId = Aliro::kGroupResolvingKeyId; - ec = Aliro::CryptoInstance().ProvisionSymmetricKey(groupResKey.data(), groupResKey.size(), groupResolvingKeyId, - true); + Aliro::CryptoTypes::KeyId groupResolvingKeyId = Aliro::kGroupResolvingKeyId; + ec = DoorLock::Crypto::ImportGroupResolvingKey(groupResKey, true, groupResolvingKeyId); VerifyOrReturnError(ec == ALIRO_NO_ERROR, CHIP_ERROR_INTERNAL); #endif // CONFIG_DOOR_LOCK_BLE_UWB -#ifdef CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA - - Aliro::CryptoTypes::PublicKey publicKey{}; - ec = Aliro::CryptoInstance().ExportKey(Aliro::kCredentialIssuerCAPublicKeyId, publicKey.data(), - publicKey.size()); - if (ec == ALIRO_NO_ERROR) { - credentialIssuerCAPublicKeyId = Aliro::kCredentialIssuerCAPublicKeyId; - } else { - LOG_DBG("Credential Issuer CA Public Key is not provisioned"); - } - -#endif // CONFIG_DOOR_LOCK_CREDENTIAL_ISSUER_CA - - ec = Aliro::AliroStack::Instance().Provision(privateKeyId, groupResolvingKeyId, identifier, - credentialIssuerCAPublicKeyId); - VerifyOrReturnError(ec == ALIRO_NO_ERROR, CHIP_ERROR_INTERNAL, LOG_ERR("Failed to provision Aliro stack")); - VerifyOrReturnError(AliroStart() == EXIT_SUCCESS, CHIP_ERROR_INTERNAL, LOG_ERR("Failed to start Aliro");); return CHIP_NO_ERROR; @@ -351,14 +304,16 @@ CHIP_ERROR DoorLockDelegate::ClearAliroReaderConfig() VerifyOrReturnError(AliroStop() == EXIT_SUCCESS, CHIP_ERROR_INTERNAL, LOG_ERR("Failed to stop Aliro")); KeyValueStorage::Instance().Clear(Aliro::StorageKeys::kStorageKeyNameIdentifier); + Aliro::ReaderCache::Instance().ClearIdentifier(); + Aliro::ReaderCache::Instance().ClearPublicKey(); Aliro::CryptoTypes::KeyId keyId{ Aliro::kPrivateKeyId }; - Aliro::CryptoInstance().DestroyKey(keyId); + DoorLock::Crypto::DestroyKey(keyId); #ifdef CONFIG_DOOR_LOCK_BLE_UWB keyId = Aliro::kGroupResolvingKeyId; - Aliro::CryptoInstance().DestroyKey(keyId); + DoorLock::Crypto::DestroyKey(keyId); #endif // CONFIG_DOOR_LOCK_BLE_UWB diff --git a/docs/building_and_running.rst b/docs/building_and_running.rst index ae381126..26a74e81 100644 --- a/docs/building_and_running.rst +++ b/docs/building_and_running.rst @@ -10,68 +10,91 @@ Building and running In the :file:`door-lock-workspace`, the |APP_NAME| is placed in the :file:`ncs-door-lock-app` directory. To build and run the application on one of the :ref:`supported development kits (DKs) `, complete the following steps: -1. Connect the DK to your computer using the **DEBUGGER** port on the DK. - Set the **POWER** switch to **ON**. +1. Connect the DK to your computer using the **DEBUGGER** port on the DK and set the **POWER** switch to **ON**. #. In the :file:`door-lock-workspace` directory, navigate to the :file:`ncs-door-lock-app` folder. -#. Depending on the :ref:`NFC reader expansion board ` connected to the development kit, - build the application by running the corresponding command: - - +-----------------------+-----------------------+------------------------------------------------------------------------------------------------+ - | Build type | X-NUCLEO-NFC board | Command | - +=======================+=======================+================================================================================================+ - | Debug (default) | `X-NUCLEO-NFC09A1`_ | ``west build -p -b build_target app`` | - | +-----------------------+------------------------------------------------------------------------------------------------+ - | | `X-NUCLEO-NFC08A1`_ | ``west build -p -b build_target app -- -DCONFIG_ST25R3916B_DRV=y`` | - | +-----------------------+------------------------------------------------------------------------------------------------+ - | | `X-NUCLEO-NFC05A1`_ | ``west build -p -b build_target app -- -DCONFIG_ST25R3911_DRV=y`` | - +-----------------------+-----------------------+------------------------------------------------------------------------------------------------+ +#. Depending on the :ref:`NFC reader expansion board ` connected to the development kit, build the application by running the corresponding command: You can find the ``build_target`` of your device in the :ref:`hw_requirements_development_kit` section. - For example, if you are using the nRF5340 DK and `X-NUCLEO-NFC09A1`_, the command is: + .. list-table:: + :header-rows: 1 + + * - Build type + - NFC reader expansion board + - Build command + - Description + * - Debug (default) + - `X-NUCLEO-NFC09A1`_ + - ``west build -p -b build_target app`` + - Recommended for new door lock designs. + * - Debug (default) + - `X-NUCLEO-NFC12A1`_ + - ``west build -p -b build_target app -- -DCONFIG_ST25R500_DRV=y`` + - Supported, but not recommended for new products. + + For example, if you are using the nRF5340 DK and `X-NUCLEO-NFC12A1`_, the command is: .. code-block:: bash west build -p -b nrf5340dk/nrf5340/cpuapp app - For the nRF54L15 DK and `X-NUCLEO-NFC08A1`_, run: + For the nRF54L15 DK and `X-NUCLEO-NFC09A1`_, run: .. code-block:: bash - west build -p -b nrf54l15dk/nrf54l15/cpuapp app -- -DCONFIG_ST25R3916B_DRV=y + west build -p -b nrf54l15dk/nrf54l15/cpuapp app -- -DCONFIG_ST25R200_DRV=y -#. To build the application with Bluetooth LE transport and UWB, run the following command: - - .. _bluetooth_le_enable: +#. To build the application with Bluetooth LE transport and UWB, run: .. code-block:: bash west build -p -b nrf5340dk/nrf5340/cpuapp app -- -DCONFIG_DOOR_LOCK_BLE_UWB=y -#. You can also apply optional configurations depending on the modules used: +.. note:: + The above command builds the application with Bluetooth LE transport and UWB interface enabled but to operate properly it requires the implementation of the UWB interface to be provided by the application. + The default implementation of the UWB interface is based on the Qorvo QM35825 UWB Aliro adapter and can we enabled by using the ``uwb_qm35`` application snippet. + Note that the ``uwb_qm35`` snippet has the ``CONFIG_DOOR_LOCK_BLE_UWB`` Kconfig option enabled already. + +#. Refer to the build variants for additional transports and protocols: - * If you are using the `QM35825`_ UWB module with the Qorvo Arduino Interface Board, execute the following command to build the application with UWB enabled. + .. list-table:: + :header-rows: 1 + :widths: 40 60 - .. code-block:: bash + * - Configuration + - Build command + * - QM35825 UWB module using the Qorvo Arduino Interface Board + - ``west build -p -b nrf5340dk/nrf5340/cpuapp app -- -Dapp_SNIPPET=uwb_qm35`` + * - Matter over Thread + - ``west build -p -b nrf5340dk/nrf5340/cpuapp app -- -DSNIPPET='matter'`` + * - QM35825 UWB module with Matter over Thread + - ``west build -p -b nrf5340dk/nrf5340/cpuapp app -- -Dapp_SNIPPET=uwb_qm35 -DSNIPPET='matter'`` - west build -p -b nrf5340dk/nrf5340/cpuapp app -- -Dapp_SNIPPET=uwb_qm35 + The ``uwb_qm35`` snippet configures the NFC and UWB modules to share the same SPI bus. - .. note:: - The ``uwb_qm35`` snippet configures both NFC and UWB modules to share the same SPI bus. +Building debug and release versions +************************************ - * For Matter over Thread, execute the following command to build the application: +In the release configuration, the application is built with the following characteristics: - .. code-block:: bash +* Aliro stack logs are disabled. +* RFAL NFC driver logs are disabled. +* Power-management options are enabled. +* Unused peripherals are disabled using the board-specific ``*_release.overlay``. +* The device resets automatically on a fatal error. - west build -p -b nrf5340dk/nrf5340/cpuapp app -- -DSNIPPET='matter' +Note that shell commands availability differs by variant: - * To build the application with `QM35825`_ UWB module support and Matter over Thread enabled, run: +* In the Matter variant, the UART shell is disabled by default in release builds. +* In the Aliro standalone variant, the ``dl`` shell remains enabled in release builds to allow provisioning the required keys (see :ref:`testing_provisioning_cli`). - .. code-block:: bash +To build the application in release mode: - west build -p -b nrf5340dk/nrf5340/cpuapp app -- -Dapp_SNIPPET=uwb_qm35 -DSNIPPET='matter' + .. code-block:: bash + + west build -p -b app -- -DFILE_SUFFIX=release #. Once you have built the application, flash it: @@ -79,40 +102,56 @@ To build and run the application on one of the :ref:`supported development kits west flash -#. To verify if the application runs, connect to the DK with a terminal emulator that supports VT100/ANSI escape characters. - It is recommended to use the `Serial Terminal app`_. - See the `Testing and optimization`_ page in the |NCS| documentation for the required settings. +#. Verify if the application runs correctly: - .. note:: - |app_hwfc_enabled| + .. tabs:: -#. Press the **RESET** button on the DK in order to refresh the application. - You should see the following logs: + .. tab:: Debug configuration - .. code-block:: console + Connect to the DK with a terminal emulator that supports VT100/ANSI escape characters. + It is recommended to use the `Serial Terminal app`_. + See the `Testing and optimization`_ page in the |NCS| documentation for the required settings. - *** Booting My Application v0.1.0-f0e5cf444fb0 *** - *** Using nRF Connect SDK v2.9.0-7787b2649840 *** - *** Using Zephyr OS v3.7.99-1f8f3dc29142 *** - Starting nRF Door Lock Reference Application for the nRF Connect SDK + .. note:: + |app_hwfc_enabled| - Optionally, if you activated QM35 UWB support, you should also see the following logs: + Press the **RESET** button on the DK in order to refresh the application. + You should see the following logs: - .. code-block:: console + .. code-block:: console - uwb: Initializing UWB device... - hsspi_helpers: Awake frame sending supported by FW - hsspi_helpers: Awake frame not received - uwb: UWB device initialized successfully. + *** Booting My Application v0.1.0-f0e5cf444fb0 *** + *** Using nRF Connect SDK v2.9.0-7787b2649840 *** + *** Using Zephyr OS v3.7.99-1f8f3dc29142 *** + Starting nRF Door Lock Reference Application for the nRF Connect SDK - Additionally, if you enabled Matter, you should also see the logs: + * Additionally, depending on the activated options, you will see the following: - .. code-block:: console + * For QM35 UWB: - Init CHIP stack - [DL]OpenThread started: OK - ... - [ZCL]Door Lock server initialized + .. code-block:: console + + uwb: Initializing UWB device... + hsspi_helpers: Awake frame sending supported by FW + hsspi_helpers: Awake frame not received + uwb: UWB device initialized successfully. + + * For Matter: + + .. code-block:: console + + Init CHIP stack + [DL]OpenThread started: OK + ... + [ZCL]Door Lock server initialized + + .. tab:: Release configuration + + UART logs are disabled. + Complete the following steps to verify if the application runs correctly: + + * Aliro standalone - Connect to the serial console and verify that the ``dl`` shell command is available and responds (see :ref:`testing_provisioning_cli`). + * Matter - Verify the LED and button behavior described in :ref:`matter_ui`. Building QM35 host driver from source ************************************* @@ -135,13 +174,11 @@ If you have an access to the Qorvo repository with UWB stack and QM35 driver sou .. note:: To get an access to the ``nrfconnect-sdk-qorvo`` repository with UWB stack and QM35 driver source code, contact your local Qorvo support team. + In case your access to the ``nrfconnect-sdk-qorvo`` is revoked, updating the west workspace will fail unless you remove the repository from the west manifest group filter by running the following command: - .. note:: - If your access to the ``nrfconnect-sdk-qorvo`` is revoked, updating the west workspace will faill unless you remove the repository from the west manifest group filter by running the following command: - - .. code-block:: bash + .. code-block:: bash - west config manifest.group-filter -- -nrfconnect-sdk-qorvo + west config manifest.group-filter -- -nrfconnect-sdk-qorvo .. _flashing_qm35_using_nrf53_dk: diff --git a/docs/conf.py b/docs/conf.py index a6e2897d..7ec4ded8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,8 @@ # ones. extensions = [ 'sphinx_tabs.tabs', - 'sphinx_copybutton' + 'sphinx_copybutton', + 'sphinx_togglebutton' ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/doc_aliro.zip b/docs/doc_aliro.zip deleted file mode 100644 index dbab8041389ab0d630b6fe49dff8040eee993259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15153676 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
EU+jl05FQgR6wA)NUDRk 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%0AnB@&<5-h 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 z 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

0%31Q!XGx+Bpynw&`))V;qZ~Yv9_fJCK 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�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

t>-cd##Zyn0VU*O$8ej@Mx=@Z#KJe2};Pu-K) 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

;Jw``{WNdU; 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Η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

!puxceO-vNe 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

di1kH$2tz?IweKdmmq|+pxkOLmyl`<)5a7 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 z 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 z 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 z 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