1################################################################################ 2# Toolchain 3################################################################################ 4#CC = gcc 5#AR = ar 6#CC = /opt/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc 7#AR = /opt/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-ar 8#CC = clang-13 9 10 11################################################################################ 12# Architecture 13################################################################################ 14# see for arm flags: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html 15#ARCH = -m32 16#ARCH = -mtune=cortex-m3 17 18 19################################################################################ 20# Compiler optimization 21################################################################################ 22OPT = -O0 23 24 25################################################################################ 26# Print helpful debug messages 27################################################################################ 28#DEBUG_PRINT += -DDEBUG_PRINT 29 30################################################################################ 31# Use Address Sanitizer, e.g. with native_posix 32################################################################################ 33#ASAN += -DASAN 34 35################################################################################ 36# Unit testing 37################################################################################ 38# Uncomment this to enable building the unit tests 39UNIT_TEST += -DUNIT_TEST 40 41 42################################################################################ 43# CBOR engine 44################################################################################ 45# currently only ZCBOR is supported 46CBOR_ENGINE += -DZCBOR 47 48# Uncomment to enable Non-volatile memory (NVM) support for storing security context between device reboots 49OSCORE_NVM_SUPPORT += -DOSCORE_NVM_SUPPORT 50 51################################################################################ 52# RAM optimization 53################################################################################ 54# Compute the length of buffers at runtime (variable length array VLA) 55# Please note that: we do not support this feature under Windows with MSVC (lack of support for VLA). 56#FEATURES += -DVLA 57 58################################################################################ 59# RAM optimization EDHOC 60################################################################################ 61# In deployments where no protected application message is sent from the 62# Responder to the Initiator, message_4 MUST be used. 63#FEATURES += -DMESSAGE_4 64 65# If EAD is not used set its buffer size to 0 66FEATURES += -DEAD_SIZE=0 67 68# Size of the connection identifier of the initiator C_I 69FEATURES += -DC_I_SIZE=1 70 71# Size of the connection identifier of the initiator C_R 72FEATURES += -DC_R_SIZE=1 73 74# Size of ID_CRED_R 75FEATURES += -DID_CRED_R_SIZE=296 76 77# Size of ID_CRED_I 78FEATURES += -DID_CRED_I_SIZE=296 79 80# Size of CRED_R 81FEATURES += -DCRED_R_SIZE=293 82 83# Size of CRED_I 84FEATURES += -DCRED_I_SIZE=293 85 86# Number of supported suites by the initiator 87FEATURES += -DSUITES_I_SIZE=1 88 89################################################################################ 90# RAM optimization OSCORE 91################################################################################ 92# Max size of an OSCORE plaintext 93FEATURES += -DOSCORE_MAX_PLAINTEXT_LEN=1024 94 95# Max size of the E options buffer 96FEATURES += -DE_OPTIONS_BUFF_MAX_LEN=100 97 98# Max size of the I options buffer 99FEATURES += -DI_OPTIONS_BUFF_MAX_LEN=100 100 101 102################################################################################ 103# Crypto engine 104################################################################################ 105# The uoscore-uedhoc can be used with different crypto engines. 106# The user can provide as well additional crypto engines by providing 107# implementations of the function defined (as week) in the crypto_wrapper file. 108# Currently we have build in support for the following engines which 109# allow fowling modes of operation and suites: 110# 111# EDHOC suites: 112# Value: 0 113# Array: 10, -16, 8, 4, -8, 10, -16 114# Desc: AES-CCM-16-64-128, SHA-256, 8, X25519, EdDSA, 115# AES-CCM-16-64-128, SHA-256 116 117# Value: 1 118# Array: 30, -16, 16, 4, -8, 10, -16 119# Desc: AES-CCM-16-128-128, SHA-256, 16, X25519, EdDSA, 120# AES-CCM-16-64-128, SHA-256 121 122# Value: 2 123# Array: 10, -16, 8, 1, -7, 10, -16 124# Desc: AES-CCM-16-64-128, SHA-256, 8, P-256, ES256, 125# AES-CCM-16-64-128, SHA-256 126 127# Value: 3 128# Array: 30, -16, 16, 1, -7, 10, -16 129# Desc: AES-CCM-16-128-128, SHA-256, 16, P-256, ES256, 130# AES-CCM-16-64-128, SHA-256 131 132# Value: 4 133# Array: 24, -16, 16, 4, -8, 24, -16 134# Desc: ChaCha20/Poly1305, SHA-256, 16, X25519, EdDSA, 135# ChaCha20/Poly1305, SHA-256 136 137 138# EDHOC methods: 139# +-------+-------------------+-------------------+-------------------+ 140# | Value | Initiator | Responder | Reference | 141# +-------+-------------------+-------------------+-------------------+ 142# | 0 | Signature Key | Signature Key | [[this document]] | 143# | 1 | Signature Key | Static DH Key | [[this document]] | 144# | 2 | Static DH Key | Signature Key | [[this document]] | 145# | 3 | Static DH Key | Static DH Key | [[this document]] | 146# +-------+-------------------+-------------------+-------------------+ 147# 148# 149# 150# +--------+---------+---------+------------------------------------------- 151# protocol | suite | method | ENGINE 152# +--------+---------+---------+------------------------------------------- 153# | OSCORE | | | TINYCRYPT or MBEDTLS 154# | EDHOC | 0/1 | 0/1/2 | COMPACT25519 with (TINYCRYPT or MBEDTLS) 155# | EDHOC | 0/1 | 3 | MBEDTLS or (COMPACT25519 with TINYCRYPT) 156# | EDHOC | 2/3 | 0/1/2/3 | MBEDTLS 157# | EDHOC | 0/1/2/3 | 0/1/2/3 | MBEDTLS and COMPACT25519 158 159 160#CRYPTO_ENGINE += -DTINYCRYPT 161#CRYPTO_ENGINE += -DCOMPACT25519 162#CRYPTO_ENGINE += -DMBEDTLS