1. 18 6月, 2019 3 次提交
  2. 03 6月, 2019 1 次提交
    • M
      Defer sending a KeyUpdate until after pending writes are complete · 6c2f347c
      Matt Caswell 提交于
      If we receive a KeyUpdate message (update requested) from the peer while
      we are in the middle of a write, we should defer sending the responding
      KeyUpdate message until after the current write is complete. We do this
      by waiting to send the KeyUpdate until the next time we write and there is
      no pending write data.
      
      This does imply a subtle change in behaviour. Firstly the responding
      KeyUpdate message won't be sent straight away as it is now. Secondly if
      the peer sends multiple KeyUpdates without us doing any writing then we
      will only send one response, as opposed to previously where we sent a
      response for each KeyUpdate received.
      
      Fixes #8677
      Reviewed-by: NBen Kaduk <kaduk@mit.edu>
      (Merged from https://github.com/openssl/openssl/pull/8773)
      
      (cherry picked from commit feb9e31c40c49de6384dd0413685e9b5a15adc99)
      6c2f347c
  3. 28 5月, 2019 1 次提交
  4. 28 3月, 2019 1 次提交
  5. 05 3月, 2019 1 次提交
  6. 26 2月, 2019 1 次提交
  7. 23 2月, 2019 1 次提交
  8. 15 2月, 2019 1 次提交
    • M
      Don't signal SSL_CB_HANDSHAKE_START for TLSv1.3 post-handshake messages · 37857e9b
      Matt Caswell 提交于
      The original 1.1.1 design was to use SSL_CB_HANDSHAKE_START and
      SSL_CB_HANDSHAKE_DONE to signal start/end of a post-handshake message
      exchange in TLSv1.3. Unfortunately experience has shown that this confuses
      some applications who mistake it for a TLSv1.2 renegotiation. This means
      that KeyUpdate messages are not handled properly.
      
      This commit removes the use of SSL_CB_HANDSHAKE_START and
      SSL_CB_HANDSHAKE_DONE to signal the start/end of a post-handshake
      message exchange. Individual post-handshake messages are still signalled in
      the normal way.
      
      This is a potentially breaking change if there are any applications already
      written that expect to see these TLSv1.3 events. However, without it,
      KeyUpdate is not currently usable for many applications.
      
      Fixes #8069
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/8096)
      
      (cherry picked from commit 4af5836b55442f31795eff6c8c81ea7a1b8cf94b)
      37857e9b
  9. 01 2月, 2019 1 次提交
  10. 24 1月, 2019 1 次提交
  11. 09 1月, 2019 1 次提交
    • M
      Don't artificially limit the size of the ClientHello · bbcfd60e
      Matt Caswell 提交于
      We were setting a limit of SSL3_RT_MAX_PLAIN_LENGTH on the size of the
      ClientHello. AFAIK there is nothing in the standards that requires this
      limit.
      
      The limit goes all the way back to when support for extensions was first
      added for TLSv1.0. It got converted into a WPACKET max size in 1.1.1. Most
      likely it was originally added to avoid the complexity of having to grow
      the init_buf in the middle of adding extensions. With WPACKET this is
      irrelevant since it will grow automatically.
      
      This issue came up when an attempt was made to send a very large
      certificate_authorities extension in the ClientHello.
      
      We should just remove the limit.
      Reviewed-by: NPaul Dale <paul.dale@oracle.com>
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/7424)
      
      (cherry picked from commit 7835e97b6ff5cd94a10c5aeac439f4aa145a77b2)
      bbcfd60e
  12. 07 1月, 2019 1 次提交
  13. 06 1月, 2019 1 次提交
  14. 05 12月, 2018 1 次提交
  15. 27 11月, 2018 1 次提交
  16. 14 11月, 2018 1 次提交
  17. 12 11月, 2018 2 次提交
    • M
      Separate ca_names handling for client and server · b4970e8b
      Matt Caswell 提交于
      SSL(_CTX)?_set_client_CA_list() was a server side only function in 1.1.0.
      If it was called on the client side then it was ignored. In 1.1.1 it now
      makes sense to have a CA list defined for both client and server (the
      client now sends it the the TLSv1.3 certificate_authorities extension).
      Unfortunately some applications were using the same SSL_CTX for both
      clients and servers and this resulted in some client ClientHellos being
      excessively large due to the number of certificate authorities being sent.
      
      This commit seperates out the CA list updated by
      SSL(_CTX)?_set_client_CA_list() and the more generic
      SSL(_CTX)?_set0_CA_list(). This means that SSL(_CTX)?_set_client_CA_list()
      still has no effect on the client side. If both CA lists are set then
      SSL(_CTX)?_set_client_CA_list() takes priority.
      
      Fixes #7411
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/7503)
      
      (cherry picked from commit 98732979001dbb59320803713c4c91ba40234250)
      b4970e8b
    • M
      Don't negotiate TLSv1.3 if our EC cert isn't TLSv1.3 capable · 6f54ae7a
      Matt Caswell 提交于
      TLSv1.3 is more restrictive about the curve used. There must be a matching
      sig alg defined for that curve. Therefore if we are using some other curve
      in our certificate then we should not negotiate TLSv1.3.
      
      Fixes #7435
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/7442)
      
      (cherry picked from commit de4dc598024fd0a9c2b7a466fd5323755d369522)
      6f54ae7a
  18. 08 11月, 2018 1 次提交
  19. 04 11月, 2018 1 次提交
    • B
      Restore sensible "sess_accept" counter tracking · 33a37a61
      Benjamin Kaduk 提交于
      Commit 9ef9088c switched the SSL/SSL_CTX
      statistics counters to using Thread-Sanitizer-friendly primitives.
      However, it erroneously converted an addition of -1
      (for s->session_ctx->stats.sess_accept) to an addition of +1, since that
      is the only counter API provided by the internal tsan_assist.h header
      until the previous commit.  This means that for each accepted (initial)
      connection, the session_ctx's counter would get doubly incremented, and the
      (switched) ctx's counter would also get incremented.
      
      Restore the counter decrement so that each accepted connection increments
      exactly one counter exactly once (in net effect).
      Reviewed-by: NPaul Dale <paul.dale@oracle.com>
      (Merged from https://github.com/openssl/openssl/pull/7464)
      
      (cherry picked from commit 2aaa0b146b967397a6e61fa8df969e7847f82086)
      33a37a61
  20. 30 10月, 2018 1 次提交
    • M
      Don't call the client_cert_cb immediately in TLSv1.3 · a2388b50
      Matt Caswell 提交于
      In TLSv1.2 and below a CertificateRequest is sent after the Certificate
      from the server. This means that by the time the client_cert_cb is called
      on receipt of the CertificateRequest a call to SSL_get_peer_certificate()
      will return the server certificate as expected. In TLSv1.3 a
      CertificateRequest is sent before a Certificate message so calling
      SSL_get_peer_certificate() returns NULL.
      
      To workaround this we delay calling the client_cert_cb until after we
      have processed the CertificateVerify message, when we are doing TLSv1.3.
      
      Fixes #7384
      Reviewed-by: NBen Kaduk <kaduk@mit.edu>
      (Merged from https://github.com/openssl/openssl/pull/7413)
      
      (cherry picked from commit e45620140fce22c3251440063bc17440289d730c)
      a2388b50
  21. 29 10月, 2018 1 次提交
  22. 19 10月, 2018 1 次提交
  23. 17 10月, 2018 1 次提交
  24. 22 9月, 2018 1 次提交
  25. 12 9月, 2018 1 次提交
  26. 08 9月, 2018 1 次提交
  27. 07 9月, 2018 3 次提交
  28. 04 9月, 2018 2 次提交
  29. 22 8月, 2018 2 次提交
  30. 20 8月, 2018 1 次提交
  31. 15 8月, 2018 2 次提交
  32. 14 8月, 2018 1 次提交