mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-30 04:34:27 +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_UNRECOGNIZED_NAME 112 /* 0x70 */
|
||||||
#define MBEDTLS_SSL_ALERT_MSG_UNKNOWN_PSK_IDENTITY 115 /* 0x73 */
|
#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_NO_APPLICATION_PROTOCOL 120 /* 0x78 */
|
||||||
|
#define MBEDTLS_SSL_ALERT_MSG_NONE 255 /* internal */
|
||||||
|
|
||||||
#define MBEDTLS_SSL_HS_HELLO_REQUEST 0
|
#define MBEDTLS_SSL_HS_HELLO_REQUEST 0
|
||||||
#define MBEDTLS_SSL_HS_CLIENT_HELLO 1
|
#define MBEDTLS_SSL_HS_CLIENT_HELLO 1
|
||||||
@ -1234,6 +1235,9 @@ struct mbedtls_ssl_context
|
|||||||
{
|
{
|
||||||
const mbedtls_ssl_config *conf; /*!< configuration information */
|
const mbedtls_ssl_config *conf; /*!< configuration information */
|
||||||
|
|
||||||
|
unsigned char pend_alert_level;
|
||||||
|
unsigned char pend_alert_msg;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Miscellaneous
|
* Miscellaneous
|
||||||
*/
|
*/
|
||||||
|
@ -1724,4 +1724,15 @@ static inline unsigned int mbedtls_ssl_conf_get_ems_enforced(
|
|||||||
|
|
||||||
#endif /* MBEDTLS_SSL_CONF_SINGLE_SIG_HASH */
|
#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 */
|
#endif /* ssl_internal.h */
|
||||||
|
@ -7983,6 +7983,9 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl,
|
|||||||
if( ( ret = ssl_handshake_init( ssl ) ) != 0 )
|
if( ( ret = ssl_handshake_init( ssl ) ) != 0 )
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
ssl->pend_alert_msg = MBEDTLS_SSL_ALERT_MSG_NONE;
|
||||||
|
ssl->pend_alert_level = MBEDTLS_SSL_ALERT_LEVEL_FATAL;
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -9835,6 +9838,14 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl )
|
|||||||
ret = mbedtls_ssl_handshake_server_step( ssl );
|
ret = mbedtls_ssl_handshake_server_step( ssl );
|
||||||
#endif
|
#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 );
|
return( ret );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user