mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 23:35:43 +01:00
Make sure 'record from another epoch' is displayed for next epoch
The test 'DTLS proxy: delay ChangeCipherSpec' from ssl-opt.sh relies on this.
This commit is contained in:
parent
5579c5399b
commit
c1c173cadf
@ -4978,21 +4978,23 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl,
|
||||
return( MBEDTLS_ERR_SSL_INVALID_RECORD );
|
||||
}
|
||||
|
||||
/* Records from the next epoch are considered for buffering
|
||||
* (concretely: early Finished messages). */
|
||||
if( rec_epoch == (unsigned) ssl->in_epoch + 1 )
|
||||
{
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "Consider record for buffering" ) );
|
||||
return( MBEDTLS_ERR_SSL_EARLY_MESSAGE );
|
||||
}
|
||||
/* Records from other, non-matching epochs are silently discarded.
|
||||
* (The case of same-port Client reconnects must be considered in
|
||||
* the caller). */
|
||||
else if( rec_epoch != ssl->in_epoch )
|
||||
if( rec_epoch != ssl->in_epoch )
|
||||
{
|
||||
MBEDTLS_SSL_DEBUG_MSG( 1, ( "record from another epoch: "
|
||||
"expected %d, received %d",
|
||||
ssl->in_epoch, rec_epoch ) );
|
||||
|
||||
/* Records from the next epoch are considered for buffering
|
||||
* (concretely: early Finished messages). */
|
||||
if( rec_epoch == (unsigned) ssl->in_epoch + 1 )
|
||||
{
|
||||
MBEDTLS_SSL_DEBUG_MSG( 2, ( "Consider record for buffering" ) );
|
||||
return( MBEDTLS_ERR_SSL_EARLY_MESSAGE );
|
||||
}
|
||||
|
||||
return( MBEDTLS_ERR_SSL_UNEXPECTED_RECORD );
|
||||
}
|
||||
#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
|
||||
|
Loading…
Reference in New Issue
Block a user