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.
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index c2daeb3..5e57342 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3070,7 +3070,7 @@
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 @@
{
/* 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 @@
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 @@
{
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: