mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-30 00:24:16 +01:00
Introduce SSL helper function to mark pending alerts
This commit is contained in:
parent
3b014fc23a
commit
f46e1ce812
@ -366,6 +366,7 @@
|
||||
#define MBEDTLS_SSL_ALERT_MSG_UNRECOGNIZED_NAME 112 /* 0x70 */
|
||||
#define MBEDTLS_SSL_ALERT_MSG_UNKNOWN_PSK_IDENTITY 115 /* 0x73 */
|
||||
#define MBEDTLS_SSL_ALERT_MSG_NO_APPLICATION_PROTOCOL 120 /* 0x78 */
|
||||
#define MBEDTLS_SSL_ALERT_MSG_NONE 255 /* internal */
|
||||
|
||||
#define MBEDTLS_SSL_HS_HELLO_REQUEST 0
|
||||
#define MBEDTLS_SSL_HS_CLIENT_HELLO 1
|
||||
@ -1234,6 +1235,9 @@ struct mbedtls_ssl_context
|
||||
{
|
||||
const mbedtls_ssl_config *conf; /*!< configuration information */
|
||||
|
||||
unsigned char pend_alert_level;
|
||||
unsigned char pend_alert_msg;
|
||||
|
||||
/*
|
||||
* Miscellaneous
|
||||
*/
|
||||
|
@ -1724,4 +1724,15 @@ static inline unsigned int mbedtls_ssl_conf_get_ems_enforced(
|
||||
|
||||
#endif /* MBEDTLS_SSL_CONF_SINGLE_SIG_HASH */
|
||||
|
||||
__attribute__((always_inline)) static inline int mbedtls_ssl_pend_alert_message(
|
||||
mbedtls_ssl_context *ssl,
|
||||
unsigned char level,
|
||||
unsigned char message )
|
||||
{
|
||||
if( level != MBEDTLS_SSL_ALERT_LEVEL_FATAL )
|
||||
ssl->pend_alert_level = level;
|
||||
ssl->pend_alert_msg = message;
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
#endif /* ssl_internal.h */
|
||||
|
@ -7983,6 +7983,9 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl,
|
||||
if( ( ret = ssl_handshake_init( ssl ) ) != 0 )
|
||||
goto error;
|
||||
|
||||
ssl->pend_alert_msg = MBEDTLS_SSL_ALERT_MSG_NONE;
|
||||
ssl->pend_alert_level = MBEDTLS_SSL_ALERT_LEVEL_FATAL;
|
||||
|
||||
return( 0 );
|
||||
|
||||
error:
|
||||
@ -9835,6 +9838,14 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl )
|
||||
ret = mbedtls_ssl_handshake_server_step( ssl );
|
||||
#endif
|
||||
|
||||
if( ssl->pend_alert_msg != MBEDTLS_SSL_ALERT_MSG_NONE )
|
||||
{
|
||||
mbedtls_ssl_send_alert_message( ssl,
|
||||
ssl->pend_alert_level,
|
||||
ssl->pend_alert_msg );
|
||||
ssl->pend_alert_msg = MBEDTLS_SSL_ALERT_MSG_NONE;
|
||||
ssl->pend_alert_level = MBEDTLS_SSL_ALERT_LEVEL_FATAL;
|
||||
}
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user