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.15+quic #171

Merged
merged 67 commits into from
Sep 12, 2024
Merged

Commits on Sep 4, 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 authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    2af27c0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7d2f15b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ac5c184 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ef0b5b4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    22dc5ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e72b5a3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    78660a2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fa402ff View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    13c25c1 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a79c239 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d7cc415 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    a934412 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    c30bad0 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    a2c1436 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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    b59eded View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    13d3b7d View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    47e3daa View commit details
    Browse the repository at this point in the history
  18. QUIC: Fix resumption secret

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    6664ef8 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    ffd63d9 View commit details
    Browse the repository at this point in the history
  20. QUIC: Fall-through for 0RTT

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    dbdba85 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    f7b2e9a 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    c3ff5bb 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    e977ac3 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    3e992ce 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    997505a View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    5e14e95 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    fe7c167 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    68c0536 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    de9f388 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 authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    0cbcf7f View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    6ca4798 View commit details
    Browse the repository at this point in the history
  32. QUIC: Fix 3.0.0 GitHub CI

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    63011ea View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    9de82cf View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    ab26f97 View commit details
    Browse the repository at this point in the history
  35. QUIC: Add early data support (openssl#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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    468e54b View commit details
    Browse the repository at this point in the history
  36. QUIC: Make SSL_provide_quic_data accept 0 length data (openssl#13)

    This commit makes SSL_provide_quic_data accept 0 length data, which
    matches BoringSSL behavior.
    
    Fixes openssl#9
    tatsuhiro-t authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    40c82b1 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    07803ed View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    5d9edd6 View commit details
    Browse the repository at this point in the history
  39. QUIC: Fix typo in README.md (openssl#19)

    Can be squashed with `QUIC: Swap around README files`
    NanXiao authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    5b29aaa View commit details
    Browse the repository at this point in the history
  40. QUIC: Fix CI (openssl#20)

    Fixes openssl#2 and openssl#3 and openssl#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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    92319a4 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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    7d97945 View commit details
    Browse the repository at this point in the history
  42. QUIC: Fix make doc-nits

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    bf5bf43 View commit details
    Browse the repository at this point in the history
  43. QUIC: Fix make md-nits

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    de05c52 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    263c2e2 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    546959f View commit details
    Browse the repository at this point in the history
  46. QUIC: README.md fixups

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    6ac2b94 View commit details
    Browse the repository at this point in the history
  47. QUIC: Update RFC references

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    3234ba5 View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    f691d38 View commit details
    Browse the repository at this point in the history
  49. QUIC: update copyrights

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    eca4f12 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    c649270 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    0bd0404 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    5b73481 View commit details
    Browse the repository at this point in the history
  53. QUIC: use SSL_IS_QUIC() in more places

    kaduk authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    413b8be View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    971bbdb View commit details
    Browse the repository at this point in the history
  55. QUIC: Update SSL_clear() to clear quic data

    Fixes openssl#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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    265d25e 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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    4a134d7 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 committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    6d93aff View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    9c84073 View commit details
    Browse the repository at this point in the history
  59. QUIC: Fix extension test

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    9fb9376 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    745ca1d 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 tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    189ee35 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    62d3750 View commit details
    Browse the repository at this point in the history
  63. QUIC: Fix md-nits

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    a3b565e View commit details
    Browse the repository at this point in the history
  64. QUIC: Cleanup quic tests

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    0936b26 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    0952804 View commit details
    Browse the repository at this point in the history
  66. QUIC: Fix md-nits

    xl32 authored and tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    e37f050 View commit details
    Browse the repository at this point in the history
  67. Update md files for 3.0.15

    tmshort committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    910d4b7 View commit details
    Browse the repository at this point in the history