1
0
mirror of https://github.com/Mbed-TLS/mbedtls.git synced 2025-07-28 00:21:48 +03:00

Merge pull request #8414 from lpy4105/issue/uniform-ssl-check-function

Harmonise the names and return values of check functions in TLS code
This commit is contained in:
Ronald Cron
2024-01-11 13:51:39 +00:00
committed by GitHub
5 changed files with 107 additions and 101 deletions

View File

@ -1914,89 +1914,89 @@ int mbedtls_ssl_tls13_handshake_server_step(mbedtls_ssl_context *ssl);
/*
* Helper functions around key exchange modes.
*/
static inline unsigned mbedtls_ssl_conf_tls13_check_kex_modes(mbedtls_ssl_context *ssl,
int kex_mode_mask)
static inline int mbedtls_ssl_conf_tls13_is_kex_mode_enabled(mbedtls_ssl_context *ssl,
int kex_mode_mask)
{
return (ssl->conf->tls13_kex_modes & kex_mode_mask) != 0;
}
static inline int mbedtls_ssl_conf_tls13_psk_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_conf_tls13_is_psk_enabled(mbedtls_ssl_context *ssl)
{
return mbedtls_ssl_conf_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK);
return mbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK);
}
static inline int mbedtls_ssl_conf_tls13_psk_ephemeral_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_conf_tls13_is_psk_ephemeral_enabled(mbedtls_ssl_context *ssl)
{
return mbedtls_ssl_conf_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL);
return mbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL);
}
static inline int mbedtls_ssl_conf_tls13_ephemeral_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_conf_tls13_is_ephemeral_enabled(mbedtls_ssl_context *ssl)
{
return mbedtls_ssl_conf_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL);
return mbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL);
}
static inline int mbedtls_ssl_conf_tls13_some_ephemeral_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_conf_tls13_is_some_ephemeral_enabled(mbedtls_ssl_context *ssl)
{
return mbedtls_ssl_conf_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL);
return mbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL);
}
static inline int mbedtls_ssl_conf_tls13_some_psk_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_conf_tls13_is_some_psk_enabled(mbedtls_ssl_context *ssl)
{
return mbedtls_ssl_conf_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL);
return mbedtls_ssl_conf_tls13_is_kex_mode_enabled(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL);
}
#if defined(MBEDTLS_SSL_SRV_C) && \
defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED)
/**
* Given a list of key exchange modes, check if at least one of them is
* supported.
* supported by peer.
*
* \param[in] ssl SSL context
* \param kex_modes_mask Mask of the key exchange modes to check
*
* \return 0 if at least one of the key exchange modes is supported,
* !=0 otherwise.
* \return Non-zero if at least one of the key exchange modes is supported by
* the peer, otherwise \c 0.
*/
static inline unsigned mbedtls_ssl_tls13_check_kex_modes(mbedtls_ssl_context *ssl,
int kex_modes_mask)
static inline int mbedtls_ssl_tls13_is_kex_mode_supported(mbedtls_ssl_context *ssl,
int kex_modes_mask)
{
return (ssl->handshake->tls13_kex_modes & kex_modes_mask) == 0;
return (ssl->handshake->tls13_kex_modes & kex_modes_mask) != 0;
}
static inline int mbedtls_ssl_tls13_psk_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_tls13_is_psk_supported(mbedtls_ssl_context *ssl)
{
return !mbedtls_ssl_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK);
return mbedtls_ssl_tls13_is_kex_mode_supported(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK);
}
static inline int mbedtls_ssl_tls13_psk_ephemeral_enabled(
static inline int mbedtls_ssl_tls13_is_psk_ephemeral_supported(
mbedtls_ssl_context *ssl)
{
return !mbedtls_ssl_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL);
return mbedtls_ssl_tls13_is_kex_mode_supported(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL);
}
static inline int mbedtls_ssl_tls13_ephemeral_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_tls13_is_ephemeral_supported(mbedtls_ssl_context *ssl)
{
return !mbedtls_ssl_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL);
return mbedtls_ssl_tls13_is_kex_mode_supported(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL);
}
static inline int mbedtls_ssl_tls13_some_ephemeral_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_tls13_is_some_ephemeral_supported(mbedtls_ssl_context *ssl)
{
return !mbedtls_ssl_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL);
return mbedtls_ssl_tls13_is_kex_mode_supported(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL);
}
static inline int mbedtls_ssl_tls13_some_psk_enabled(mbedtls_ssl_context *ssl)
static inline int mbedtls_ssl_tls13_is_some_psk_supported(mbedtls_ssl_context *ssl)
{
return !mbedtls_ssl_tls13_check_kex_modes(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL);
return mbedtls_ssl_tls13_is_kex_mode_supported(ssl,
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL);
}
#endif /* MBEDTLS_SSL_SRV_C &&
MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */
@ -2782,47 +2782,53 @@ int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session,
#define MBEDTLS_SSL_TLS1_3_MAX_ALLOWED_TICKET_LIFETIME (604800)
static inline unsigned int mbedtls_ssl_session_get_ticket_flags(
static inline unsigned int mbedtls_ssl_tls13_session_get_ticket_flags(
mbedtls_ssl_session *session, unsigned int flags)
{
return session->ticket_flags &
(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
}
static inline unsigned int mbedtls_ssl_session_check_ticket_flags(
/**
* Check if at least one of the given flags is set in
* the session ticket. See the definition of
* `MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK` to get all
* permitted flags.
*/
static inline int mbedtls_ssl_tls13_session_ticket_has_flags(
mbedtls_ssl_session *session, unsigned int flags)
{
return mbedtls_ssl_session_get_ticket_flags(session, flags) == 0;
return mbedtls_ssl_tls13_session_get_ticket_flags(session, flags) != 0;
}
static inline unsigned int mbedtls_ssl_session_ticket_allow_psk(
static inline int mbedtls_ssl_tls13_session_ticket_allow_psk(
mbedtls_ssl_session *session)
{
return !mbedtls_ssl_session_check_ticket_flags(session,
MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION);
return mbedtls_ssl_tls13_session_ticket_has_flags(
session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION);
}
static inline unsigned int mbedtls_ssl_session_ticket_allow_psk_ephemeral(
static inline int mbedtls_ssl_tls13_session_ticket_allow_psk_ephemeral(
mbedtls_ssl_session *session)
{
return !mbedtls_ssl_session_check_ticket_flags(session,
MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION);
return mbedtls_ssl_tls13_session_ticket_has_flags(
session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION);
}
static inline unsigned int mbedtls_ssl_session_ticket_allow_early_data(
static inline unsigned int mbedtls_ssl_tls13_session_ticket_allow_early_data(
mbedtls_ssl_session *session)
{
return !mbedtls_ssl_session_check_ticket_flags(session,
MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA);
return mbedtls_ssl_tls13_session_ticket_has_flags(
session, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA);
}
static inline void mbedtls_ssl_session_set_ticket_flags(
static inline void mbedtls_ssl_tls13_session_set_ticket_flags(
mbedtls_ssl_session *session, unsigned int flags)
{
session->ticket_flags |= (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);
}
static inline void mbedtls_ssl_session_clear_ticket_flags(
static inline void mbedtls_ssl_tls13_session_clear_ticket_flags(
mbedtls_ssl_session *session, unsigned int flags)
{
session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK);