1
0
mirror of https://github.com/wolfSSL/wolfssl.git synced 2026-10-24 04:09:07 +03:00
Files
wolfssl/tests/api/test_dtls.h
Tobias Frauenschläger 6a9016769e Continue on SNI warning_return in TLS 1.3, drop stale KeyUpdates
A second review of the close_notify changes found:

- An SNI callback returning warning_return made a TLS 1.3 server send
  an alert at warning level and carry on with the handshake. TLS 1.3
  error alerts are always fatal (RFC 8446 Section 6.2), so the previous
  commit marked the connection fatally closed and the server then sent
  its whole flight on a connection that refused every write. The
  client had already given up, as it treats that alert as fatal too.
  warning_return is what OpenSSL-compatible callbacks return as
  SSL_TLSEXT_ERR_ALERT_WARNING to mean "carry on without acknowledging
  the name", and OpenSSL handles it in TLS 1.3 by sending no alert and
  continuing. Do the same. That was the only TLS 1.3 path sending a
  warning-level error alert, so SendAlert_ex() goes back to checking
  the level alone.
- A callback that leaves the alert description unset left it at 0,
  close_notify, unless OPENSSL_EXTRA and WOLFSSL_EXTRA_ALERTS made it
  unrecognized_name. fatal_return then sent a fatal close_notify, and a
  TLS 1.2 warning_return sent a warning close_notify, which ends the
  connection the callback asked to continue. Send handshake_failure for
  fatal_return and no alert for warning_return instead, which still
  does not tell the client that the name was unknown.
- With WOLFSSL_RW_THREADED, a KeyUpdate request read before our
  close_notify left sendKeyUpdate set. SendData() skipped it without
  clearing it, wolfSSL_dtls13_pending_work() kept reporting work and
  wolfSSL_dtls13_do_scheduled_work() sent the KeyUpdate after our
  close_notify. The response is now dropped once the write side is
  closed, and pending_work() no longer reports it.
- The CertificateRequest check returned before parsing, so a malformed
  post-handshake request after close_notify was accepted silently and
  the trace was left unbalanced. The message is now validated and only
  ignored just before its context would be stored.

Merge the close_notify and fatal alert refusals in SendData(), which
differed only in the error code, and drop a comment that described
ssl->error rather than sentNotify.

Move test_dtls13_no_key_update_after_close_notify to the dtls group,
add test_dtls13_scheduled_work_after_shutdown, and replace
test_tls13_sent_warning_error_alert_is_fatal with
test_tls_sni_callback_alerts covering TLS 1.3 and TLS 1.2, warning and
fatal returns, with and without an alert description. Keep two test
comments within 80 columns.
2026-10-21 12:14:01 -07:00

393 lines
23 KiB
C

/* test_dtls.h
*
* Copyright (C) 2006-2026 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#ifndef TESTS_API_DTLS_H
#define TESTS_API_DTLS_H
int test_dtls12_wire_mangle(void);
int test_wolfSSL_dtls_cid_arg_guards(void);
int test_dtls12_packet_forgeries(void);
int test_dtls13_packet_forgeries(void);
int test_dtls13_wire_mangle(void);
int test_dtls12_basic_connection_id(void);
int test_wolfSSL_dtls_cid_parse(void);
int test_wolfSSL_dtls_cid_args(void);
int test_wolfSSL_dtls_set_pending_peer(void);
int test_wolfSSL_dtls_set_pending_peer_not_newest(void);
int test_wolfSSL_dtls_pending_peer_app_data_pending(void);
int test_dtls13_new_connection_id(void);
int test_dtls13_new_connection_id_long_cid(void);
int test_dtls13_new_connection_id_not_negotiated(void);
int test_dtls13_request_connection_id(void);
int test_dtls13_cid_msg_malformed(void);
int test_dtls_cid_negotiate_oversize(void);
int test_dtls13_cid_oversized_tx(void);
int test_dtls13_cid_oversized_tx_post_hs(void);
int test_dtls_version_checking(void);
int test_dtls_drop_invalid_record_during_handshake(void);
int test_dtls_drop_invalid_hs_header_when_unverified(void);
int test_dtls_short_ciphertext(void);
int test_dtls12_record_length_mismatch(void);
int test_dtls12_short_read(void);
int test_dtls13_longer_length(void);
int test_dtls13_short_read(void);
int test_dtls13_oversized_msg_length(void);
int test_records_span_network_boundaries(void);
int test_dtls_record_cross_boundaries(void);
int test_dtls_rtx_across_epoch_change(void);
int test_dtls_drop_client_ack(void);
int test_dtls_bogus_finished_epoch_zero(void);
int test_dtls_replay(void);
int test_dtls_timeout(void);
int test_dtls_certreq_order(void);
int test_dtls_memio_wolfio(void);
int test_dtls_memio_wolfio_stateless(void);
int test_dtls_memio_wolfio_invalid_peer(void);
int test_dtls_mtu_fragment_headroom(void);
int test_dtls_mtu_split_messages(void);
int test_dtls_set_session_min_downgrade(void);
int test_dtls12_export_import_etm(void);
int test_dtls12_export_import_v6(void);
int test_dtls13_export_import(void);
int test_dtls13_export_unequal_epochs(void);
int test_dtls13_export_restrictions(void);
int test_dtls13_export_key_update_response(void);
int test_dtls13_export_half_sent_fragment(void);
int test_dtls13_export_write_dup(void);
int test_dtls13_export_pending_ticket_lost(void);
int test_dtls13_export_server_ticket_after_import(void);
int test_dtls13_export_client_ticket_after_import(void);
int test_dtls12_export_state_version(void);
int test_dtls13_import_state_restrictions(void);
int test_dtls_export_cid_restored(void);
int test_dtls_export_tight_buffer(void);
int test_dtls_export_no_cid_clears_target(void);
int test_dtls13_export_unacked_flight(void);
int test_dtls13_export_post_handshake_auth(void);
int test_dtls13_export_import_client(void);
int test_dtls13_export_replay_window(void);
int test_dtls13_export_smaller_window(void);
int test_dtls13_export_larger_window(void);
int test_dtls13_export_malformed(void);
int test_dtls13_export_epoch_numbers(void);
int test_dtls13_export_reimport(void);
int test_dtls13_export_failed_epoch_commit(void);
int test_dtls13_export_malformed_epoch_keys(void);
int test_dtls13_export_malformed_specs(void);
int test_dtls13_export_short_epoch_keys(void);
int test_dtls13_export_short_secret(void);
int test_dtls13_export_padded_state_section(void);
int test_dtls13_export_padded_cid_section(void);
int test_dtls_export_import_oversized_buffer(void);
int test_dtls13_export_sha256_suite(void);
int test_dtls13_export_integrity_only_suite(void);
int test_dtls13_export_unequal_epochs_client(void);
int test_dtls13_export_prev_peer_epoch(void);
int test_dtls13_export_invalidate_before(void);
int test_dtls13_export_drop_count(void);
int test_wolfSSL_dtls_create_free_peer(void);
int test_wolfSSL_dtls_scheduled_work(void);
int test_dtls13_no_key_update_after_close_notify(void);
int test_dtls13_scheduled_work_after_shutdown(void);
int test_wolfSSL_dtls_get0_peer(void);
int test_wolfSSL_dtls_set_timeout_init(void);
int test_wolfSSL_dtls_retransmit(void);
int test_wolfSSL_DTLSv1_compat_timeouts(void);
int test_wolfSSL_dtls13_set_send_more_acks(void);
int test_wolfSSL_dtls_srtp_keying_material(void);
int test_wolfSSL_mcast_peers(void);
int test_wolfSSL_set_dtls_fd_connected(void);
int test_wolfSSL_dtls_get_peer(void);
int test_wolfSSL_dtls_set_peer(void);
int test_wolfSSL_GetDtlsMacSecret(void);
int test_wolfSSL_dtls_get_using_nonblock(void);
int test_wolfSSL_dtls_set_using_nonblock(void);
int test_wolfSSL_set_mtu_compat(void);
int test_wolfSSL_dtls_set_timeout_max(void);
int test_wolfSSL_CTX_mcast_set_member_id(void);
int test_wolfSSL_mcast_read(void);
int test_wolfSSL_dtls_got_timeout(void);
int test_wolfSSL_DTLS_SetCookieSecret(void);
int test_wolfSSL_set_secret(void);
int test_wolfSSL_mcast_ccs_peer_entry(void);
/* DTLS tests moved out of tests/api.c. */
int test_dtls_msg_from_other_peer(void);
int test_dtls_ipv6_check(void);
int test_dtls_no_extensions(void);
int test_dtls_1_0_hvr_downgrade(void);
int test_dtls_downgrade_scr_server(void);
int test_dtls_downgrade_scr(void);
int test_dtls_client_hello_timeout_downgrade(void);
int test_dtls_client_hello_timeout(void);
int test_dtls_dropped_ccs(void);
int test_dtls_seq_num_downgrade(void);
int test_dtls_old_seq_number(void);
int test_dtls12_stateless_window(void);
int test_dtls12_seq_num_wrap(void);
int test_dtls12_replay_window_hi_wrap(void);
int test_dtls12_scr_epoch_wrap(void);
int test_dtls12_scr_client_epoch_wrap(void);
int test_dtls12_cid_record_type_swap(void);
int test_dtls12_cid_not_negotiated(void);
int test_dtls_sctp_app_data_size(void);
int test_dtls12_missing_finished(void);
int test_dtls12_cookie_secret_secondary(void);
int test_dtls12_cookie_secret_secondary_dropped(void);
int test_dtls12_cookie_secret_secondary_cleared(void);
int test_dtls12_cookie_secret_primary_wins(void);
int test_dtls12_cookie_secret_same_as_primary(void);
int test_dtls12_cookie_secret_secondary_replaced(void);
int test_dtls12_cookie_secret_issue_uses_primary(void);
int test_dtls13_hrr_cookie_secret_secondary(void);
int test_dtls13_hrr_cookie_secret_secondary_dropped(void);
int test_dtls13_hrr_cookie_secret_secondary_cleared(void);
int test_dtls13_hrr_cookie_secret_primary_wins(void);
int test_dtls13_hrr_cookie_secret_same_as_primary(void);
int test_dtls13_hrr_cookie_secret_secondary_replaced(void);
int test_dtls13_hrr_cookie_secret_issue_uses_primary(void);
int test_dtls13_hrr_cookie_secret_secondary_args(void);
int test_dtls13_hrr_cookie_secret_secondary_disabled(void);
int test_dtls12_frag_ch_no_cookie(void);
int test_dtls_cookie_policy(void);
int test_dtls_no_cookie_ch_stall(void);
int test_dtls_no_cookie_ch_reject(void);
int test_dtls_cookie_flip_in_cb(void);
int test_dtls_cookie_policy_set_side(void);
int test_dtls_cookie_policy_neither_end(void);
int test_dtls13_hrr_cookie_state_guard(void);
int test_dtls12_cookie_secret_generate_fail(void);
int test_dtls13_hrr_cookie_secret_generate_fail(void);
int test_dtls_max_fragment_write(void);
int test_wolfSSL_dtls_export(void);
int test_wolfSSL_dtls_import_dh_key_sz(void);
int test_wolfSSL_dtls_export_peers(void);
int test_wolfSSL_dtls_import_state_extra_window_words(void);
int test_wolfSSL_DTLS_either_side(void);
int test_generate_cookie(void);
int test_wolfSSL_dtls_set_mtu(void);
int test_wolfSSL_dtls_plaintext(void);
int test_wolfSSL_dtls_fragments(void);
int test_wolfSSL_ignore_alert_before_cookie(void);
int test_wolfSSL_dtls_bad_record(void);
int test_wolfSSL_dtls_AEAD_limit(void);
int test_wolfSSL_dtls_stateless(void);
int test_wolfSSL_dtls_stateless_hrr_group(void);
int test_wolfSSL_DtlsUpdateWindow(void);
int test_wolfSSL_DTLS_fragment_buckets(void);
int test_wolfSSL_dtls_stateless2(void);
int test_wolfSSL_dtls_stateless_maxfrag(void);
int test_wolfSSL_dtls_stateless_resume(void);
int test_wolfSSL_dtls_stateless_downgrade(void);
int test_WOLFSSL_dtls_version_alert(void);
/* Shared with tests/api/test_dtls13.c. */
#define TEST_DTLS13_FOUR_FRAG_CH_SZ 832
extern const unsigned char
test_dtls13_four_frag_ch[TEST_DTLS13_FOUR_FRAG_CH_SZ];
int test_dtls_no_cookie_ch_good(WOLFSSL* ssl, void* ctx);
int test_dtls_no_cookie_ch_pause(WOLFSSL* ssl, void* ctx);
#define TEST_DTLS_DECLS \
TEST_DECL_GROUP("dtls", test_dtls12_basic_connection_id), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_cid_parse), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_cid_args), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_pending_peer), \
TEST_DECL_GROUP("dtls", test_dtls12_wire_mangle), \
TEST_DECL_GROUP("dtls", test_dtls13_wire_mangle), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_cid_arg_guards), \
TEST_DECL_GROUP("dtls", test_dtls12_packet_forgeries), \
TEST_DECL_GROUP("dtls", test_dtls13_packet_forgeries), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_pending_peer_not_newest),\
TEST_DECL_GROUP("dtls", \
test_wolfSSL_dtls_pending_peer_app_data_pending), \
TEST_DECL_GROUP("dtls", test_dtls13_new_connection_id), \
TEST_DECL_GROUP("dtls", test_dtls13_new_connection_id_long_cid), \
TEST_DECL_GROUP("dtls", test_dtls13_new_connection_id_not_negotiated), \
TEST_DECL_GROUP("dtls", test_dtls13_request_connection_id), \
TEST_DECL_GROUP("dtls", test_dtls13_cid_msg_malformed), \
TEST_DECL_GROUP("dtls", test_dtls_cid_negotiate_oversize), \
TEST_DECL_GROUP("dtls", test_dtls13_cid_oversized_tx), \
TEST_DECL_GROUP("dtls", test_dtls13_cid_oversized_tx_post_hs), \
TEST_DECL_GROUP("dtls", test_dtls_sctp_app_data_size), \
TEST_DECL_GROUP("dtls", test_dtls_version_checking), \
TEST_DECL_GROUP("dtls", \
test_dtls_drop_invalid_record_during_handshake), \
TEST_DECL_GROUP("dtls", \
test_dtls_drop_invalid_hs_header_when_unverified), \
TEST_DECL_GROUP("dtls", test_dtls_short_ciphertext), \
TEST_DECL_GROUP("dtls", test_dtls12_record_length_mismatch), \
TEST_DECL_GROUP("dtls", test_dtls12_short_read), \
TEST_DECL_GROUP("dtls", test_dtls13_longer_length), \
TEST_DECL_GROUP("dtls", test_dtls13_short_read), \
TEST_DECL_GROUP("dtls", test_dtls13_oversized_msg_length), \
TEST_DECL_GROUP("dtls", test_records_span_network_boundaries), \
TEST_DECL_GROUP("dtls", test_dtls_record_cross_boundaries), \
TEST_DECL_GROUP("dtls", test_dtls_rtx_across_epoch_change), \
TEST_DECL_GROUP("dtls", test_dtls_drop_client_ack), \
TEST_DECL_GROUP("dtls", test_dtls_bogus_finished_epoch_zero), \
TEST_DECL_GROUP("dtls", test_dtls_replay), \
TEST_DECL_GROUP("dtls", test_dtls_certreq_order), \
TEST_DECL_GROUP("dtls", test_dtls_timeout), \
TEST_DECL_GROUP("dtls", test_dtls_memio_wolfio), \
TEST_DECL_GROUP("dtls", test_dtls_mtu_fragment_headroom), \
TEST_DECL_GROUP("dtls", test_dtls_mtu_split_messages), \
TEST_DECL_GROUP("dtls", test_dtls_memio_wolfio_stateless), \
TEST_DECL_GROUP("dtls", test_dtls_memio_wolfio_invalid_peer), \
TEST_DECL_GROUP("dtls", test_dtls_set_session_min_downgrade), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_export), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_import_dh_key_sz), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_export_peers), \
TEST_DECL_GROUP("dtls", \
test_wolfSSL_dtls_import_state_extra_window_words), \
TEST_DECL_GROUP("dtls", test_wolfSSL_DTLS_either_side), \
TEST_DECL_GROUP("dtls", test_generate_cookie), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_mtu), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_plaintext), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_fragments), \
TEST_DECL_GROUP("dtls", test_wolfSSL_ignore_alert_before_cookie), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_bad_record), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_AEAD_limit), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless_hrr_group), \
TEST_DECL_GROUP("dtls", test_wolfSSL_DtlsUpdateWindow), \
TEST_DECL_GROUP("dtls", test_wolfSSL_DTLS_fragment_buckets), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless2), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless_maxfrag), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless_resume), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_stateless_downgrade), \
TEST_DECL_GROUP("dtls", test_WOLFSSL_dtls_version_alert), \
TEST_DECL_GROUP("dtls", test_dtls_msg_from_other_peer), \
TEST_DECL_GROUP("dtls", test_dtls_ipv6_check), \
TEST_DECL_GROUP("dtls", test_dtls_no_extensions), \
TEST_DECL_GROUP("dtls", test_dtls_1_0_hvr_downgrade), \
TEST_DECL_GROUP("dtls", test_dtls_downgrade_scr_server), \
TEST_DECL_GROUP("dtls", test_dtls_downgrade_scr), \
TEST_DECL_GROUP("dtls", test_dtls_client_hello_timeout_downgrade), \
TEST_DECL_GROUP("dtls", test_dtls_client_hello_timeout), \
TEST_DECL_GROUP("dtls", test_dtls_dropped_ccs), \
TEST_DECL_GROUP("dtls", test_dtls_seq_num_downgrade), \
TEST_DECL_GROUP("dtls", test_dtls_old_seq_number), \
TEST_DECL_GROUP("dtls", test_dtls12_stateless_window), \
TEST_DECL_GROUP("dtls", test_dtls12_seq_num_wrap), \
TEST_DECL_GROUP("dtls", test_dtls12_replay_window_hi_wrap), \
TEST_DECL_GROUP("dtls", test_dtls12_scr_epoch_wrap), \
TEST_DECL_GROUP("dtls", test_dtls12_scr_client_epoch_wrap), \
TEST_DECL_GROUP("dtls", test_dtls12_cid_record_type_swap), \
TEST_DECL_GROUP("dtls", test_dtls12_cid_not_negotiated), \
TEST_DECL_GROUP("dtls", test_dtls12_missing_finished), \
TEST_DECL_GROUP("dtls", test_dtls12_export_import_etm), \
TEST_DECL_GROUP("dtls", test_dtls12_export_import_v6), \
TEST_DECL_GROUP("dtls", test_dtls13_export_import), \
TEST_DECL_GROUP("dtls", test_dtls13_export_unequal_epochs), \
TEST_DECL_GROUP("dtls", test_dtls13_export_restrictions), \
TEST_DECL_GROUP("dtls", test_dtls13_export_key_update_response), \
TEST_DECL_GROUP("dtls", test_dtls13_export_half_sent_fragment), \
TEST_DECL_GROUP("dtls", test_dtls13_export_write_dup), \
TEST_DECL_GROUP("dtls", test_dtls13_export_pending_ticket_lost), \
TEST_DECL_GROUP("dtls", test_dtls13_export_server_ticket_after_import),\
TEST_DECL_GROUP("dtls", test_dtls13_export_client_ticket_after_import),\
TEST_DECL_GROUP("dtls", test_dtls12_export_state_version), \
TEST_DECL_GROUP("dtls", test_dtls13_import_state_restrictions), \
TEST_DECL_GROUP("dtls", test_dtls_export_cid_restored), \
TEST_DECL_GROUP("dtls", test_dtls_export_tight_buffer), \
TEST_DECL_GROUP("dtls", test_dtls_export_no_cid_clears_target), \
TEST_DECL_GROUP("dtls", test_dtls13_export_unacked_flight), \
TEST_DECL_GROUP("dtls", test_dtls13_export_post_handshake_auth), \
TEST_DECL_GROUP("dtls", test_dtls13_export_import_client), \
TEST_DECL_GROUP("dtls", test_dtls13_export_replay_window), \
TEST_DECL_GROUP("dtls", test_dtls13_export_smaller_window), \
TEST_DECL_GROUP("dtls", test_dtls13_export_larger_window), \
TEST_DECL_GROUP("dtls", test_dtls13_export_malformed), \
TEST_DECL_GROUP("dtls", test_dtls13_export_epoch_numbers), \
TEST_DECL_GROUP("dtls", test_dtls13_export_reimport), \
TEST_DECL_GROUP("dtls", test_dtls13_export_failed_epoch_commit), \
TEST_DECL_GROUP("dtls", test_dtls13_export_malformed_epoch_keys), \
TEST_DECL_GROUP("dtls", test_dtls13_export_malformed_specs), \
TEST_DECL_GROUP("dtls", test_dtls13_export_short_epoch_keys), \
TEST_DECL_GROUP("dtls", test_dtls13_export_short_secret), \
TEST_DECL_GROUP("dtls", test_dtls13_export_padded_state_section), \
TEST_DECL_GROUP("dtls", test_dtls13_export_padded_cid_section), \
TEST_DECL_GROUP("dtls", test_dtls_export_import_oversized_buffer), \
TEST_DECL_GROUP("dtls", test_dtls13_export_sha256_suite), \
TEST_DECL_GROUP("dtls", test_dtls13_export_integrity_only_suite), \
TEST_DECL_GROUP("dtls", test_dtls13_export_unequal_epochs_client), \
TEST_DECL_GROUP("dtls", test_dtls13_export_prev_peer_epoch), \
TEST_DECL_GROUP("dtls", test_dtls13_export_invalidate_before), \
TEST_DECL_GROUP("dtls", test_dtls13_export_drop_count), \
TEST_DECL_GROUP("dtls", test_dtls13_min_rtx_interval), \
TEST_DECL_GROUP("dtls", test_dtls13_no_session_id_echo), \
TEST_DECL_GROUP("dtls", test_dtls_set_session_min_downgrade), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_create_free_peer), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_scheduled_work), \
TEST_DECL_GROUP("dtls", test_dtls13_no_key_update_after_close_notify), \
TEST_DECL_GROUP("dtls", test_dtls13_scheduled_work_after_shutdown), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_get0_peer), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_timeout_init), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_retransmit), \
TEST_DECL_GROUP("dtls", test_wolfSSL_DTLSv1_compat_timeouts), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls13_set_send_more_acks), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_srtp_keying_material), \
TEST_DECL_GROUP("dtls", test_wolfSSL_mcast_peers), \
TEST_DECL_GROUP("dtls", test_wolfSSL_set_dtls_fd_connected), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_get_peer), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_peer), \
TEST_DECL_GROUP("dtls", test_wolfSSL_GetDtlsMacSecret), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_get_using_nonblock), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_using_nonblock), \
TEST_DECL_GROUP("dtls", test_wolfSSL_set_mtu_compat), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_set_timeout_max), \
TEST_DECL_GROUP("dtls", test_wolfSSL_CTX_mcast_set_member_id), \
TEST_DECL_GROUP("dtls", test_wolfSSL_mcast_read), \
TEST_DECL_GROUP("dtls", test_wolfSSL_dtls_got_timeout), \
TEST_DECL_GROUP("dtls", test_wolfSSL_DTLS_SetCookieSecret), \
TEST_DECL_GROUP("dtls", test_wolfSSL_set_secret), \
TEST_DECL_GROUP("dtls", test_wolfSSL_mcast_ccs_peer_entry), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_secondary), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_secondary_dropped), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_secondary_cleared), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_primary_wins), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_same_as_primary), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_secondary_replaced), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_issue_uses_primary), \
TEST_DECL_GROUP("dtls", test_dtls12_frag_ch_no_cookie), \
TEST_DECL_GROUP("dtls", test_dtls_cookie_policy), \
TEST_DECL_GROUP("dtls", test_dtls_no_cookie_ch_stall), \
TEST_DECL_GROUP("dtls", test_dtls_no_cookie_ch_reject), \
TEST_DECL_GROUP("dtls", test_dtls_cookie_flip_in_cb), \
TEST_DECL_GROUP("dtls", test_dtls_cookie_policy_set_side), \
TEST_DECL_GROUP("dtls", test_dtls_cookie_policy_neither_end), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_state_guard), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary_dropped), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary_cleared), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_primary_wins), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_same_as_primary), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary_replaced), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_issue_uses_primary), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary_args), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_secondary_disabled), \
TEST_DECL_GROUP("dtls", test_dtls12_cookie_secret_generate_fail), \
TEST_DECL_GROUP("dtls", test_dtls13_hrr_cookie_secret_generate_fail), \
TEST_DECL_GROUP("dtls", test_dtls_max_fragment_write)
#endif /* TESTS_API_DTLS_H */