Go to file
Alberto Escolar Piedras d8f125e198 AES_CCM: Add HEADERMASK functionality
This change is required for proper BT LE ISO support
(BIS encryption with control subevents present).

Note: The change has been done relaying on the old
ext_libCryptov1 v1.1 API, even though the new APIs
introduced in v1.2 would have been better.

The old API (used by this commit) will apply the old
AAD 0xE3 mask on top of the HEADERMASK.
This is ok for BLE (so far) as all masks
are at least more restrictive than that. But it is
in general not correct.

Creating a dependency for libCrypto v1.2 is considered
too much of a hassle for users, as even Zephyr docker
image is not updated to use it yet.

The proper change is parked in a separate commit/branch:
HEADERMASK_PROPER
In a few months we should consider taking it in.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2023-01-24 16:35:49 +01:00
.github/workflows ci: Fetch less and in own folders 2022-06-12 18:50:49 +02:00
docs Model a nrf52833 instead of a nrf52832 2023-01-24 09:18:13 +01:00
src AES_CCM: Add HEADERMASK functionality 2023-01-24 16:35:49 +01:00
zephyr Convert into a west module 2019-11-18 10:19:11 +01:00
.gitignore gitignore: ignore typical project files 2019-11-15 15:15:15 +01:00
CMakeLists.txt nrfx: Use actual nrfx instead of manually modified files 2020-10-12 10:52:15 +02:00
Depends First commit 2018-09-14 13:18:38 +02:00
Makefile Model a nrf52833 instead of a nrf52832 2023-01-24 09:18:13 +01:00
TODO.txt Model a nrf52833 instead of a nrf52832 2023-01-24 09:18:13 +01:00

docs/README.md

Models of some of the HW present in a NRF52xxx.
Where relevant differences exist, these models try to align with a NRF52833.

This repo contains both models of the NRF52 HW as well as some replacement nrfx HAL functions. When used in combination with the real nrfx, these should enable code meant for the nrfx to run without needing further changes. This includes Zephyr SW.

When compiling this component using the provided Makefile (not with Zephyr's build system), the environment variable NRFX_BASE must be set to the path where a nrfx has been cloned. The nrfx must be at least version 2.3.0. So for example, if the nrfx has been cloned as:

cd /some_path/nrfx/
git clone git@github.com:NordicSemiconductor/nrfx.git .

NRFX_BASE must be set as:

export NRFX_BASE=/some_path/nrfx/

See the nrfx/hal/README.md for more details.

These models can be used directly with Zephyr's nrf52_bsim target.

The NRF_RADIO peripheral model uses BabbleSim for the radio environment simulation.

For more information about the HW models, or how to use them without the nrf52_bsim please refer to README_HW_models.md

Faithfullness of these models

These models are accurate enough to allow the current Zephyr to run, and its BLE stack to function. For more details please see the notes on the source files for each peripheral model.

These models are based solely on the public SOC specifications

They have been developed without any other knowledge and probably contain inacuracies, and defects.

Several of the peripherals which are not necessary for typical BLE applications are not modelled. Moreover, in the modelled peripherals, functionality which is not used in the Zephyr drivers is normally not modelled either. The TODO file list some mayor omissions. It is certainly possible to expand these models to include the rest.