1. 18 8月, 2016 1 次提交
  2. 15 8月, 2016 1 次提交
  3. 13 8月, 2016 1 次提交
  4. 06 8月, 2016 1 次提交
  5. 26 7月, 2016 1 次提交
  6. 22 7月, 2016 1 次提交
  7. 20 7月, 2016 2 次提交
  8. 19 7月, 2016 10 次提交
  9. 18 7月, 2016 4 次提交
  10. 02 7月, 2016 1 次提交
    • M
      Avoid an overflow in constructing the ServerKeyExchange message · 1e16987f
      Matt Caswell 提交于
      We calculate the size required for the ServerKeyExchange message and then
      call BUF_MEM_grow_clean() on the buffer. However we fail to take account of
      2 bytes required for the signature algorithm and 2 bytes for the signature
      length, i.e. we could overflow by 4 bytes. In reality this won't happen
      because the buffer is pre-allocated to a large size that means it should be
      big enough anyway.
      
      Addresses an OCAP Audit issue.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      1e16987f
  11. 22 6月, 2016 1 次提交
    • D
      Make RSA key exchange code actually constant-time. · 5b8fa431
      David Benjamin 提交于
      Using RSA_PKCS1_PADDING with RSA_private_decrypt is inherently unsafe.
      The API requires writing output on success and touching the error queue
      on error. Thus, although the padding check itself is constant-time as of
      294d1e36, and the logic after the
      decryption in the SSL code is constant-time as of
      adb46dbc, the API boundary in the middle
      still leaks whether the padding check succeeded, giving us our
      much-loved Bleichenbacher padding oracle.
      
      Instead, PKCS#1 padding must be handled by the caller which uses
      RSA_NO_PADDING, in timing-sensitive code integrated with the
      Bleichenbacher mitigation. Removing PKCS#1 padding in constant time is
      actually much simpler when the expected length is a constant (and if
      it's not a constant, avoiding a padding oracle seems unlikely), so just
      do it inline.
      Signed-off-by: NKurt Roeckx <kurt@roeckx.be>
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      
      GH: #1222
      5b8fa431
  12. 16 6月, 2016 1 次提交
  13. 10 6月, 2016 1 次提交
    • T
      Fix session ticket and SNI · 5c753de6
      Todd Short 提交于
      When session tickets are used, it's possible that SNI might swtich the
      SSL_CTX on an SSL. Normally, this is not a problem, because the
      initial_ctx/session_ctx are used for all session ticket/id processes.
      
      However, when the SNI callback occurs, it's possible that the callback
      may update the options in the SSL from the SSL_CTX, and this could
      cause SSL_OP_NO_TICKET to be set. If this occurs, then two bad things
      can happen:
      
      1. The session ticket TLSEXT may not be written when the ticket expected
      flag is set. The state machine transistions to writing the ticket, and
      the client responds with an error as its not expecting a ticket.
      2. When creating the session ticket, if the ticket key cb returns 0
      the crypto/hmac contexts are not initialized, and the code crashes when
      trying to encrypt the session ticket.
      
      To fix 1, if the ticket TLSEXT is not written out, clear the expected
      ticket flag.
      To fix 2, consider a return of 0 from the ticket key cb a recoverable
      error, and write a 0 length ticket and continue. The client-side code
      can explicitly handle this case.
      
      Fix these two cases, and add unit test code to validate ticket behavior.
      Reviewed-by: NEmilia Käsper <emilia@openssl.org>
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/1098)
      5c753de6
  14. 04 6月, 2016 1 次提交
  15. 18 5月, 2016 1 次提交
  16. 17 5月, 2016 4 次提交
  17. 14 5月, 2016 1 次提交
  18. 11 5月, 2016 2 次提交
  19. 29 4月, 2016 1 次提交
  20. 27 4月, 2016 1 次提交
  21. 09 4月, 2016 1 次提交
  22. 05 4月, 2016 2 次提交