Skip to content
  1. Jan 02, 2016
    • Viktor Dukhovni's avatar
      Protocol version selection and negotiation rewrite · 4fa52141
      Viktor Dukhovni authored
      
      
      The protocol selection code is now consolidated in a few consecutive
      short functions in a single file and is table driven.  Protocol-specific
      constraints that influence negotiation are moved into the flags
      field of the method structure.  The same protocol version constraints
      are now applied in all code paths.  It is now much easier to add
      new protocol versions without reworking the protocol selection
      logic.
      
      In the presence of "holes" in the list of enabled client protocols
      we no longer select client protocols below the hole based on a
      subset of the constraints and then fail shortly after when it is
      found that these don't meet the remaining constraints (suiteb, FIPS,
      security level, ...).  Ideally, with the new min/max controls users
      will be less likely to create "holes" in the first place.
      
      Reviewed-by: default avatarKurt Roeckx <kurt@openssl.org>
      4fa52141
    • Kurt Roeckx's avatar
  2. Dec 15, 2015
  3. Dec 13, 2015
  4. Dec 11, 2015
  5. Dec 10, 2015
  6. Dec 09, 2015
  7. Dec 07, 2015
  8. Dec 05, 2015
  9. Dec 04, 2015
  10. Dec 01, 2015
  11. Nov 20, 2015
  12. Nov 17, 2015
  13. Oct 30, 2015
  14. Oct 26, 2015
  15. Oct 15, 2015
  16. Oct 14, 2015
  17. Sep 30, 2015
    • Matt Caswell's avatar
      Change the DEFAULT ciphersuites to exclude DES, RC4 and RC2 · c84f7f4a
      Matt Caswell authored
      
      
      This patch updates the "DEFAULT" cipherstring to be
      "ALL:!COMPLEMENTOFDEFAULT:!eNULL". COMPLEMENTOFDEFAULT is now defined
      internally by a flag on each ciphersuite indicating whether it should be
      excluded from DEFAULT or not. This gives us control at an individual
      ciphersuite level as to exactly what is in DEFAULT and what is not.
      
      Finally all DES, RC4 and RC2 ciphersuites are added to COMPLEMENTOFDEFAULT
      and hence removed from DEFAULT.
      
      Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
      c84f7f4a
    • David Woodhouse's avatar
      Fix no-stdio build · 984d6c60
      David Woodhouse authored
      
      
      Much related/similar work also done by
      Ivan Nestlerode <ivan.nestlerode@sonos.com>
      
         +Replace FILE BIO's with dummy ops that fail.
         +Include <stdio.h> for sscanf() even with no-stdio (since the declaration
          is there). We rely on sscanf() to parse the OPENSSL_ia32cap environment
          variable, since it can be larger than a 'long'. And we don't rely on the
          availability of strtoull().
         +Remove OPENSSL_stderr(); not used.
         +Make OPENSSL_showfatal() do nothing (currently without stdio there's
          nothing we can do).
         +Remove file-based functionality from ssl/. The function
          prototypes were already gone, but not the functions themselves.
         +Remove unviable conf functionality via SYS_UEFI
         +Add fallback definition of BUFSIZ.
         +Remove functions taking FILE * from header files.
         +Add missing DECLARE_PEM_write_fp_const
         +Disable X509_LOOKUP_hash_dir(). X509_LOOKUP_file() was already compiled out,
          so remove its prototype.
         +Use OPENSSL_showfatal() in CRYPTO_destroy_dynlockid().
         +Eliminate SRP_VBASE_init() and supporting functions. Users will need to
          build the verifier manually instead.
         +Eliminate compiler warning for unused do_pk8pkey_fp().
         +Disable TEST_ENG_OPENSSL_PKEY.
         +Disable GOST engine as is uses [f]printf all over the place.
         +Eliminate compiler warning for unused send_fp_chars().
      
      Signed-off-by: default avatarRich Salz <rsalz@akamai.com>
      Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
      984d6c60
  18. Sep 17, 2015
  19. Sep 07, 2015
  20. Aug 28, 2015
  21. Aug 24, 2015
  22. Jul 31, 2015
  23. Jul 30, 2015
  24. Jul 27, 2015
    • Matt Caswell's avatar
      Remove support for SSL3_FLAGS_DELAY_CLIENT_FINISHED · 57787ac8
      Matt Caswell authored
      
      
      This flag was not set anywhere within the codebase (only read). It could
      only be set by an app reaching directly into s->s3->flags and setting it
      directly. However that method became impossible when libssl was opaquified.
      
      Even in 1.0.2/1.0.1 if an app set the flag directly it is only relevant to
      ssl3_connect(), which calls SSL_clear() during initialisation that clears
      any flag settings. Therefore it could take effect if the app set the flag
      after the handshake has started but before it completed. It seems quite
      unlikely that any apps really do this (especially as it is completely
      undocumented).
      
      The purpose of the flag is suppress flushing of the write bio on the client
      side at the end of the handshake after the client has written the Finished
      message whilst resuming a session. This enables the client to send
      application data as part of the same flight as the Finished message.
      
      This flag also controls the setting of a second flag SSL3_FLAGS_POP_BUFFER.
      There is an interesting comment in the code about this second flag in the
      implementation of ssl3_write:
      
      	/* This is an experimental flag that sends the
      	 * last handshake message in the same packet as the first
      	 * use data - used to see if it helps the TCP protocol during
      	 * session-id reuse */
      
      It seems the experiment did not work because as far as I can tell nothing
      is using this code. The above comment has been in the code since SSLeay.
      
      This commit removes support for SSL3_FLAGS_DELAY_CLIENT_FINISHED, as well
      as the associated SSL3_FLAGS_POP_BUFFER.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      57787ac8
  25. Jul 13, 2015
  26. Jul 09, 2015
  27. Jul 07, 2015
  28. Jun 23, 2015