Introduce sub-structure of ssl_handshake_params for buffering
This commit introduces a sub-structure `buffering` within mbedtls_ssl_handshake_params that shall contain all data related to the reassembly and/or buffering of handshake messages. Currently, only buffering of CCS messages is implemented, so the only member of this struct is the previously introduced `seen_ccs` field.
This commit is contained in:
parent
e25e3b7d96
commit
d7f8ae2508
2 changed files with 10 additions and 6 deletions
|
@ -308,8 +308,12 @@ struct mbedtls_ssl_handshake_params
|
|||
unsigned char alt_out_ctr[8]; /*!< Alternative record epoch/counter
|
||||
for resending messages */
|
||||
|
||||
uint8_t seen_ccs; /*!< Indicates if a CCS message has
|
||||
struct
|
||||
{
|
||||
uint8_t seen_ccs; /*!< Indicates if a CCS message has
|
||||
* been seen in the current flight. */
|
||||
|
||||
} buffering;
|
||||
#endif /* MBEDTLS_SSL_PROTO_DTLS */
|
||||
|
||||
/*
|
||||
|
|
|
@ -3070,7 +3070,7 @@ void mbedtls_ssl_recv_flight_completed( mbedtls_ssl_context *ssl )
|
|||
ssl->handshake->in_flight_start_seq = ssl->handshake->in_msg_seq;
|
||||
|
||||
/* We don't want to remember CCS's across flight boundaries. */
|
||||
ssl->handshake->seen_ccs = 0;
|
||||
ssl->handshake->buffering.seen_ccs = 0;
|
||||
|
||||
/* Cancel timer */
|
||||
ssl_set_timer( ssl, 0 );
|
||||
|
@ -4436,11 +4436,11 @@ static int ssl_load_buffered_message( mbedtls_ssl_context *ssl )
|
|||
{
|
||||
/* Check if we have seen a ChangeCipherSpec before.
|
||||
* If yes, synthesize a CCS record. */
|
||||
if( ! hs->seen_ccs )
|
||||
if( ! hs->buffering.seen_ccs )
|
||||
{
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "CCS not seen in the current flight" ) );
|
||||
ret = -1;
|
||||
goto exit;
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "Inject buffered CCS message" ) );
|
||||
|
@ -4452,7 +4452,7 @@ static int ssl_load_buffered_message( mbedtls_ssl_context *ssl )
|
|||
ssl->in_left = 0;
|
||||
ssl->next_record_offset = 0;
|
||||
|
||||
hs->seen_ccs = 0;
|
||||
hs->buffering.seen_ccs = 0;
|
||||
goto exit;
|
||||
}
|
||||
ret = -1;
|
||||
|
@ -4477,7 +4477,7 @@ static int ssl_buffer_message( mbedtls_ssl_context *ssl )
|
|||
{
|
||||
case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC:
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "Remember CCS message" ) );
|
||||
hs->seen_ccs = 1;
|
||||
hs->buffering.seen_ccs = 1;
|
||||
break;
|
||||
|
||||
case MBEDTLS_SSL_MSG_HANDSHAKE:
|
||||
|
|
Loading…
Reference in a new issue