Skip to content
  1. Feb 17, 2017
  2. Feb 16, 2017
  3. Feb 15, 2017
  4. Feb 14, 2017
  5. Feb 13, 2017
  6. Feb 09, 2017
  7. Feb 08, 2017
    • Todd Short's avatar
      Fix session ticket and SNI · dbdb9661
      Todd Short authored
      
      
      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: default avatarRich Salz <rsalz@openssl.org>
      Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/1065)
      dbdb9661
  8. Feb 07, 2017
  9. Feb 06, 2017
    • Bernd Edlinger's avatar
      Combined patch for the more or less obvious issues · 748cb9a1
      Bernd Edlinger authored
      
      
      Fixed a memory leak in ASN1_digest and ASN1_item_digest.
      
      asn1_template_noexp_d2i call ASN1_item_ex_free(&skfield,...) on error.
      
      Reworked error handling in asn1_item_ex_combine_new:
      - call ASN1_item_ex_free and return the correct error code if ASN1_template_new failed.
      - dont call ASN1_item_ex_free if ASN1_OP_NEW_PRE failed.
      
      Reworked error handing in x509_name_ex_d2i and x509_name_encode.
      
      Fixed error handling in int_ctx_new and EVP_PKEY_CTX_dup.
      
      Fixed a memory leak in def_get_class if lh_EX_CLASS_ITEM_insert fails due to OOM:
      - to figure out if the insertion succeeded, use lh_EX_CLASS_ITEM_retrieve again.
      - on error, p will be NULL, and gen needs to be cleaned up again.
      
      int_free_ex_data needs to have a fallback solution if unable to allocate "storage":
      - if free_func is non-zero this must be called to clean up all memory.
      
      Fixed error handling in pkey_hmac_copy.
      
      Fixed error handling in ssleay_rand_add and ssleay_rand_bytes.
      
      Fixed error handling in X509_STORE_new.
      
      Fixed a memory leak in ssl3_get_key_exchange.
      
      Check for null pointer in ssl3_write_bytes.
      
      Check for null pointer in ssl3_get_cert_verify.
      
      Fixed a memory leak in ssl_cert_dup.
      
      Fixes #2087 #2094 #2103 #2104 #2105 #2106 #2107 #2108 #2110 #2111 #2112 #2115
      
      Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/2127)
      748cb9a1
  10. Feb 05, 2017
  11. Jan 31, 2017
  12. Jan 27, 2017
  13. Jan 26, 2017
  14. Jan 24, 2017
  15. Jan 23, 2017
    • Matt Caswell's avatar
      Fix SSL_VERIFY_CLIENT_ONCE · e203f493
      Matt Caswell authored
      
      
      The flag SSL_VERIFY_CLIENT_ONCE is documented as follows:
      
        B<Server mode:> only request a client certificate on the initial TLS/SSL
        handshake. Do not ask for a client certificate again in case of a
        renegotiation. This flag must be used together with SSL_VERIFY_PEER.
      
        B<Client mode:> ignored
      
      But the implementation actually did nothing. After the server sends its
      ServerKeyExchange message, the code was checking s->session->peer to see if
      it is NULL. If it was set then it did not ask for another client
      certificate. However s->session->peer will only be set in the event of a
      resumption, but a ServerKeyExchange message is only sent in the event of a
      full handshake (i.e. no resumption).
      
      The documentation suggests that the original intention was for this to
      have an effect on renegotiation, and resumption doesn't come into it.
      
      The fix is to properly check for renegotiation, not whether there is already
      a client certificate in the session.
      
      As far as I can tell this has been broken for a *long* time.
      
      Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/1984)
      e203f493
  16. Jan 20, 2017
  17. Jan 18, 2017
  18. Jan 11, 2017
  19. Jan 10, 2017
  20. Jan 09, 2017
  21. Dec 29, 2016