1. 23 11月, 2016 1 次提交
  2. 16 11月, 2016 3 次提交
    • M
      Fix a typo in a comment · 395cc5cd
      Matt Caswell 提交于
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      395cc5cd
    • M
      Fixed various style issues in the key_share code · 94ed2c67
      Matt Caswell 提交于
      Numerous style issues as well as references to TLS1_3_VERSION instead of
      SSL_IS_TLS13(s)
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      94ed2c67
    • M
      Start using the key_share data to derive the PMS · 0f1e51ea
      Matt Caswell 提交于
      The previous commits put in place the logic to exchange key_share data. We
      now need to do something with that information. In <= TLSv1.2 the equivalent
      of the key_share extension is the ServerKeyExchange and ClientKeyExchange
      messages. With key_share those two messages are no longer necessary.
      
      The commit removes the SKE and CKE messages from the TLSv1.3 state machine.
      TLSv1.3 is completely different to TLSv1.2 in the messages that it sends
      and the transitions that are allowed. Therefore, rather than extend the
      existing <=TLS1.2 state transition functions, we create a whole new set for
      TLSv1.3. Intially these are still based on the TLSv1.2 ones, but over time
      they will be amended.
      
      The new TLSv1.3 transitions remove SKE and CKE completely. There's also some
      cleanup for some stuff which is not relevant to TLSv1.3 and is easy to
      remove, e.g. the DTLS support (we're not doing DTLSv1.3 yet) and NPN.
      
      I also disable EXTMS for TLSv1.3. Using it was causing some added
      complexity, so rather than fix it I removed it, since eventually it will not
      be needed anyway.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      0f1e51ea
  3. 04 11月, 2016 6 次提交
  4. 18 8月, 2016 1 次提交
  5. 06 8月, 2016 1 次提交
  6. 22 6月, 2016 1 次提交
  7. 18 5月, 2016 1 次提交
  8. 21 3月, 2016 1 次提交
  9. 08 3月, 2016 1 次提交
    • M
      Lazily initialise the compression buffer · 0220fee4
      Matt Caswell 提交于
      With read pipelining we use multiple SSL3_RECORD structures for reading.
      There are SSL_MAX_PIPELINES (32) of them defined (typically not all of these
      would be used). Each one has a 16k compression buffer allocated! This
      results in a significant amount of memory being consumed which, most of the
      time, is not needed.  This change swaps the allocation of the compression
      buffer to be lazy so that it is only done immediately before it is actually
      used.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      0220fee4
  10. 03 3月, 2016 1 次提交
    • E
      Refactor ClientHello extension parsing · 06217867
      Emilia Kasper 提交于
      1) Simplify code with better PACKET methods.
      
      2) Make broken SNI parsing explicit. SNI was intended to be extensible
      to new name types but RFC 4366 defined the syntax inextensibly, and
      OpenSSL has never parsed SNI in a way that would allow adding a new name
      type. RFC 6066 fixed the definition but due to broken implementations
      being widespread, it appears impossible to ever extend SNI.
      
      3) Annotate resumption behaviour. OpenSSL doesn't currently handle all
      extensions correctly upon resumption. Annotate for further clean-up.
      
      4) Send an alert on ALPN protocol mismatch.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      06217867
  11. 24 2月, 2016 1 次提交
  12. 19 2月, 2016 2 次提交
    • R
      Fix {TLS,CIPHER}_DEBUG compiles. · d1776fde
      Rich Salz 提交于
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      d1776fde
    • R
      Remove outdated DEBUG flags. · d63a5e5e
      Rich Salz 提交于
      Add -DBIO_DEBUG to --strict-warnings.
      Remove comments about outdated debugging ifdef guards.
      Remove md_rand ifdef guarding an assert; it doesn't seem used.
      Remove the conf guards in conf_api since we use OPENSSL_assert, not assert.
      For pkcs12 stuff put OPENSSL_ in front of the macro name.
      Merge TLS_DEBUG into SSL_DEBUG.
      Various things just turned on/off asserts, mainly for checking non-NULL
      arguments, which is now removed: camellia, bn_ctx, crypto/modes.
      Remove some old debug code, that basically just printed things to stderr:
        DEBUG_PRINT_UNKNOWN_CIPHERSUITES, DEBUG_ZLIB, OPENSSL_RI_DEBUG,
        RL_DEBUG, RSA_DEBUG, SCRYPT_DEBUG.
      Remove OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      d63a5e5e
  13. 17 2月, 2016 1 次提交
    • R
      Implement the use of heap manipulator implementions · 05c7b163
      Richard Levitte 提交于
      - Make use of the functions given through CRYPTO_set_mem_functions().
      - CRYPTO_free(), CRYPTO_clear_free() and CRYPTO_secure_free() now receive
        __FILE__ and __LINE__.
      - The API for CRYPTO_set_mem_functions() and CRYPTO_get_mem_functions()
        is slightly changed, the implementation for free() now takes a couple
        of extra arguments, taking __FILE__ and __LINE__.
      - The CRYPTO_ memory functions will *always* receive __FILE__ and __LINE__
        from the corresponding OPENSSL_ macros, regardless of if crypto-mdebug
        has been enabled or not.  The reason is that if someone swaps out the
        malloc(), realloc() and free() implementations, we can't know if they
        will use them or not.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      05c7b163
  14. 27 1月, 2016 1 次提交
    • R
      Remove /* foo.c */ comments · 34980760
      Rich Salz 提交于
      This was done by the following
              find . -name '*.[ch]' | /tmp/pl
      where /tmp/pl is the following three-line script:
              print unless $. == 1 && m@/\* .*\.[ch] \*/@;
              close ARGV if eof; # Close file to reset $.
      
      And then some hand-editing of other files.
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      34980760
  15. 19 1月, 2016 1 次提交
  16. 12 1月, 2016 1 次提交
  17. 08 12月, 2015 3 次提交
  18. 06 12月, 2015 1 次提交
  19. 28 11月, 2015 1 次提交
    • D
      PRF and handshake hash revision. · 28ba2541
      Dr. Stephen Henson 提交于
      Change handshake hash array into a single digest context simplifying the
      handhake hash code. Use EVP_md5_sha1() if needed for handshake hashes in
      TLS 1.1 and earlier.
      
      Simplify PRF code to also use a single digest and treat EVP_md5_sha1()
      as a special case.
      
      Modify algorithm2 field of ciphers to use a single index value for handshake
      hash and PRF instead of a bitmap.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      28ba2541
  20. 26 11月, 2015 1 次提交
  21. 20 11月, 2015 1 次提交
  22. 14 8月, 2015 2 次提交
  23. 24 6月, 2015 1 次提交
    • D
      Tidy up ssl3_digest_cached_records logic. · 124037fd
      Dr. Stephen Henson 提交于
      Rewrite ssl3_digest_cached_records handling. Only digest cached records
      if digest array is NULL: this means it is safe to call
      ssl3_digest_cached_records multiple times (subsequent calls are no op).
      
      Remove flag TLS1_FLAGS_KEEP_HANDSHAKE instead only update handshake buffer
      if digest array is NULL.
      
      Add additional "keep" parameter to ssl3_digest_cached_records to indicate
      if the handshake buffer should be retained after digesting cached records
      (needed for TLS 1.2 client authentication).
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      124037fd
  24. 01 6月, 2015 1 次提交
  25. 31 5月, 2015 1 次提交
  26. 13 5月, 2015 1 次提交
  27. 05 5月, 2015 1 次提交
    • R
      Use safer sizeof variant in malloc · b4faea50
      Rich Salz 提交于
      For a local variable:
              TYPE *p;
      Allocations like this are "risky":
              p = OPENSSL_malloc(sizeof(TYPE));
      if the type of p changes, and the malloc call isn't updated, you
      could get memory corruption.  Instead do this:
              p = OPENSSL_malloc(sizeof(*p));
      Also fixed a few memset() calls that I noticed while doing this.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      b4faea50
  28. 01 5月, 2015 2 次提交
    • R
      free NULL cleanup 11 · efa7dd64
      Rich Salz 提交于
      Don't check for NULL before calling free functions. This gets:
              ERR_STATE_free
              ENGINE_free
              DSO_free
              CMAC_CTX_free
              COMP_CTX_free
              CONF_free
              NCONF_free NCONF_free_data _CONF_free_data
              A sk_free use within OBJ_sigid_free
              TS_TST_INFO_free (rest of TS_ API was okay)
              Doc update for UI_free (all uses were fine)
              X509V3_conf_free
              X509V3_section_free
              X509V3_string_free
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      efa7dd64
    • R
      free null cleanup finale · b548a1f1
      Rich Salz 提交于
      Don't check for NULL before calling OPENSSL_free
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      b548a1f1