1. 06 4月, 2014 1 次提交
  2. 28 3月, 2014 4 次提交
    • D
      Security framework. · b362ccab
      Dr. Stephen Henson 提交于
      Security callback: selects which parameters are permitted including
      sensible defaults based on bits of security.
      
      The "parameters" which can be selected include: ciphersuites,
      curves, key sizes, certificate signature algorithms, supported
      signature algorithms, DH parameters, SSL/TLS version, session tickets
      and compression.
      
      In some cases prohibiting the use of a parameters will mean they are
      not advertised to the peer: for example cipher suites and ECC curves.
      In other cases it will abort the handshake: e.g DH parameters or the
      peer key size.
      
      Documentation to follow...
      b362ccab
    • D
      Allow return of supported ciphers. · 8b8e5bed
      Dr. Stephen Henson 提交于
      New function ssl_cipher_disabled.
      
      Check for disabled client ciphers using ssl_cipher_disabled.
      
      New function to return only supported ciphers.
      
      New option to ciphers utility to print only supported ciphers.
      8b8e5bed
    • D
      Auto DH support. · 09599b52
      Dr. Stephen Henson 提交于
      Add auto DH parameter support. This is roughly equivalent to the
      ECDH auto curve selection but for DH. An application can just call
      
      SSL_CTX_set_auto_dh(ctx, 1);
      
      and appropriate DH parameters will be used based on the size of the
      server key.
      
      Unlike ECDH there is no way a peer can indicate the range of DH parameters
      it supports. Some peers cannot handle DH keys larger that 1024 bits for
      example. In this case if you call:
      
      SSL_CTX_set_auto_dh(ctx, 2);
      
      Only 1024 bit DH parameters will be used.
      
      If the server key is 7680 bits or more in size then 8192 bit DH parameters
      will be used: these will be *very* slow.
      
      The old export ciphersuites aren't supported but those are very
      insecure anyway.
      09599b52
    • D
      Fix memory leak with client auth. · 4563da1d
      Dr. Stephen Henson 提交于
      (cherry picked from commit bc5ec653ba65fedb1619c8182088497de8a97a70)
      4563da1d
  3. 21 2月, 2014 1 次提交
  4. 20 2月, 2014 1 次提交
  5. 19 2月, 2014 1 次提交
  6. 06 2月, 2014 4 次提交
  7. 16 1月, 2014 1 次提交
  8. 09 1月, 2014 1 次提交
    • D
      use SSL_kECDHE throughout instead of SSL_kEECDH · 4082fea8
      Daniel Kahn Gillmor 提交于
      ECDHE is the standard term used by the RFCs and by other TLS
      implementations.  It's useful to have the internal variables use the
      standard terminology.
      
      This patch leaves a synonym SSL_kEECDH in place, though, so that older
      code can still be built against it, since that has been the
      traditional API.  SSL_kEECDH should probably be deprecated at some
      point, though.
      4082fea8
  9. 30 12月, 2013 1 次提交
  10. 13 12月, 2013 1 次提交
  11. 14 11月, 2013 1 次提交
  12. 07 11月, 2013 1 次提交
    • D
      Experimental workaround TLS filler (WTF) extension. · 0467ea68
      Dr. Stephen Henson 提交于
      Based on a suggested workaround for the "TLS hang bug" (see FAQ and PR#2771):
      if the TLS Client Hello record length value would otherwise be > 255 and less
      that 512 pad with a dummy extension containing zeroes so it is at least 512.
      
      To enable it use an unused extension number (for example 0x4242) using
      e.g. -DTLSEXT_TYPE_wtf=0x4242
      
      WARNING: EXPERIMENTAL, SUBJECT TO CHANGE.
      0467ea68
  13. 02 11月, 2013 1 次提交
    • P
      Fix SSL_OP_SINGLE_ECDH_USE · 29b490a4
      Piotr Sikora 提交于
      Don't require a public key in tls1_set_ec_id if compression status is
      not needed. This fixes a bug where SSL_OP_SINGLE_ECDH_USE wouldn't work.
      (cherry picked from commit 5ff68e8f6dac3b0d8997b8bc379f9111c2bab74f)
      29b490a4
  14. 21 10月, 2013 1 次提交
    • D
      Prevent use of RSA+MD5 in TLS 1.2 by default. · 45473632
      Dr. Stephen Henson 提交于
      Removing RSA+MD5 from the default signature algorithm list
      prevents its use by default.
      
      If a broken implementation attempts to use RSA+MD5 anyway the sanity
      checking of signature algorithms will cause a fatal alert.
      45473632
  15. 15 10月, 2013 2 次提交
  16. 13 9月, 2013 2 次提交
  17. 08 9月, 2013 1 次提交
    • D
      Experimental encrypt-then-mac support. · 5e3ff62c
      Dr. Stephen Henson 提交于
      Experimental support for encrypt then mac from
      draft-gutmann-tls-encrypt-then-mac-02.txt
      
      To enable it set the appropriate extension number (0x10 for the test server)
      using e.g. -DTLSEXT_TYPE_encrypt_then_mac=0x10
      
      For non-compliant peers (i.e. just about everything) this should have no
      effect.
      5e3ff62c
  18. 06 9月, 2013 2 次提交
    • B
      Make it build. · a6a48e87
      Ben Laurie 提交于
      a6a48e87
    • S
      Add callbacks supporting generation and retrieval of supplemental data... · 36086186
      Scott Deboy 提交于
      Add callbacks supporting generation and retrieval of supplemental data entries, facilitating RFC 5878 (TLS auth extensions)
      Removed prior audit proof logic - audit proof support was implemented using the generic TLS extension API
      Tests exercising the new supplemental data registration and callback api can be found in ssltest.c.
      Implemented changes to s_server and s_client to exercise supplemental data callbacks via the -auth argument, as well as additional flags to exercise supplemental data being sent only during renegotiation.
      36086186
  19. 05 9月, 2013 1 次提交
  20. 18 8月, 2013 1 次提交
  21. 31 7月, 2013 1 次提交
  22. 22 7月, 2013 1 次提交
  23. 28 6月, 2013 1 次提交
  24. 18 6月, 2013 1 次提交
    • T
      Cleanup of custom extension stuff. · 9cd50f73
      Trevor 提交于
      serverinfo rejects non-empty extensions.
      
      Omit extension if no relevant serverinfo data.
      
      Improve error-handling in serverinfo callback.
      
      Cosmetic cleanups.
      
      s_client documentation.
      
      s_server documentation.
      
      SSL_CTX_serverinfo documentation.
      
      Cleaup -1 and NULL callback handling for custom extensions, add tests.
      
      Cleanup ssl_rsa.c serverinfo code.
      
      Whitespace cleanup.
      
      Improve comments in ssl.h for serverinfo.
      
      Whitespace.
      
      Cosmetic cleanup.
      
      Reject non-zero-len serverinfo extensions.
      
      Whitespace.
      
      Make it build.
      9cd50f73
  25. 13 6月, 2013 1 次提交
  26. 05 4月, 2013 1 次提交
    • D
      Make TLS 1.2 ciphers work again. · 1e2d4cb0
      Dr. Stephen Henson 提交于
      Since s->method does not reflect the final client version when a client
      hello is sent for SSLv23_client_method it can't be relied on to indicate
      if TLS 1.2 ciphers should be used. So use the client version instead.
      1e2d4cb0
  27. 28 3月, 2013 1 次提交
  28. 26 3月, 2013 1 次提交
  29. 18 3月, 2013 2 次提交
    • D
      Use enc_flags when deciding protocol variations. · cbd64894
      Dr. Stephen Henson 提交于
      Use the enc_flags field to determine whether we should use explicit IV,
      signature algorithms or SHA256 default PRF instead of hard coding which
      versions support each requirement.
      cbd64894
    • D
      DTLS revision. · 173e72e6
      Dr. Stephen Henson 提交于
      Revise DTLS code. There was a *lot* of code duplication in the
      DTLS code that generates records. This makes it harder to maintain and
      sometimes a TLS update is omitted by accident from the DTLS code.
      
      Specifically almost all of the record generation functions have code like
      this:
      
      some_pointer = buffer + HANDSHAKE_HEADER_LENGTH;
      ... Record creation stuff ...
      set_handshake_header(ssl, SSL_MT_SOMETHING, message_len);
      
      ...
      
      write_handshake_message(ssl);
      
      Where the "Record creation stuff" is identical between SSL/TLS and DTLS or
      in some cases has very minor differences.
      
      By adding a few fields to SSL3_ENC to include the header length, some flags
      and function pointers for handshake header setting and handshake writing the
      code can cope with both cases.
      
      Note: although this passes "make test" and some simple DTLS tests there may
      be some minor differences in the DTLS code that have to be accounted for.
      173e72e6
  30. 06 2月, 2013 1 次提交
    • B
      Add and use a constant-time memcmp. · 7c770d57
      Ben Laurie 提交于
      This change adds CRYPTO_memcmp, which compares two vectors of bytes in
      an amount of time that's independent of their contents. It also changes
      several MAC compares in the code to use this over the standard memcmp,
      which may leak information about the size of a matching prefix.
      (cherry picked from commit 2ee798880a246d648ecddadc5b91367bee4a5d98)
      7c770d57