mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-26 22:01:07 +00:00
Compute record expansion in steps to ease readability
This commit is contained in:
parent
448146407f
commit
3136ede0e8
|
@ -6839,7 +6839,7 @@ const char *mbedtls_ssl_get_version( const mbedtls_ssl_context *ssl )
|
||||||
|
|
||||||
int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl )
|
int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl )
|
||||||
{
|
{
|
||||||
size_t transform_expansion;
|
size_t transform_expansion = 0;
|
||||||
const mbedtls_ssl_transform *transform = ssl->transform_out;
|
const mbedtls_ssl_transform *transform = ssl->transform_out;
|
||||||
unsigned block_size;
|
unsigned block_size;
|
||||||
|
|
||||||
|
@ -6865,23 +6865,21 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl )
|
||||||
block_size = mbedtls_cipher_get_block_size(
|
block_size = mbedtls_cipher_get_block_size(
|
||||||
&transform->cipher_ctx_enc );
|
&transform->cipher_ctx_enc );
|
||||||
|
|
||||||
|
/* Expansion due to the addition of the MAC. */
|
||||||
|
transform_expansion += transform->maclen;
|
||||||
|
|
||||||
|
/* Expansion due to the addition of CBC padding;
|
||||||
|
* Theoretically up to 256 bytes, but we never use
|
||||||
|
* more than the block size of the underlying cipher. */
|
||||||
|
transform_expansion += block_size;
|
||||||
|
|
||||||
|
/* For TLS 1.1 or higher, an explicit IV is added
|
||||||
|
* after the record header. */
|
||||||
#if defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)
|
#if defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)
|
||||||
if( ssl->minor_ver >= MBEDTLS_SSL_MINOR_VERSION_2 )
|
if( ssl->minor_ver >= MBEDTLS_SSL_MINOR_VERSION_2 )
|
||||||
{
|
transform_expansion += block_size;
|
||||||
/* Expansion due to addition of
|
|
||||||
* - MAC
|
|
||||||
* - CBC padding (theoretically up to 256 bytes, but
|
|
||||||
* we never use more than block_size)
|
|
||||||
* - explicit IV
|
|
||||||
*/
|
|
||||||
transform_expansion = transform->maclen + 2 * block_size;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif /* MBEDTLS_SSL_PROTO_TLS1_1 || MBEDTLS_SSL_PROTO_TLS1_2 */
|
#endif /* MBEDTLS_SSL_PROTO_TLS1_1 || MBEDTLS_SSL_PROTO_TLS1_2 */
|
||||||
{
|
|
||||||
/* No explicit IV prior to TLS 1.1. */
|
|
||||||
transform_expansion = transform->maclen + block_size;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue