diff --git a/pkg/tinydtls/Makefile b/pkg/tinydtls/Makefile index 973f44dbc1..79cb15cfcc 100644 --- a/pkg/tinydtls/Makefile +++ b/pkg/tinydtls/Makefile @@ -18,3 +18,18 @@ all: ifeq (llvm,$(TOOLCHAIN)) CFLAGS += -Wno-format-nonliteral endif + +ifneq (,$(filter gcoap,$(USEMODULE))) + # Configuring the buffer large enough that a full Gcoap packet can be + # encrypted or decrypted. + + # This is the default in gcoap.h, which we don't have access to, so it is copied over. + CONFIG_GCOAP_PDU_BUF_SIZE := $(or $(CONFIG_GCOAP_PDU_BUF_SIZE),128) + + # If there were another way to set up DTLS_MAX_BUF, we'd need to set the + # maximum of these here. + # + # 29 bytes are the overhead measured with Wireshark on packets exchanged in + # default configuration; adding some to be safe against variable size fields. + CFLAGS += "-DDTLS_MAX_BUF=($(CONFIG_GCOAP_PDU_BUF_SIZE) + 36)" +endif