Use plain memset() for public data in ssl_tls.c
- out_ctr is public because it's transmited over the wire in DTLS (and in TLS it can be inferred by a passive network attacker just by counting records). - handshake mask is not a secret because it can be inferred by a passive network attacker just logging record sequence number seen so far.
This commit is contained in:
parent
ee0c35fbf5
commit
895454da01
1 changed files with 3 additions and 3 deletions
|
@ -4712,7 +4712,7 @@ static void ssl_bitmask_set( unsigned char *mask, size_t offset, size_t len )
|
||||||
mask[last_byte_idx] |= 1 << ( 8 - end_bits );
|
mask[last_byte_idx] |= 1 << ( 8 - end_bits );
|
||||||
}
|
}
|
||||||
|
|
||||||
mbedtls_platform_memset( mask + offset / 8, 0xFF, len / 8 );
|
memset( mask + offset / 8, 0xFF, len / 8 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -7799,7 +7799,7 @@ int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl )
|
||||||
memcpy( ssl->handshake->alt_out_ctr, ssl->cur_out_ctr, 8 );
|
memcpy( ssl->handshake->alt_out_ctr, ssl->cur_out_ctr, 8 );
|
||||||
|
|
||||||
/* Set sequence_number to zero */
|
/* Set sequence_number to zero */
|
||||||
mbedtls_platform_memset( ssl->cur_out_ctr + 2, 0, 6 );
|
memset( ssl->cur_out_ctr + 2, 0, 6 );
|
||||||
|
|
||||||
/* Increment epoch */
|
/* Increment epoch */
|
||||||
for( i = 2; i > 0; i-- )
|
for( i = 2; i > 0; i-- )
|
||||||
|
@ -8379,7 +8379,7 @@ static int ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial )
|
||||||
ssl->split_done = 0;
|
ssl->split_done = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mbedtls_platform_memset( ssl->cur_out_ctr, 0, sizeof( ssl->cur_out_ctr ) );
|
memset( ssl->cur_out_ctr, 0, sizeof( ssl->cur_out_ctr ) );
|
||||||
|
|
||||||
ssl->transform_in = NULL;
|
ssl->transform_in = NULL;
|
||||||
ssl->transform_out = NULL;
|
ssl->transform_out = NULL;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue