mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
130 lines
4.6 KiB
Makefile
130 lines
4.6 KiB
Makefile
# This has to be the absolute path to the RIOT base directory:
|
|
RIOTBASE ?= $(CURDIR)/../..
|
|
|
|
APPLICATION = example_psa_crypto
|
|
|
|
BOARD ?= native
|
|
|
|
DOCKER_ENV_VARS += SECURE_ELEMENT
|
|
|
|
ifeq (2, $(SECURE_ELEMENT))
|
|
CFLAGS += -DSECURE_ELEMENT # Application specific (not needed by PSA)
|
|
CFLAGS += -DMULTIPLE_SE # Application specific (not needed by PSA)
|
|
CFLAGS += -DCUSTOM_ATCA_PARAMS # Application specific (not needed by PSA)
|
|
INCLUDES += -I$(APPDIR)
|
|
KCONFIG_ADD_CONFIG += $(APPDIR)/app.config.multi_se
|
|
else
|
|
KCONFIG_ADD_CONFIG += $(APPDIR)/app.config.base
|
|
endif
|
|
|
|
USEMODULE += ztimer
|
|
USEMODULE += ztimer_usec
|
|
|
|
USEMODULE += psa_crypto
|
|
|
|
# Hashes are needed for ECDSA operations (including secure elements), which
|
|
# is why we always build them
|
|
USEMODULE += psa_hash
|
|
USEMODULE += psa_hash_sha_256
|
|
|
|
ifeq (1, $(SECURE_ELEMENT))
|
|
# When using a secure element, the type is required.
|
|
# Also you can specify the number of key slots required to store keys.
|
|
CFLAGS += -DSECURE_ELEMENT # Application specific (not needed by PSA)
|
|
CFLAGS += -DCUSTOM_ATCA_PARAMS # Application specific (not needed by PSA)
|
|
INCLUDES += -I$(APPDIR) # Application specific (not needed by PSA)
|
|
ifneq (1, $(SHOULD_RUN_KCONFIG))
|
|
CFLAGS += -DCONFIG_PSA_PROTECTED_KEY_COUNT=4
|
|
CFLAGS += -DCONFIG_PSA_SINGLE_KEY_COUNT=1
|
|
else
|
|
KCONFIG_ADD_CONFIG += $(APPDIR)/app.config.se
|
|
endif
|
|
USEMODULE += psa_secure_element
|
|
USEMODULE += psa_secure_element_ateccx08a
|
|
USEMODULE += psa_secure_element_ateccx08a_cipher_aes_128
|
|
USEMODULE += psa_secure_element_ateccx08a_hmac_sha256
|
|
USEMODULE += psa_secure_element_ateccx08a_ecc_p256
|
|
else ifeq (2, $(SECURE_ELEMENT))
|
|
CFLAGS += -DSECURE_ELEMENT # Application specific (not needed by PSA)
|
|
CFLAGS += -DMULTIPLE_SE # Application specific (not needed by PSA)
|
|
CFLAGS += -DCUSTOM_ATCA_PARAMS # Application specific (not needed by PSA)
|
|
INCLUDES += -I$(APPDIR) # Application specific (not needed by PSA)
|
|
ifneq (1, $(SHOULD_RUN_KCONFIG))
|
|
CFLAGS += -DCONFIG_PSA_MAX_SE_COUNT=2
|
|
CFLAGS += -DCONFIG_PSA_PROTECTED_KEY_COUNT=8
|
|
CFLAGS += -DCONFIG_PSA_SINGLE_KEY_COUNT=2
|
|
else
|
|
KCONFIG_ADD_CONFIG += $(APPDIR)/app.config.multi_se
|
|
endif
|
|
USEMODULE += psa_secure_element
|
|
USEMODULE += psa_secure_element_multiple
|
|
USEMODULE += psa_secure_element_ateccx08a
|
|
USEMODULE += psa_secure_element_ateccx08a_cipher_aes_128
|
|
USEMODULE += psa_secure_element_ateccx08a_hmac_sha256
|
|
USEMODULE += psa_secure_element_ateccx08a_ecc_p256
|
|
else ifdef CUSTOM_BACKEND
|
|
# Necessary configuration when using Make dependency resolution
|
|
# This first part chooses the operation. If nothing else is specified,
|
|
# a default backend is built depending on the platform capabilities.
|
|
USEMODULE += psa_cipher
|
|
USEMODULE += psa_cipher_aes_128_cbc
|
|
|
|
USEMODULE += psa_mac
|
|
USEMODULE += psa_mac_hmac_sha_256
|
|
|
|
USEMODULE += psa_asymmetric
|
|
USEMODULE += psa_asymmetric_ecc_p256r1
|
|
USEMODULE += psa_asymmetric_ecc_ed25519
|
|
|
|
# If you want to use a custom backend, you need to do it this way.
|
|
USEMODULE += psa_cipher_aes_128_cbc_custom_backend
|
|
USEMODULE += psa_cipher_aes_128_cbc_backend_riot # force custom backend
|
|
|
|
USEMODULE += psa_mac_hmac_sha_256_custom_backend
|
|
USEMODULE += psa_mac_hmac_sha_256_backend_riot # force custom backend
|
|
|
|
USEMODULE += psa_hash_sha_256_custom_backend
|
|
USEMODULE += psa_hash_sha_256_backend_riot
|
|
|
|
USEMODULE += psa_asymmetric_ecc_p256r1_custom_backend
|
|
USEMODULE += psa_asymmetric_ecc_p256r1_backend_microecc # force custom backend
|
|
|
|
USEMODULE += psa_asymmetric_ecc_ed25519_custom_backend
|
|
USEMODULE += psa_asymmetric_ecc_ed25519_backend_c25519 # force custom backend
|
|
else
|
|
# Necessary configuration when using Make dependency resolution
|
|
# This part only chooses the operation. If nothing else es specified,
|
|
# a default backend is built depending on the platform capabilities.
|
|
USEMODULE += psa_cipher
|
|
USEMODULE += psa_cipher_aes_128_cbc
|
|
|
|
USEMODULE += psa_hash
|
|
USEMODULE += psa_hash_sha_224
|
|
USEMODULE += psa_hash_sha_256
|
|
USEMODULE += psa_hash_sha_384
|
|
USEMODULE += psa_hash_sha_512
|
|
USEMODULE += psa_hash_sha_512_224
|
|
USEMODULE += psa_hash_sha_512_256
|
|
|
|
USEMODULE += psa_mac
|
|
USEMODULE += psa_mac_hmac_sha_256
|
|
|
|
USEMODULE += psa_asymmetric
|
|
USEMODULE += psa_asymmetric_ecc_p256r1
|
|
USEMODULE += psa_asymmetric_ecc_ed25519
|
|
|
|
endif
|
|
|
|
ifndef SECURE_ELEMENT
|
|
# The software implementations need a larger stack, so we increase the stack size.
|
|
CFLAGS += -DTHREAD_STACKSIZE_MAIN=\(12*THREAD_STACKSIZE_DEFAULT\)
|
|
ifneq (1, $(SHOULD_RUN_KCONFIG))
|
|
CFLAGS += -DCONFIG_PSA_ASYMMETRIC_KEYPAIR_COUNT=2
|
|
CFLAGS += -DCONFIG_PSA_SINGLE_KEY_COUNT=4
|
|
else
|
|
KCONFIG_ADD_CONFIG += $(APPDIR)/app.config.base
|
|
endif
|
|
endif
|
|
|
|
include $(RIOTBASE)/Makefile.include
|