Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix pipelining in 3.1/3.0 #20208

Closed

Commits on Feb 3, 2023

  1. Add a test for TLS pipelining

    TLS pipelining provides the ability for libssl to read or write multiple
    records in parallel. It requires special ciphers to do this, and there are
    currently no built-in ciphers that provide this capability. However, the
    dasync engine does have such a cipher, so we add a test for this capability
    using that engine.
    mattcaswell committed Feb 3, 2023
    Copy the full SHA
    24fe8fb View commit details
    Browse the repository at this point in the history
  2. Pipeline output/input buf arrays must live until the EVP_Cipher is ca…

    …lled
    
    The pipeline input/output buf arrays must remain accessible to the
    EVP_CIPHER_CTX until EVP_Cipher is subsequently called. This fixes an
    asan error discovered by the newly added pipeline test.
    mattcaswell committed Feb 3, 2023
    Copy the full SHA
    4eee131 View commit details
    Browse the repository at this point in the history
  3. Fix read pipelining

    During read pipelining we must ensure that the buffer is sufficiently large
    to read enough data to fill our pipelines. We also remove some code that
    moved data to the start of the packet if we can. This was unnecessary
    because of later code which would end up moving it anyway. The earlier move
    was also incorrect in the case that |clearold| was 0. This would cause the
    read pipelining code to fail with sufficiently large records.
    
    Fixes openssl#20197
    mattcaswell committed Feb 3, 2023
    Copy the full SHA
    cef6288 View commit details
    Browse the repository at this point in the history
  4. Update the pipelining docs

    Document the effect on the internal read buffer when using pipelining.
    mattcaswell committed Feb 3, 2023
    Copy the full SHA
    d54b3d9 View commit details
    Browse the repository at this point in the history
  5. Do not have more data in a pipeline than the split_send_fragment

    We shouldn't be putting more data into a pipeline than the value of
    split_send_fragment.
    
    This is a backport of a fix which was included in a much larger commit in
    master (c618679) related to moving the pipelining code into the new
    record layer that exists there.
    mattcaswell committed Feb 3, 2023
    Copy the full SHA
    c9ac696 View commit details
    Browse the repository at this point in the history