1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-26 23:11:19 +01:00

4504 Commits

Author SHA1 Message Date
Benjamin Valentin
a95bd508a5 gnrc_netif: fix timeout in gnrc_netif_ipv6_wait_for_global_address() 2025-01-16 16:07:40 +01:00
benpicco
6547f144d9
Merge pull request #21125 from maribu/sys/net/gcoap/fix-api-abuse
sys/net/gcoap: get rid of API abuse
2025-01-13 18:43:16 +00:00
Marian Buschsieweke
590ca5d7ff
sys/net/gcoap: get rid of API abuse
Calling `coap_get_token()` and `coap_get_token_length()` on an
(mostly) uninitialized `coap_pkt_t` did work so far due to
implementation details matching the expectations, but this is not
backed up by any API contract.

This fixes the API abuse by introducing and using a new API that does
read a token and token length from a CoAP over UDP packet out of a
buffer. This now provides the behavior expected by the caller and
commits to it via API contract.

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: benpicco <benpicco@googlemail.com>
2025-01-10 21:31:08 +01:00
Marian Buschsieweke
ade999ab01
Merge pull request #21113 from maribu/sys/ztimer/ztimer_mbox_get_timeout
sys/ztimer: implement ztimer_mbox_get_timeout() and use it to fix race in gnrc_sock_recv()
2025-01-10 15:37:46 +00:00
benpicco
758a92f6f0
Merge pull request #21085 from crasbe/pr/sys/stdio_nimble
sys/stdio_nimble: add version note to README
2025-01-08 08:52:52 +00:00
Oleg Hahm
395bdb83fe sys: net: dns: use Quad resolver
Replaces Google's solver with the Quad9 (https://quad9.net/) ones.
2025-01-03 10:05:46 +01:00
Marian Buschsieweke
eab75888a9
sys/ztimer: implement ztimer_mbox_get_timeout()
This function fetches a message from an mbox, possibly blocking if the
mbox has no message - but with a specified timeout.
2024-12-31 00:35:05 +01:00
crasbe
cafcd010b0 sys/stdio_nimble: move doc from README to header, add version note 2024-12-21 20:57:23 +01:00
benpicco
243ca3114b
Merge pull request #20843 from benpicco/string_writer
sys/string_utils: add string_writer helper
2024-12-20 16:36:09 +00:00
Marian Buschsieweke
4f55461e15
Merge pull request #21096 from benpicco/rtc_mktime-const
sys/rtc_utils: make parameter to `rtc_mktime()` const
2024-12-19 14:29:20 +00:00
Benjamin Valentin
ba0060d3a6 sys/rtc_utils: make parameter to rtc_mktime() const 2024-12-18 22:08:32 +01:00
Benjamin Valentin
309ff95f34 sys/string_utils: add string_writer helper 2024-12-17 12:38:14 +01:00
Marian Buschsieweke
4d44abcc0e
Merge pull request #21073 from benpicco/sys/chunked_ringbuffer-start_discard
sys/chunked_ringbuffer: discard stale chunk when starting a new one
2024-12-14 09:28:14 +00:00
Marian Buschsieweke
ab116ec71c
sys/net/nanocoap: Fix sending bogus separate responses
When module `nanocoap_server_separate` is not used, the functions to
send separate responses are still provided, just in a broken version:
They will send the separate replies from a different endpoint than the
request was received at (even on machines with only one IP address, as
also the source port is randomized).

This changes the behavior to only provide the functions for separate
response when the do work, so that others will detect an invalid
configuration at compile time rather than at run time.

The documentation is duly updated.
2024-12-13 08:40:43 +01:00
Marian Buschsieweke
28753e3509
Merge pull request #21075 from maribu/sys/net/nanocoap/buffer-overflow-separate-response
sys/net/nanocoap: fix buffer overflow in separate response handling
2024-12-12 20:36:55 +00:00
Marian Buschsieweke
6b1279348a
sys/fmt: add scn_buf_hex()
This adds a function to convert a hex string to a byte array.
2024-12-12 14:28:28 +01:00
Marian Buschsieweke
7a738d0e0b
sys/net/nanocoap: fix buffer overflow in separate response handling
When RFC 8974 support (module `nanocoap_token_ext`) is in use, the
request token may be longer than the buffer in the separate response
context is large. This adds a check to not overflow the buffer.

Sadly, this is an API change: Preparing the separate response context
can actually fail, so we need to report this with a return value.

The example application has been adapted to only proceed if the separate
reply context could have been prepared, and rather directly emit a
reset message if the token exceeds the static buffer.

Co-authored-by: benpicco <benpicco@googlemail.com>
2024-12-12 14:28:28 +01:00
Benjamin Valentin
982a2c161a sys/chunked_ringbuffer: discard stale chunk when starting a new one 2024-12-12 11:18:13 +01:00
mguetschow
c80058ee85
Merge pull request #21046 from netd-tud/psa-key-headers
sys/psa_crypto: Update key headers
2024-12-10 13:04:34 +00:00
Armin Wolf
7cabd3ee93 sys/psa_crypto: Split key attributes definitions into separate file
Split key attributes definitions into separate file, together with
some basic support macros and helper functions.

This allows PSA crypto backends to use this definitions without
pulling in all the other type definitions.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
2024-12-05 21:36:02 +01:00
Karl Fessel
737f675442
Merge pull request #18663 from Ollrogge/fido2_follow_up2
sys/fido2: follow up continued
2024-11-28 10:09:47 +00:00
Marian Buschsieweke
67a22dba5e
Merge pull request #19837 from HendrikVE/stdio_uart_add_flush_rx
sys/stdio_uart: add stdio_clear_stdin
2024-11-27 11:27:03 +00:00
Hendrik van Essen
6f9edfe7a2 sys/stdio_uart: add stdio_clear_stdin 2024-11-27 11:57:54 +01:00
benpicco
6f3f4256df
Merge pull request #21045 from benpicco/suit/coap_endpoints
suit: move CoAP endpoints to the example
2024-11-26 23:13:39 +00:00
Armin Wolf
dd81d185cd sys/psa_crypto: Split key definitions into separate files
Split key definitions into separate files, together with some basic
support macros.

This allows PSA crypto backends to use this definitions without
pulling in all the other type definitions.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
2024-11-26 20:01:09 +01:00
Benjamin Valentin
83569aa558 suit: move CoAP endpoints to the example
Those endpoints are very specific to the example and not
useful for general use.

Move them to the example's CoAP endpoints.
2024-11-26 19:49:20 +01:00
mguetschow
80a0681f45
Merge pull request #20906 from netd-tud/psa-headers
sys/psa_crypto: split algorithm definitions
2024-11-26 10:56:57 +00:00
Ollrogge
eddb00ae42 fido2/ctap: Adjust ctap_mem code to work on native 2024-11-25 11:03:03 +01:00
Marian Buschsieweke
a7e251509d
sys/shell: reduce overhead of XFA shell commands
We do not need to add an array of pointers to the shell commands, just
an array of shell commands is sufficient. This reduced the overhead of
XFA by `sizeof(void *)` per command.
2024-11-22 11:14:34 +01:00
Benjamin Valentin
ea1670ab0f sys/net/gnrc_pktbuf: move CANARY to header file 2024-11-19 15:23:03 +01:00
benpicco
aee4c1ef9c
Merge pull request #20984 from benpicco/gnrc_pktsnip_t-shrink
sys/net/gnrc/pkt: use `uint8_t` for user count
2024-11-17 17:29:16 +00:00
Benjamin Valentin
db2f3bd3dd sys/net/gnrc/pkt: use uint8_t for user count
It's very unlikely that a pkt snip will have more than 255 users.
Use a uint8_t here to save 4 bytes per snip as this now fits into
the ununsed struct padding.
2024-11-14 18:48:55 +01:00
Benjamin Valentin
3e8c7d0861 sys/endian: fix build with picolibc 2024-11-13 16:01:34 +01:00
Marian Buschsieweke
b9ba3ee0b2
Merge pull request #20964 from maribu/tests/rust_libs/improve-test-robustness
sys/shell: cmds_json builtin command
2024-11-13 05:30:13 +00:00
Marian Buschsieweke
f0a88dcf56
sys/shell: add help_json builtin command
This command does the same as `help`, but provides a machine readable
JSON rather than a human readable table. It is only provided when the
(pseudo-)module `shell_builtin_cmd_help_json` is used.
2024-11-11 22:05:04 +01:00
Marian Buschsieweke
cec85cfc88
Merge pull request #20945 from maribu/sys/net/gcoap/replace-super-insane-hack-with-less-insane-hack
sys/net/gcoap: reduce insanity of hack
2024-11-08 20:03:37 +00:00
Marian Buschsieweke
2b6f65a08a
build_system/xfa: change API to fix alignment
This changes the API of xfa from

    XFA(array_name, prio) type element_name = INITIALIZER;

to

    XFA(type, array_name, prio) element_name = INITIALIZER;

this allows forcing natural alignment of the type, fixing failing tests
on `native64`.
2024-11-07 16:30:01 +01:00
Marian Buschsieweke
68beb52f14
sys/net/nanocoap: add and use coap_get_response_hdr_len()
Before, handlers writing blockwise transfer assumed that the response
header length will match the request header length. This is true for
UDP, but not for TCP: The CoAP over TCP header contains a Len field,
that gets extended for larger messages. Since the reply often is indeed
larger than the request, this is indeed often the case for CoAP over
TCP.

Note: Right now, no CoAP over TCP implementation is upstream. However,
      getting rid of incorrect assumptions now will make life easier
      later on.
2024-11-05 10:46:02 +01:00
Marian Buschsieweke
765dc3a299
sys/net/gcoap: reduce insanity of hack
gcoap contains a hack where a `coap_pkt_t` is pulled out of thin air,
parts of the members are left uninitialized and a function is called on
that mostly uninitialized data while crossing fingers hard that the
result will be correct. (With the current implementation of the used
function this hack does actually work.)

Estimated level of insanity: 😱😱😱😱😱

This adds to insane functions to get the length of a token and the
length of a header of a CoAP packet while crossing fingers hard that
the packet is valid and that the functions do not overread.

Estimated level of insanity: 😱😱😱

The newly introduced insane functions are used to replace the old
insane hack, resulting in an estimated reduction of insanity of 😱😱.

Side note: This actually does fix a bug, as the old code did not take
           into account the length of the extended TKL field in case of
           RFC 8974 being used. But that is a bug in the abused API,
           and not in the caller abusing the API.
2024-11-01 16:32:59 +01:00
Marian Buschsieweke
469edf4827
sys/net/nanocoap: fix coap_get_total_hdr_len()
Before `coap_get_total_hdr_len()` did not take the extended TKL field
(RFC 8974) into account. This fixes the issue.
2024-11-01 13:58:34 +01:00
Armin Wolf
94f2b82ede sys/psa_crypto: Fix definition of PSA_ALG_IS_WILDCARD
A definition of PSA_ALG_HASH_ANY does not exist, use
PSA_ALG_ANY_HASH instead.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
2024-10-29 17:57:56 +01:00
Armin Wolf
e713b3d863 sys/psa_crypto: Add HKDF-Extract/-Expand key derivation algorithms
The PSA crypto API specification 1.1.1 introduced two new algorithms
for HKDF. Add support for those.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
2024-10-29 17:57:01 +01:00
Armin Wolf
b17402bc9f sys/psa_crypto: Split algorithm definitions into separate files
Split definition of psa_algorithm_t into a separate file, together
with some basic algorithm macros. Also move the definitions of the
hash/mac/cipher/AEAD/etc algorithm macros into separate files as
well.

This allows PSA crypto backends to use this definitions without
pulling in all the other type definitions.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
2024-10-29 17:52:54 +01:00
mguetschow
00e25adfe3
Merge pull request #20720 from netd-tud/chacha20-glue-code-implementation
sys/psa_crypto: one-shot Chacha20 support
2024-10-29 16:52:30 +00:00
Marian Buschsieweke
49c151e432
sys/luid: luid_custom() use fixed width int
This changes the type of the last parameter of `luid_custom()` to a
fixed width integer for consistent behavior among different
architectures.
2024-10-28 14:51:44 +01:00
Teufelchen
b376bec667
Merge pull request #20847 from benpicco/event_assert
sys/event: add assertion that event has a handler
2024-10-25 08:11:51 +00:00
benpicco
ae36fa4b37
Merge pull request #20921 from Vjorald/cord-doc
sys/net/app/cord: update doc
2024-10-24 16:59:01 +00:00
benpicco
c48247f984
Merge pull request #20916 from derMihai/mir/event_sync_mainline
sys/event: add event_sync()
2024-10-21 09:55:56 +00:00
Vjorald
d4fb64cfbc cord/doc: Update references to RFC 9176 2024-10-18 23:52:35 +02:00
Mihai Renea
9996909b65 sys/event: add event_sync() 2024-10-18 13:14:04 +02:00