Fix the ceiling on how much encryption growth we can have
authorMatt Caswell <matt@openssl.org>
Thu, 27 Oct 2022 13:14:53 +0000 (14:14 +0100)
committerMatt Caswell <matt@openssl.org>
Mon, 5 Dec 2022 11:10:55 +0000 (11:10 +0000)
commit31efcf2c872f8f4d09ad5209ccbf1ada73436775
tree4bde433371b4781aeaedbbb8e01255b53e704055
parentf868abcc5dbcbed6ca2e33bdb9bf06c817a4cce3
Fix the ceiling on how much encryption growth we can have

Stitched ciphersuites can grow by more during encryption than the code
allowed for. We fix the calculation and add an assert to check we go it
right.

Also if we are adding the MAC independently of the cipher algorithm then
the encryption growth will not include that MAC so we should remove it
from the amount of bytes that we reserve for that growth. Otherwise we
might exceed our buffer size and the WPACKET_reserve operation will
fail.

Note that this is not a security issue. Even though we can overflow the
amount of bytes reserved in the WPACKET for the encryption, the underlying
buffer is still big enough.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/19585)
ssl/record/rec_layer_s3.c