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

Openssl 3.0.14+quic #162

Merged
merged 66 commits into from
Aug 12, 2024
Merged

Commits on Jun 7, 2024

  1. QUIC: Add support for BoringSSL QUIC APIs

    This adds a compatible API for BoringSSL's QUIC support, based
    on the current |draft-ietf-quic-tls|.
    
    Based on BoringSSL commit 3c034b2cf386b3131f75520705491871a2e0cafe
    Based on BoringSSL commit c8e0f90f83b9ec38ea833deb86b5a41360b62b6a
    Based on BoringSSL commit 3cbb0299a28a8bd0136257251a78b91a96c5eec8
    Based on BoringSSL commit cc9d935256539af2d3b7f831abf57c0d685ffd81
    Based on BoringSSL commit e6eef1ca16a022e476bbaedffef044597cfc8f4b
    Based on BoringSSL commit 6f733791148cf8a076bf0e95498235aadbe5926d
    Based on BoringSSL commit 384d0eaf1930af1ebc47eda751f0c78dfcba1c03
    Based on BoringSSL commit a0373182eb5cc7b81d49f434596b473c7801c942
    Based on BoringSSL commit b1b76aee3cb43ce11889403c5334283d951ebd37
    xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    653cc6b View commit details
    Browse the repository at this point in the history
  2. QUIC: New method to get QUIC secret length

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    aaf9bcf View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    895ac05 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1e3392f View commit details
    Browse the repository at this point in the history
  5. QUIC: Use proper secrets for handshake

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    c34a8e9 View commit details
    Browse the repository at this point in the history
  6. QUIC: Handle partial handshake messages

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    2746aba View commit details
    Browse the repository at this point in the history
  7. QUIC: Fix duplicate word in docs

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    6349ebe View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b88087b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    47d9285 View commit details
    Browse the repository at this point in the history
  10. QUIC: Don't process an incomplete message

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    6d4c05a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    effaa08 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    9650ef9 View commit details
    Browse the repository at this point in the history
  13. QUIC: Add OPENSSL_NO_QUIC wrapper

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    a8800e1 View commit details
    Browse the repository at this point in the history
  14. QUIC: Correctly disable middlebox compat

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    41a927a View commit details
    Browse the repository at this point in the history
  15. QUIC: Move QUIC code out of tls13_change_cipher_state()

    Create quic_change_cipher_state() that does the minimal required
    to generate the QUIC secrets. (e.g. encryption contexts are not
    initialized).
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    6776ad6 View commit details
    Browse the repository at this point in the history
  16. QUIC: Tweeks to quic_change_cipher_state()

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    d731518 View commit details
    Browse the repository at this point in the history
  17. QUIC: Add support for more secrets

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    c355a69 View commit details
    Browse the repository at this point in the history
  18. QUIC: Fix resumption secret

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    0010498 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    f59003d View commit details
    Browse the repository at this point in the history
  20. QUIC: Fall-through for 0RTT

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    33a60a7 View commit details
    Browse the repository at this point in the history
  21. QUIC: Some cleanup for the main QUIC changes

    Try to reduce unneeded whitespace changes and wrap new code to 80 columns.
    Reword documentation to attempt to improve clarity.
    Add some more sanity checks and clarifying comments to the code.
    Update referenced I-D versions.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    a0336f8 View commit details
    Browse the repository at this point in the history
  22. QUIC: Prevent KeyUpdate for QUIC

    QUIC does not use the TLS KeyUpdate message/mechanism, and indeed
    it is an error to generate or receive such a message.  Add the
    necessary checks (noting that the check for receipt should be
    redundant since SSL_provide_quic_data() is the only way to provide
    input to the TLS layer for a QUIC connection).
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    06b8017 View commit details
    Browse the repository at this point in the history
  23. QUIC: Test KeyUpdate rejection

    For now, just test that we don't generate any, since we don't really
    expose the mechanics for encrypting one and the QUIC API is not
    integrated into the TLSProxy setup.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    70f2d3f View commit details
    Browse the repository at this point in the history
  24. QUIC: Buffer all provided quic data

    Make all data supplied via SSL_provide_quic_data() pass through an
    internal buffer, so that we can handle data supplied with arbitrary
    framing and only parse complete TLS records onto the list of QUIC_DATA
    managed by quic_input_data_head/quic_input_data_tail.
    
    This lets us remove the concept of "incomplete" QUIC_DATA structures,
    and the 'offset' field needed to support them.
    
    However, we've already moved the provided data onto the buffer by
    the time we can check for KeyUpdate messages, so defer that check
    to quic_get_message() (where it is adjacent to the preexisting
    ChangeCipherSpec check).
    
    To avoid extra memory copies, we also make the QUIC_DATA structures
    just store offsets into the consolidated buffer instead of having copies
    of the TLS handshake messages themselves.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    679c81f View commit details
    Browse the repository at this point in the history
  25. QUIC: Enforce consistent encryption level for handshake messages

    The QUIC-TLS spec requires that TLS handshake messages do not cross
    encryption level boundaries, but we were not previously enforcing this.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    196b5a0 View commit details
    Browse the repository at this point in the history
  26. QUIC: add v1 quic_transport_parameters

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    67c3693 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    064116d View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    5f6185d View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    a2ad37f View commit details
    Browse the repository at this point in the history
  30. QUIC: Update shared library version

    Prefix the shared library version with 17 (for 'Q'), to allow this
    version to be used alongside a standard OpenSSL distribution
    
    Add +quic to the version (i.e. build metadata)
    xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    1cafd73 View commit details
    Browse the repository at this point in the history
  31. QUIC: Swap around README files

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    277c236 View commit details
    Browse the repository at this point in the history
  32. QUIC: Fix 3.0.0 GitHub CI

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    8dfb49e View commit details
    Browse the repository at this point in the history
  33. QUIC: SSLerr() -> ERR_raise(ERR_LIB_SSL)

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    dbbb795 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    9f95488 View commit details
    Browse the repository at this point in the history
  35. QUIC: Add early data support (quictls#11)

    * QUIC: Add early data support
    
    This commit adds SSL_set_quic_early_data_enabled to add early data
    support to QUIC.
    tatsuhiro-t authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    caaee51 View commit details
    Browse the repository at this point in the history
  36. QUIC: Make SSL_provide_quic_data accept 0 length data (quictls#13)

    This commit makes SSL_provide_quic_data accept 0 length data, which
    matches BoringSSL behavior.
    
    Fixes quictls#9
    tatsuhiro-t authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    20fb4c9 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    10fc1c9 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    60ffc76 View commit details
    Browse the repository at this point in the history
  39. QUIC: Fix typo in README.md (quictls#19)

    Can be squashed with `QUIC: Swap around README files`
    NanXiao authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    f9077be View commit details
    Browse the repository at this point in the history
  40. QUIC: Fix CI (quictls#20)

    Fixes quictls#2 and quictls#3 and quictls#22 
    
    Updates `Configure` script to disable QUIC with `no-bulk` and `no-ec`
    Updates build.info doc docs
    Fixes an issue with extension defintions and `no-quic`
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    883672a View commit details
    Browse the repository at this point in the history
  41. QUIC: Break up header/body processing

    As DTLS has changed, so too must QUIC.
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    a21b974 View commit details
    Browse the repository at this point in the history
  42. QUIC: Fix make doc-nits

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    43ab6dd View commit details
    Browse the repository at this point in the history
  43. QUIC: Fix make md-nits

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    68ac48e View commit details
    Browse the repository at this point in the history
  44. QUIC: Check for FIPS checksum changes

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    81362c8 View commit details
    Browse the repository at this point in the history
  45. QUIC: Don't muck with FIPS checksums

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    00d591f View commit details
    Browse the repository at this point in the history
  46. QUIC: README.md fixups

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    8e14a14 View commit details
    Browse the repository at this point in the history
  47. QUIC: Update RFC references

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    3232482 View commit details
    Browse the repository at this point in the history
  48. QUIC: revert white-space change

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    388022f View commit details
    Browse the repository at this point in the history
  49. QUIC: update copyrights

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    458e8b1 View commit details
    Browse the repository at this point in the history
  50. QUIC: update SSL_provide_quic_data() documentation

    We now let you call this function outside of the handshake, to provide
    post-handshake QUIC data.
    
    We also no longer have the limitation that the application must provide
    the TLS handshake message header in a single call.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    63ffad4 View commit details
    Browse the repository at this point in the history
  51. QUIC: expound on what DoS attacks QUIC avoids

    The limit on the amount of queued data is to avoid being an amplification
    vector, specifically.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    0c29e2a View commit details
    Browse the repository at this point in the history
  52. QUIC: remove SSL_get_current_cipher() reference

    The QUIC APIs have no need to interact with TLS ciphers, since
    QUIC records use different cryptographic protections than TLS ciphers.
    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    848998c View commit details
    Browse the repository at this point in the history
  53. QUIC: use SSL_IS_QUIC() in more places

    kaduk authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    eb67c25 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    cfb559d View commit details
    Browse the repository at this point in the history
  55. QUIC: Update SSL_clear() to clear quic data

    Fixes quictls#55
    Had to fixup tests because SSL_accept() eventually calls SSL_clear() and
    it was removing the inital ClientHello sent via SSL_provide_quic_data()
    from the server SSL.
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    a497878 View commit details
    Browse the repository at this point in the history
  56. QUIC: Better SSL_clear()

    Undo SSL_clear() changes in test
    Break apart SSL_clear() into SSL_clear_quic() and SSL_clear_not_quic()
    In SSL_clear(), call both functions
    In SSL_accept(), call SSL_clear_not_quic()
    Don't make the new functions public.
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    4c83e31 View commit details
    Browse the repository at this point in the history
  57. QUIC: Update README

    Add link to OMCs plans.
    OpenSSL 3.0 is released, update tense.
    Fix some typos.
    Make relative URLs absolute.
    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    399cb75 View commit details
    Browse the repository at this point in the history
  58. QUIC: Update README.md for 3.0.7

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    13f2fc2 View commit details
    Browse the repository at this point in the history
  59. QUIC: Fix extension test

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    98ac246 View commit details
    Browse the repository at this point in the history
  60. QUIC: Update README.md for 3.0.8

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    bd2cb10 View commit details
    Browse the repository at this point in the history
  61. QUIC: Update README.md for OpenSSL 3.0.9

    wbl authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    13a1cf4 View commit details
    Browse the repository at this point in the history
  62. QUIC: Update README.md for 3.0.10

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    0547d65 View commit details
    Browse the repository at this point in the history
  63. QUIC: Fix md-nits

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    7776b48 View commit details
    Browse the repository at this point in the history
  64. QUIC: Cleanup quic tests

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    f839024 View commit details
    Browse the repository at this point in the history
  65. QUIC: Update MD files for 3.0.13

    tmshort authored and xl32 committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    908962a View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. QUIC: Fix md-nits

    xl32 committed Jun 10, 2024
    Configuration menu
    Copy the full SHA
    d889da8 View commit details
    Browse the repository at this point in the history