1. 23 May, 2016 19 commits
  2. 22 May, 2016 9 commits
  3. 21 May, 2016 5 commits
  4. 20 May, 2016 7 commits
    • Matt Caswell's avatar
      Fix Windows 64 bit crashes · fcb318c6
      Matt Caswell authored
      The function InitOnceExceuteOnce is the best way to support the
      implementation of CRYPTO_THREAD_run_once() on Windows. Unfortunately
      WinXP doesn't have it. To get around that we had two different
      implementations: one for WinXP and one for later versions. Which one was
      used was based on the value of _WIN32_WINNT.
      
      This approach was starting to cause problems though because other parts of
      OpenSSL assume _WIN32_WINNT is going to be 0x0501 and crashes were
      occurring dependant on include file ordering. In addition a conditional
      based on _WIN32_WINNT had made its way into a public header file through
      commit 5c4328f0
      
      . This is problematic because the value of this macro can
      vary between OpenSSL build time and application build time.
      
      The simplest solution to this mess is just to always use the WinXP version
      of CRYPTO_THREAD_run_once(). Its perhaps slightly sub-optimal but probably
      not noticably.
      
      GitHub Issue #1086
      
      Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
      fcb318c6
    • Rich Salz's avatar
      Rename lh_xxx,sk_xxx tp OPENSSL_{LH,SK}_xxx · 739a1eb1
      Rich Salz authored
      
      
      Rename sk_xxx to OPENSSL_sk_xxx and _STACK to OPENSSL_STACK
      Rename lh_xxx API to OPENSSL_LH_xxx and LHASH_NODE to OPENSSL_LH_NODE
      Make lhash stuff opaque.
      Use typedefs for function pointers; makes the code simpler.
      Remove CHECKED_xxx macros.
      Add documentation; remove old X509-oriented doc.
      Add API-compat names for entire old API
      
      Reviewed-by: default avatarDr. Stephen Henson <steve@openssl.org>
      739a1eb1
    • Richard Levitte's avatar
      06593767
    • Richard Levitte's avatar
      VMS: setbuf() only takes 32-bit pointers · 8ff889c2
      Richard Levitte authored
      
      
      Giving setbuf() a 64-bit pointer isn't faulty, as the argument is
      passed by a 64-bit register anyway, so you only get a warning
      (MAYLOSEDATA2) pointing out that only the least significant 32 bits
      will be used.
      
      However, we know that a FILE* returned by fopen() and such really is a
      32-bit pointer (a study of the system header files make that clear),
      so we temporarly turn off that warning when calling setbuf().
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      8ff889c2
    • Matt Caswell's avatar
      Add an async io test · d7295cd6
      Matt Caswell authored
      
      
      This adds an async IO test. There are two test runs. The first one does
      a normal handshake with lots of async IO events. The second one does the
      same but this time breaks up all the written records into multiple records
      of one byte in length. We do this all the way up until the CCS.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      d7295cd6
    • Matt Caswell's avatar
      Ensure async IO works with new state machine · 1689e7e6
      Matt Caswell authored
      
      
      In the new state machine if using nbio and we get the header of a
      handshake message is one record with the body in the next, with an nbio
      event in the middle, then the connection was failing. This is because
      s->init_num was getting reset. We should only reset it after we have
      read the whole message.
      
      RT#4394
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      1689e7e6
    • David Benjamin's avatar
      Tighten up logic around ChangeCipherSpec. · 1257adec
      David Benjamin authored
      
      
      ChangeCipherSpec messages have a defined value. They also may not occur
      in the middle of a handshake message. The current logic will accept a
      ChangeCipherSpec with value 2. It also would accept up to three bytes of
      handshake data before the ChangeCipherSpec which it would discard
      (because s->init_num gets reset).
      
      Instead, require that s->init_num is 0 when a ChangeCipherSpec comes in.
      
      RT#4391
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
      1257adec