1. 23 Eyl, 2018 1 kayıt (commit)
  2. 22 Eyl, 2018 1 kayıt (commit)
    • Nathaniel J. Smith's avatar
      bpo-34759: Fix error handling in ssl 'unwrap()' (GH-9468) · c0da582b
      Nathaniel J. Smith yazdı
      
      OpenSSL follows the convention that whenever you call a function, it
      returns an error indicator value; and if this value is negative, then
      you need to go look at the actual error code to see what happened.
      
      Commit c6fd1c1c introduced a small mistake in
      _ssl__SSLSocket_shutdown_impl: instead of checking whether the error
      indicator was negative, it started checking whether the actual error
      code was negative, and it turns out that the error codes are never
      negative. So the effect was that 'unwrap()' lost the ability to raise
      SSL errors.
      
      
      https://bugs.python.org/issue34759
      c0da582b
  3. 07 Eyl, 2018 1 kayıt (commit)
    • Victor Stinner's avatar
      bpo-34605: Avoid master/slave terms (GH-9101) · 5e922658
      Victor Stinner yazdı
      * Replace "master process" with "parent process"
      * Replace "master option mappings" with "main option mappings"
      * Replace "master pattern object" with "main pattern object"
      * ssl: replace "master" with "server"
      * And some other similar changes
      5e922658
  4. 30 Agu, 2018 1 kayıt (commit)
  5. 14 Agu, 2018 1 kayıt (commit)
  6. 12 Haz, 2018 1 kayıt (commit)
  7. 11 Haz, 2018 1 kayıt (commit)
    • Christian Heimes's avatar
      bpo-31432: Clarify ssl CERT_NONE/OPTIONAL/REQUIRED docs. (GH-3530) · ef24b6c5
      Christian Heimes yazdı
      The documentation for CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED were
      misleading and partly wrong. It fails to explain that OpenSSL behaves
      differently in client and server mode. Also OpenSSL does validate the
      cert chain everytime. With SSL_VERIFY_NONE a validation error is not
      fatal in client mode and does not request a client cert in server mode.
      Also discourage people from using CERT_OPTIONAL in client mode.
      ef24b6c5
  8. 23 May, 2018 1 kayıt (commit)
  9. 22 May, 2018 1 kayıt (commit)
  10. 16 May, 2018 1 kayıt (commit)
  11. 25 Mar, 2018 1 kayıt (commit)
  12. 27 Şub, 2018 3 kayıt (commit)
    • Christian Heimes's avatar
      bpo-31453: Add setter for min/max protocol version (#5259) · 698dde16
      Christian Heimes yazdı
      OpenSSL 1.1 has introduced a new API to set the minimum and maximum
      supported protocol version. The API is easier to use than the old
      OP_NO_TLS1 option flags, too.
      
      Since OpenSSL has no call to set minimum version to highest supported,
      the implementation emulate maximum_version = MINIMUM_SUPPORTED and
      minimum_version = MAXIMUM_SUPPORTED by figuring out the minumum and
      maximum supported version at compile time.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      698dde16
    • Christian Heimes's avatar
      bpo-32951: Disable SSLSocket/SSLObject constructor (#5864) · 9d50ab56
      Christian Heimes yazdı
      Direct instantiation of SSLSocket and SSLObject objects is now prohibited.
      The constructors were never documented, tested, or designed as public
      constructors. The SSLSocket constructor had limitations. For example it was
      not possible to enabled hostname verification except was
      ssl_version=PROTOCOL_TLS_CLIENT with cert_reqs=CERT_REQUIRED.
      
      SSLContext.wrap_socket() and SSLContext.wrap_bio are the recommended API
      to construct SSLSocket and SSLObject instances. ssl.wrap_socket() is
      also deprecated.
      
      The only test case for direct instantiation was added a couple of days
      ago for IDNA testing.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      9d50ab56
    • Christian Heimes's avatar
      bpo-32947: OpenSSL 1.1.1-pre1 / TLS 1.3 fixes (#5663) · 05d9fe32
      Christian Heimes yazdı
      * bpo-32947: OpenSSL 1.1.1-pre1 / TLS 1.3 fixes
      
      Misc fixes and workarounds for compatibility with OpenSSL 1.1.1-pre1 and
      TLS 1.3 support. With OpenSSL 1.1.1, Python negotiates TLS 1.3 by
      default. Some test cases only apply to TLS 1.2. Other tests currently
      fail because the threaded or async test servers stop after failure.
      
      I'm going to address these issues when OpenSSL 1.1.1 reaches beta.
      
      OpenSSL 1.1.1 has added a new option OP_ENABLE_MIDDLEBOX_COMPAT for TLS
      1.3. The feature is enabled by default for maximum compatibility with
      broken middle boxes. Users should be able to disable the hack and CPython's test suite needs
      it to verify default options.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      05d9fe32
  13. 25 Şub, 2018 1 kayıt (commit)
  14. 24 Şub, 2018 3 kayıt (commit)
    • Christian Heimes's avatar
      bpo-24334: Cleanup SSLSocket (#5252) · 141c5e8c
      Christian Heimes yazdı
      * The SSLSocket is no longer implemented on top of SSLObject to
        avoid an extra level of indirection.
      * Owner and session are now handled in the internal constructor.
      * _ssl._SSLSocket now uses the same method names as SSLSocket and
        SSLObject.
      * Channel binding type check is now handled in C code. Channel binding
        is always available.
      
      The patch also changes the signature of SSLObject.__init__(). In my
      opinion it's fine. A SSLObject is not a user-constructable object.
      SSLContext.wrap_bio() is the only valid factory.
      141c5e8c
    • Christian Heimes's avatar
      bpo-32819: Simplify and improve ssl.match_hostname (#5620) · aef1283b
      Christian Heimes yazdı
      ssl.match_hostname() has been simplified and no longer depends on re and
      ipaddress module for wildcard and IP addresses. Error reporting for invalid
      wildcards has been improved.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      aef1283b
    • Christian Heimes's avatar
      [bpo-28414] Make all hostnames in SSL module IDN A-labels (GH-5128) · 11a1493b
      Christian Heimes yazdı
      Previously, the ssl module stored international domain names (IDNs)
      as U-labels. This is problematic for a number of reasons -- for
      example, it made it impossible for users to use a different version
      of IDNA than the one built into Python.
      
      After this change, we always convert to A-labels as soon as possible,
      and use them for all internal processing. In particular, server_hostname
      attribute is now an A-label, and on the server side there's a new
      sni_callback that receives the SNI servername as an A-label rather than
      a U-label.
      11a1493b
  15. 29 Ock, 2018 2 kayıt (commit)
    • Christian Heimes's avatar
      bpo-28414: ssl module idna test (#5395) · 66e5742b
      Christian Heimes yazdı
      Add test cases for IDNA 2003 and 2008 host names. IDNA 2003
      internationalized host names are working since bpo-31399 has landed. IDNA
      2008 deviations are still broken and will be fixed in another patch.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      66e5742b
    • Christian Heimes's avatar
      bpo-31429: Define TLS cipher suite on build time (#3532) · 892d66e4
      Christian Heimes yazdı
      Until now Python used a hard coded white list of default TLS cipher
      suites. The old approach has multiple downsides. OpenSSL's default
      selection was completely overruled. Python did neither benefit from new
      cipher suites (ChaCha20, TLS 1.3 suites) nor blacklisted cipher suites.
      For example we used to re-enable 3DES.
      
      Python now defaults to OpenSSL DEFAULT cipher suite selection and black
      lists all unwanted ciphers. Downstream vendors can override the default
      cipher list with --with-ssl-default-suites.
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      892d66e4
  16. 27 Ock, 2018 1 kayıt (commit)
    • Christian Heimes's avatar
      bpo-31399: Let OpenSSL verify hostname and IP address (#3462) · 61d478c7
      Christian Heimes yazdı
      bpo-31399: Let OpenSSL verify hostname and IP
      
      The ssl module now uses OpenSSL's X509_VERIFY_PARAM_set1_host() and
      X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses.
      
      * Remove match_hostname calls
      * Check for libssl with set1_host, libssl must provide X509_VERIFY_PARAM_set1_host()
      * Add documentation for OpenSSL 1.0.2 requirement
      * Don't support OpenSSL special mode with a leading dot, e.g. ".example.org" matches "www.example.org". It's not standard conform.
      * Add hostname_checks_common_name
      Signed-off-by: 's avatarChristian Heimes <christian@python.org>
      61d478c7
  17. 20 Ock, 2018 1 kayıt (commit)
  18. 14 Ara, 2017 1 kayıt (commit)
  19. 26 Kas, 2017 1 kayıt (commit)
  20. 15 Eyl, 2017 3 kayıt (commit)
  21. 11 Eyl, 2017 1 kayıt (commit)
  22. 08 Eyl, 2017 2 kayıt (commit)
  23. 07 Eyl, 2017 2 kayıt (commit)
  24. 06 Eyl, 2017 1 kayıt (commit)
  25. 05 Eyl, 2017 1 kayıt (commit)
  26. 04 Eyl, 2017 1 kayıt (commit)
  27. 01 Eyl, 2017 1 kayıt (commit)
  28. 15 Agu, 2017 1 kayıt (commit)
  29. 17 Tem, 2017 1 kayıt (commit)
  30. 09 Haz, 2017 1 kayıt (commit)
  31. 02 May, 2017 1 kayıt (commit)
    • Victor Stinner's avatar
      bpo-30199: test_ssl closes all asyncore channels (#1381) · 1dae7450
      Victor Stinner yazdı
      AsyncoreEchoServer of test_ssl now calls
      asyncore.close_all(ignore_all=True) to ensure that
      asyncore.socket_map is cleared once the test completes, even if
      ConnectionHandler was not correctly unregistered.
      
      Fix the following warning:
      
      Warning -- asyncore.socket_map was modified by test_ssl
        Before: {}
        After:  {6: <test.test_ssl.AsyncoreEchoServer.EchoServer.ConnectionHandler>}
      1dae7450