Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkg/tinydtls: enforce the default dtls user params to be configurable #20478

Merged
merged 2 commits into from
Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion pkg/tinydtls/contrib/sock_dtls.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ static int _read(struct dtls_context_t *ctx, session_t *session, uint8_t *buf,
size_t len);
static int _event(struct dtls_context_t *ctx, session_t *session,
dtls_alert_level_t level, unsigned short code);

static void _get_user_parameters(struct dtls_context_t *ctx,
session_t *session, dtls_user_parameters_t *user_parameters);
static void _session_to_ep(const session_t *session, sock_udp_ep_t *ep);
static void _ep_to_session(const sock_udp_ep_t *ep, session_t *session);
static uint32_t _update_timeout(uint32_t start, uint32_t timeout);
Expand All @@ -68,6 +69,7 @@ static dtls_handler_t _dtls_handler = {
.event = _event,
.write = _write,
.read = _read,
.get_user_parameters = _get_user_parameters,
#ifdef CONFIG_DTLS_PSK
.get_psk_info = _get_psk_info,
#endif /* CONFIG_DTLS_PSK */
Expand Down Expand Up @@ -175,6 +177,15 @@ static int _event(struct dtls_context_t *ctx, session_t *session,
return 0;
}

static void _get_user_parameters(struct dtls_context_t *ctx,
session_t *session, dtls_user_parameters_t *user_parameters) {
(void) ctx;
(void) session;

user_parameters->force_extended_master_secret = CONFIG_DTLS_FORCE_EXTENDED_MASTER_SECRET;
user_parameters->force_renegotiation_info = CONFIG_DTLS_FORCE_RENEGOTIATION_INFO;
}

#ifdef CONFIG_DTLS_PSK
static int _get_psk_info(struct dtls_context_t *ctx, const session_t *session,
dtls_credentials_type_t type,
Expand Down
14 changes: 14 additions & 0 deletions sys/include/net/sock/dtls.h
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,20 @@ extern "C" {
*/
#define SOCK_DTLS_HANDSHAKE (EXDEV)

/**
* @brief Force extended master secret extension
*/
#ifndef CONFIG_DTLS_FORCE_EXTENDED_MASTER_SECRET
#define CONFIG_DTLS_FORCE_EXTENDED_MASTER_SECRET 1
#endif

/**
* @brief Force renegotiation info extension
*/
#ifndef CONFIG_DTLS_FORCE_RENEGOTIATION_INFO
#define CONFIG_DTLS_FORCE_RENEGOTIATION_INFO 1
#endif

/**
* @brief DTLS version number
* @anchor sock_dtls_prot_version
Expand Down
Loading