Branch: refs/heads/master Home: https://github.com/openssl/openssl Commit: a566864b607317fc95cbe190bbf0b8b928fcfa77 https://github.com/openssl/openssl/commit/a566864b607317fc95cbe190bbf0b8b928fcfa77 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022)
Changed paths: M ssl/record/methods/dtls_meth.c M ssl/record/methods/ktls_meth.c M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_d1.c M ssl/record/rec_layer_s3.c M ssl/record/record.h M ssl/record/recordmethod.h M ssl/s3_msg.c Log Message: ----------- Move initial TLS write record layer code into new structure The new write record layer architecture splits record writing into a "write_records" call and a "retry_write_records" call - where multiple records can be sent to "write_records" in one go. We restructure the code into that format in order that future commits can move these functions into the new record layer more easily. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 2b71b042202d11854801682d48ccf4e4e34cd5cf https://github.com/openssl/openssl/commit/2b71b042202d11854801682d48ccf4e4e34cd5cf Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/dtls_meth.c M ssl/record/methods/ktls_meth.c M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/record.h M ssl/record/recordmethod.h M ssl/s3_enc.c M ssl/s3_msg.c M ssl/ssl_lib.c M ssl/t1_enc.c M ssl/tls13_enc.c Log Message: ----------- Create the write record layer method and object and use it Make sure we set the write record layer method and create the object where appropriate. Move the newly restructured writing code into the record layer object. For now we are cheating and still accessing the underlying SSL_CONNECTION object. This will be removed in subsequent commits. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 3eaead7166ef5aff027e571a9be0def6581ef20c https://github.com/openssl/openssl/commit/3eaead7166ef5aff027e571a9be0def6581ef20c Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c Log Message: ----------- Move checking for alerts to dispatch out of the record layer This isn't a record layer responsibility so should be removed from write_records. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 310590139e45116d86627dcc85e83f2e3fcbb6b4 https://github.com/openssl/openssl/commit/310590139e45116d86627dcc85e83f2e3fcbb6b4 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c Log Message: ----------- Use the record layer msg_callback not the SSL object msg_callback This removes unnecessary usage of the SSL object from the record layer. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: b5cf81f7c9775d2502730ba126893ce8af4db90e https://github.com/openssl/openssl/commit/b5cf81f7c9775d2502730ba126893ce8af4db90e Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/ktls_meth.c M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/s3_msg.c M ssl/ssl_lib.c Log Message: ----------- Replace references to s->wbio with rl->bio We use the record layer reference to the BIO rather than the SSL object reference. This removes an unneeded SSL object usage. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 151f313e53c1515f2730b3b36e3fc966e1a8010b https://github.com/openssl/openssl/commit/151f313e53c1515f2730b3b36e3fc966e1a8010b Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/ssl3_buffer.c M ssl/t1_enc.c M ssl/tls13_enc.c Log Message: ----------- Move write buffer management into the write record layer Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: e7694c69b5fed37f5cdf72b70f507c7188db7e3d https://github.com/openssl/openssl/commit/e7694c69b5fed37f5cdf72b70f507c7188db7e3d Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_d1.c M ssl/record/record.h Log Message: ----------- Move numwpipes in the write record layer We retain a numwpipes for now in the old record layer structure for use by DTLS. This will eventually be removed when DTLS moves over to the new way of doing things. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 1d3676778c280ef05044c4c9e696a4f8096530ea https://github.com/openssl/openssl/commit/1d3676778c280ef05044c4c9e696a4f8096530ea Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/record.h M ssl/record/recordmethod.h M ssl/s3_msg.c M ssl/statem/extensions_clnt.c M ssl/statem/statem_clnt.c M ssl/statem/statem_lib.c Log Message: ----------- Move logic for figuring out the record version out of record layer This calculation is based on lots of information from state machine and elsewhere that the record layer cannot access. In reality it is sufficient to simply tell the record layer what version to use. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 91141aa1b0ff9d92323e2545bb9f6f0d1e2a8844 https://github.com/openssl/openssl/commit/91141aa1b0ff9d92323e2545bb9f6f0d1e2a8844 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c M ssl/ssl_local.h Log Message: ----------- Remove empty_fragment_done Now that we are no longer recursively addinng the prefix record this doesn't seem necessary any more. We always add it every time we do tls_write_records. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: b9e4e78342df6575b358def3d951227e9c6cebda https://github.com/openssl/openssl/commit/b9e4e78342df6575b358def3d951227e9c6cebda Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/s3_enc.c M ssl/ssl_local.h M ssl/t1_enc.c Log Message: ----------- Move need_empty_fragments inside the record layer This flag can now be managed entirely by the new record layer code so we move it into ossl_record_layer_st. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: f2892e21619a2c59e957f7f9121f24713bcad3e9 https://github.com/openssl/openssl/commit/f2892e21619a2c59e957f7f9121f24713bcad3e9 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c Log Message: ----------- Remove use of SSL_CONNECTION_TREAT_AS_TLS13() from the record layer In all cases we should be able to replace this with a simple check against rl->version. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 5f95eb77e780cc0b90a7da6cc4f79c7bb153ca64 https://github.com/openssl/openssl/commit/5f95eb77e780cc0b90a7da6cc4f79c7bb153ca64 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/record.h Log Message: ----------- Move the record padding callback fully into the record layer We wrap the callback and pass it to the record layer via the dispatch array, in order to avoid accessing it directly via SSL_CONNECTION. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: eb7d6c2a9b3b9d1582e3e1b65c9d431cf3209207 https://github.com/openssl/openssl/commit/eb7d6c2a9b3b9d1582e3e1b65c9d431cf3209207 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M include/openssl/core_names.h M ssl/record/methods/ktls_meth.c M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/record.h M ssl/ssl_lib.c M ssl/ssl_local.h M ssl/tls13_enc.c Log Message: ----------- Move the record block_padding capability fully into the record layer Previously we were referencing the block_padding value through the SSL_CONNECTION. Now it is held within OSSL_RECORD_LAYER. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 5361a5a9664046aefcd1a72858826bcb4c93ad9f https://github.com/openssl/openssl/commit/5361a5a9664046aefcd1a72858826bcb4c93ad9f Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c Log Message: ----------- Remove some miscellaneous references to SSL_CONNECTION There were a small number of references to the SSL_CONNECTION that can be removed easily and replaced with record layer equivalents. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 320145d5b3a11492427fe1cab9ca4de52402c72d https://github.com/openssl/openssl/commit/320145d5b3a11492427fe1cab9ca4de52402c72d Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c M ssl/record/rec_layer_d1.c M ssl/record/rec_layer_s3.c M ssl/record/record.h M ssl/s3_msg.c Log Message: ----------- Convert the write record layer to supply proper return values This also means we can convert SSLfatal calls to RLAYERfatal Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 02719d5c4c1e64350b4dddb17e703864809e130a https://github.com/openssl/openssl/commit/02719d5c4c1e64350b4dddb17e703864809e130a Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/recordmethod.h Log Message: ----------- Make sure we call get_max_records() in the record layer code We use the returned data to decide how to split the data we want to write into records. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 23bf52a4b40deb033de0a257b724012afe32b169 https://github.com/openssl/openssl/commit/23bf52a4b40deb033de0a257b724012afe32b169 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/recmethod_local.h M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c M ssl/record/recordmethod.h Log Message: ----------- Re-enable the multiblock code and move it into the record layer Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: c6d5f343336532a7aba4368099b0631a457194a6 https://github.com/openssl/openssl/commit/c6d5f343336532a7aba4368099b0631a457194a6 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/rec_layer_s3.c Log Message: ----------- Resove some outstanding TODOs Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: c6186792b98e93cf2d5d2a9fb85e4aeab31db890 https://github.com/openssl/openssl/commit/c6186792b98e93cf2d5d2a9fb85e4aeab31db890 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c M ssl/record/rec_layer_s3.c Log Message: ----------- Move the pipelining code into the record layer Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 85b358b01a36757d07da118795a0ad13c9c2b4d7 https://github.com/openssl/openssl/commit/85b358b01a36757d07da118795a0ad13c9c2b4d7 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c Log Message: ----------- Ensure that prefix records use a small buffer Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 4fed6ee1ce4a3374d7223654db13132144275c05 https://github.com/openssl/openssl/commit/4fed6ee1ce4a3374d7223654db13132144275c05 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/tls_common.c Log Message: ----------- Remove some outstanding TODOs Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: bafe524b5ce425105ac321f9fffa23e2d5b06845 https://github.com/openssl/openssl/commit/bafe524b5ce425105ac321f9fffa23e2d5b06845 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/record/methods/build.info M ssl/record/methods/ktls_meth.c M ssl/record/methods/recmethod_local.h M ssl/record/methods/ssl3_meth.c M ssl/record/methods/tls13_meth.c M ssl/record/methods/tls1_meth.c M ssl/record/methods/tls_common.c A ssl/record/methods/tls_multib.c M ssl/record/methods/tlsany_meth.c Log Message: ----------- Restructure the write code Move the multiblock code into a separate file and introduce the usage of record_functions_st for some write functions. Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Commit: 9ff519542387d32ab1c3a8b1f45a375e1712a383 https://github.com/openssl/openssl/commit/9ff519542387d32ab1c3a8b1f45a375e1712a383 Author: Matt Caswell <m...@openssl.org> Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M ssl/ssl_lib.c Log Message: ----------- Fix a record layer mem leak Make sure we free the record layer before we free the connection BIOs Reviewed-by: Hugo Landau <hlan...@openssl.org> Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19198) Compare: https://github.com/openssl/openssl/compare/c5d061290baa...9ff519542387