mirror of
https://github.com/espressif/openthread.git
synced 2026-09-06 01:00:09 +00:00
[mac] put transmission AES-CCM* to SubMac layer (#4919)
In Thread 1.2, it is possible to receive an IEEE 802.15.4-2015 packet. Per specification, receiver should acknowledge this packet with an IEEE 802.15.4-2015 ACK(Enh-ACK). This Enh-ACK can include header IE with it and requires security enabled bit in FCF be set to true. It is impractical for the host to generate the Enh-ACK and send to RCP for transmission within AIFS time(192us). So RCP should prepare the Enh-ACK by itself, which requires it to fill in the frame counter and do the encryption/authentication. This commit tries to address the need of transmission security/authentication by including the following changes, - Move Key ID mode 1 AES-CCM* related functions from MAC layer to SubMac layer, which is mirrored in RCP. - Distribute the MAC key and MAC key ID to RCP in posix app using newly added spinel properties. - Make it possible for radio(either in radio driver or hardware) to do transmission AES-CCM* if the platform supports by adding radio capability OT_RADIO_CAPS_TRANSMIT_SEC. - Enable this for RCP mode on simulation platform.
This commit is contained in:
@@ -54,6 +54,9 @@ SOURCES_COMMON += \
|
||||
LDADD_MBEDTLS = \
|
||||
$(NULL)
|
||||
|
||||
LDADD_MBEDTLS_RADIO = \
|
||||
$(NULL)
|
||||
|
||||
LDADD_DIAG = \
|
||||
$(NULL)
|
||||
|
||||
@@ -61,6 +64,10 @@ if OPENTHREAD_ENABLE_BUILTIN_MBEDTLS
|
||||
LDADD_MBEDTLS += \
|
||||
$(top_builddir)/third_party/mbedtls/libmbedcrypto.a \
|
||||
$(NULL)
|
||||
|
||||
LDADD_MBEDTLS_RADIO += \
|
||||
$(top_builddir)/third_party/mbedtls/libmbedcrypto_radio.a \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_ENABLE_BUILTIN_MBEDTLS
|
||||
|
||||
if OPENTHREAD_ENABLE_NCP_SPINEL_ENCRYPTER
|
||||
@@ -151,8 +158,10 @@ ot_rcp_LDADD = \
|
||||
$(top_builddir)/src/ncp/libopenthread-rcp.a \
|
||||
$(top_builddir)/src/core/libopenthread-radio.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(LDADD_MBEDTLS_RADIO) \
|
||||
$(top_builddir)/src/core/libopenthread-radio.a \
|
||||
$(LDADD_COMMON) \
|
||||
$(LDADD_MBEDTLS_RADIO) \
|
||||
$(NULL)
|
||||
|
||||
ot_rcp_LDFLAGS = \
|
||||
|
||||
Reference in New Issue
Block a user