1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/makefiles
bors[bot] 9be022afd8
Merge #18547
18547: sys: PSA Crypto API implementation r=MrKevinWeiss a=Einhornhool

### Contribution description
This adds an implementation of the ARM [PSA Crypto API](https://armmbed.github.io/mbed-crypto/html/index.html) specification to RIOT. 

It is a cryptographic API that supports software and hardware backends as well as the use of multiple secure elements, which can be configured with Kconfig.
It integrates indirect, identifier based key management to support persistent storage of key material in local memory and devices with protected key storage.

A description of the implementation design and an evaluation of the processing time and memory overhead in RIOT has been published here: [Usable Security for an IoT OS: Integrating the Zoo of Embedded Crypto Components Below a Common API](https://arxiv.org/abs/2208.09281)

#### Implementation status
So far this implementation supports the following operations:
- Volatile key storage
- AES in CBC mode
- Hashes (MD5, SHA1, SHA224, SHA256)
- HMAC SHA256
- ECDSA with NIST P192 and P256 curves

The following backends are supported so far:
- RIOT Cipher Module
- RIOT Hash Module
- Micro ECC library package
- Cryptocell 310 hardware accelerator on the Nordic NRF52840dk
- Microchip ATECC608A secure element

Other operations and backends as well as persistent key storage can and will be implemented by me and anyone who wants to contribute in the future.

### Testing procedure
So far there is a show case application in `examples/psa_crypto` to demonstrate the usage and configuration of different backends of the API (refer to the application README for more information). 


Co-authored-by: Lena Boeckmann <lena.boeckmann@haw-hamburg.de>
2023-09-04 08:15:08 +00:00
..
arch Merge #19791 2023-07-06 17:46:14 +00:00
boards makefiles/boards/stm32: fix DFU_USB_ID handling 2023-03-10 10:02:15 +01:00
boot
libc
pkg
tests
toolchain makefiles/toolchain/llvm.inc.mk: disable annoying C++ warning 2023-07-18 12:24:07 +02:00
tools makefiles/usb_board_reset.mk: declare term-delay target with test target 2023-08-11 17:53:10 +02:00
utils
app_dirs.inc.mk makefiles/app_dirs.inc.mk: add tests/net subdirectory 2023-05-12 16:36:38 +02:00
application.inc.mk
auto_init.inc.mk
bindist.inc.mk
blob.inc.mk
boards.inc.mk
buildtests.inc.mk
cargo-settings.inc.mk
cargo-targets.inc.mk
cflags.inc.mk buildsystem: only expose CPU_RAM_BASE & SIZE when known 2023-06-24 23:35:14 +02:00
clang_tidy.inc.mk
color.inc.mk
default-radio-settings.inc.mk
defaultmodules_deps.inc.mk
defaultmodules_no_recursive_deps.inc.mk
defaultmodules_regular.inc.mk
dependencies_debug.inc.mk
dependency_resolution.inc.mk sys: Add PSA Crypto Module 2023-08-31 14:38:49 +02:00
deprecated_boards.inc.mk
deprecated_cpus.inc.mk
deprecated_modules.inc.mk makefiles/pseudomodules: remove deprecated event_thread_lowest module 2023-05-19 16:15:10 +02:00
docker.inc.mk tools/mspdebug: fix make debug and make debugserver 2023-05-24 17:00:38 +02:00
driver_with_disp_dev.mk
driver_with_saul.mk
driver_with_touch_dev.mk makefiles: fix typo in driver_with_touch_dev.mk 2023-08-30 18:53:44 +02:00
eclipse.inc.mk
features_check.inc.mk
features_modules.inc.mk pkg: Add cryptocell driver and nrf52 HW features 2023-08-31 14:38:49 +02:00
git_version.inc.mk
info-global.inc.mk
info-nproc.inc.mk
info.inc.mk buildsystem: add target debug-client 2023-06-10 00:04:56 +02:00
kconfig.mk
mcuboot.mk
modules.inc.mk
murdock.inc.mk
periph.mk
pio.inc.mk makefiles: add makefile to generate header file from PIO program 2023-05-23 08:49:37 +02:00
pseudomodules.inc.mk sys/hashes: Add PSA Crypto Wrappers 2023-08-31 14:38:50 +02:00
scan-build.inc.mk
stdio.inc.mk
suit.base.inc.mk
suit.inc.mk
tests.inc.mk
ubsan.inc.mk
usb-codes.inc.mk
vars.inc.mk makefiles/vars.inc.mk: export LLVM specific flags and include dirs 2023-07-18 12:24:07 +02:00