Commit Graph
3204 Commits
Author SHA1 Message Date
Magdalena Szumny e80fe9edd2 API for checking session encryption 2026-02-17 09:57:28 +00:00
Jon Shallow 146e0bbe77 coap_pdu_options: Split out PDU options into coap_pdu_options(3)
Split out coap_pdu_setup(3) into coap_cpu_setup(3) and coap_pdu_options(3)
for ease of finding information.
2026-02-16 13:07:24 +00:00
Magdalena Szumny e92618ebd6 Fix conflict with Zephyr's hex2char 2026-02-16 11:01:01 +00:00
Magdalena Szumny f79eaba9b9 Add sorting of optlist 2026-02-16 10:34:48 +00:00
Arthur Chan d2b61c2e49 OSS-Fuzz: Add oscore conf parse fuzzer 2026-02-16 09:44:20 +00:00
Arthur Chan 0bcd5923e7 OSS-Fuzz: Add new fuzzer for oscore pdu decryption
Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>
2026-02-12 16:14:19 +00:00
Jon Shallow 7be251532c Critical Options: Respond with 4.02, not RST for NON PDUs
Fixes ambiguity in RFC7252.

See https://datatracker.ietf.org/doc/html/draft-ietf-core-corr-clar#section-2.2
2026-02-02 10:32:18 +00:00
Jon Shallow 40aa07a177 oss-fuzz: Remove the need for declaring internal functions 2026-02-02 10:21:41 +00:00
Jon Shallow 152f6a8a58 Includes: Remove unnecessary include files
Include common system header files in coap_internal.h based on HAVE_*H
definitions.

Remove these system header files from include/*/*.h.

Add in system header files where appropriate in various apps.
2026-02-02 10:09:17 +00:00
Jon Shallow c9a4b716c4 binary/strings: Check for size overflows when allocating
Includes a check in coap_block_build_body().
2026-02-02 09:52:55 +00:00
Marco Casaroli a90916a4fe zephyr: mbedlts improvements
Add some improvements to make secure coap work on Zephyr 4.3.0
with mbedtls (not using Zephyr TLS protocol options).

We now set the build options to zephyr, so we make use of the
internal mbedtl in zephyr, so we do not require a specific header
file anymore.

In older versions of Zephyr, where mbedtls does not expose the
configuration, we can force-set the macro in the C flags, so that
mbedtls will have our required function.

This way, we do not need to change the mbedtls included in Zephyr,
while still supporting a few older versions.
2026-01-30 16:18:34 +00:00
Jon Shallow b7e538c4f3 Zephyr: Default to zephyr v4.3.0 for builds
Update to next version when the main branch becomes stable and a new release is out..
2026-01-30 10:08:57 +00:00
Jon Shallow 07c7a7aa57 body_size: Support configuration of max supported body size for RFC7959
Function coap_context_set_max_body_size() added.

For servers, if body size is too large, a 4.13 response is generated.

For clients, if the body size is too large, the server gets a RST and
no date is passed to the application.  A new event COAP_EVENT_BLOCK_ISSUE
is generated.
2026-01-29 09:53:52 +00:00
Jon Shallow 6c0be0c898 coap_oscore.c: Add in missing non-OSCORE stub functions 2026-01-28 10:28:47 +00:00
Jon Shallow 9b408902ba coap_oscore.c: Fix coap_parse_oscore_conf_mem() memory leak 2026-01-27 11:17:34 +00:00
Jon Shallow afba4f78e3 Zephyr: Fix build to handle latest Zephyr updates 2026-01-27 11:06:23 +00:00
Jon Shallow 167fc9b870 coap_openssl.c: Check returns from *_new() functions 2026-01-27 09:30:18 +00:00
Jon Shallow d16ffb270f configure.ac: Abstract WARNINGs from config.log for summary report
Aids troubleshooting.
2026-01-26 10:34:47 +00:00
Jon Shallow 2ddf01b446 configure.ac: Fix -Wlogical-op test for cifuzz
Report on ./configure warnings in ./get_config.sh
2026-01-24 16:16:21 +00:00
Jon Shallow 380ae87539 cifuzz.yml: Support running oss-fuzz on every PR push 2026-01-23 16:21:24 +00:00
Jon Shallow e59df82300 oss-fuzz: Fix CI oss-fuzz test compilation 2026-01-21 17:04:10 +00:00
Jon Shallow 37334b120f Proxy: Add in support for previously set up upstream servers
Add in new coap_proxy_fwd_add_client_session() function to define the
upstream servers from previously set up sessions (i.e. from call-home).
2026-01-21 15:23:48 +00:00
Mahavir Jain aa9b554afd feat(mbedtls): add support for PSA crypto interface
This change adds in the compatibility with the mbedtls-4.0 release.
This release has deprecated the classic mbedtls crypto APIs in favour
of standardized PSA crypto APIs.

For more information please refer to:
https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-4.0.0
2026-01-09 09:29:07 +00:00
Jon Shallow d80fa1497d Client: Remove (D)TLS / WebSocket startup call-back timing window
Add in new functions
  coap_new_client_session3()
  coap_new_client_session_pki3()
  coap_new_client_session_psk3()
  coap_new_client_session_oscore3()
  coap_new_client_session_oscore_pki3()
  coap_new_client_session_oscore_psk3()
which effectively does coap_session_set_app_data2() and
coap_ws_set_host_request() early on in the session set up cycle.
2026-01-08 17:51:10 +00:00
Jon Shallow c9135b6b26 Copyright: Update to 2026 2026-01-05 10:37:26 +00:00
Jon Shallow 2a265ec36d examples-code-check.c: Only compile all code if GNU / Windows compiler 2026-01-05 10:16:14 +00:00
Jon Shallow 08ae1a7c08 Multi-threading: Correctly lock all callbacks
Make sure all application callbacks are called with a coap_lock_callback*()
wrapper.

Rename callback variables within the internal structures with a _cb suffix for
ease of review.
2025-12-30 11:07:37 +00:00
Oblivionsage ff6100f907 coap_uri.c: Add NULL checks after coap_new_optlist() calls 2025-12-29 16:46:42 +00:00
Jon Shallow dadb9a36f1 coap_uri.c: Fix off by one checking error 2025-12-29 11:57:15 +00:00
Jon Shallow 53318b81ae coap_net.c: Fix lg_srcv timing windows 2025-12-29 11:26:07 +00:00
Jon Shallow 5fb4cd8a9c getifaddrs(): Check for function support 2025-12-29 10:52:17 +00:00
Jon Shallow 3c685a2b4d Coverity: Fix reported errors
CID 1667651
CID 1667843
2025-12-27 11:58:44 +00:00
Jon Shallow 6b33d18735 Doc: Fix typos 2025-12-27 11:57:19 +00:00
Jon Shallow 5bacd80a41 examples-code-check.c: Add in <wait.h> header 2025-12-27 11:56:11 +00:00
Jon Shallow 19f1d78848 coap_send: Do not block on first send when testing for additional support
The first coap_send(pdu) is held back until after the optional tests for
Extended Token or Q-Block support are complete with the return from coap_send()
containing the held back pdu's mid.

If there are any errors with this PDU when subsequentially sent, the
event COAP_EVENT_FIRST_PDU_FAIL gets raised.
2025-12-19 17:03:33 +00:00
Jon Shallow bcee6f7149 Coverity: Fix reported errors
CID 1667634
CID 1667636
CID 1667638
CID 1667639
CID 1667641
CID 1667642
CID 1667644
CID 1667646
CID 1667647
CID 1667649
CID 1667650
CID 1667651
2025-12-19 16:57:45 +00:00
Mario Kicherer 43bb86df92 coap_io_process_with_fds_lkd: use local fd_set to avoid conflicts when called in parallel for the same context 2025-12-19 14:30:50 +00:00
Jon Shallow c5eed9b59b coap_io_posix.c: Don't set fd bits for slave sockets 2025-12-19 10:21:30 +00:00
Jon Shallow e78a25037d size_t %4zd format: Support compilers that do not support printf %4zd
Use %4 " PRIdS ".
2025-12-18 14:29:09 +00:00
Mario Kicherer 44f9e49e0d coap_io_process_with_fds_lkd: release lock during sleep on WIN32 and call second select only on demand 2025-12-18 10:18:43 +00:00
Jon Shallow 2c41299b4b size_t %zu format: Support compilers that do not support printf %zu
PRIdS or PRIuS need to be defined for a format specification that compilers /
libraries (e.g. nano) understand rather than the default of %zd and %zu.
2025-12-17 15:30:48 +00:00
Jon Shallow 5567e83dfd coap_mutex_internal.h: Fix typo in coap_thread_pid_t definition 2025-12-15 12:00:23 +00:00
Jon Shallow 5a5330d2be RIOT: Update code version and documentation 2025-12-13 18:07:25 +00:00
Jon Shallow 24db04b45e coap_session.c: Remove need for waiting for CSM for TCP call-home
Fixes (D)TLS startup direction as well.
2025-12-13 16:06:14 +00:00
Jon Shallow b60d33ef3a coap_pdu.c: Save unnecessary realloc() for larger packets 2025-12-13 12:51:30 +00:00
Jon Shallow f1b245a476 coap_mbedtls.c: Report CA issues with no FS support and files defined 2025-12-13 12:50:23 +00:00
Jon Shallow 18bb1ff114 Call-Home: Fix Call-Home reconnecting should remote Client fail 2025-12-11 22:25:32 +00:00
Jon Shallow 07797d9a41 coap_strm_lwip.c: Clean up TCP close 2025-12-10 09:19:34 +00:00
Jon Shallow e1c5889faa LwIP: Fix TCP traffic timing windows
Use correct input function for netif_add() in examples.

Invoke coap_io_process() as soon as possibile following TCP input /
error.

Update rcvd window size after receipt of data.
2025-12-09 10:44:45 +00:00
Jon Shallow 12f22a16f7 coap_openssl.c: Fix DTLS timeout checking 2025-12-09 10:43:26 +00:00