summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2016-12-19 06:03:48 -0600
committerHynek Schlawack <hs@ox.cx>2016-12-19 13:03:48 +0100
commit6c6bf865acdd3c5ca5f47b1dbc2903023fd286b6 (patch)
treeb6fbeeb2e3782030b4bf4d856a08494bbca9da7c
parent63ef9bc5f98261ca9585919b929c13d015fc5d1f (diff)
downloadpyopenssl-6c6bf865acdd3c5ca5f47b1dbc2903023fd286b6.tar.gz
automatically set SSL_CTX_set_ecdh_auto when available (#575)
-rw-r--r--CHANGELOG.rst2
-rw-r--r--src/OpenSSL/SSL.py9
2 files changed, 11 insertions, 0 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 56c3c74..7085711 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -29,6 +29,8 @@ Changes:
This reduces CPU usage and memory allocation time by an amount proportional to the size of the allocation.
For applications that process a lot of TLS data or that use very lage allocations this can provide considerable performance improvements.
`#578 <https://github.com/pyca/pyopenssl/pull/578>`_
+- Automatically set ``SSL_CTX_set_ecdh_auto()`` on ``OpenSSL.SSL.Context``.
+ `#575 <https://github.com/pyca/pyopenssl/pull/575>`_
----
diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py
index 63a0b7e..eb0de10 100644
--- a/src/OpenSSL/SSL.py
+++ b/src/OpenSSL/SSL.py
@@ -475,6 +475,15 @@ class Context(object):
_openssl_assert(context != _ffi.NULL)
context = _ffi.gc(context, _lib.SSL_CTX_free)
+ # If SSL_CTX_set_ecdh_auto is available then set it so the ECDH curve
+ # will be auto-selected. This function was added in 1.0.2 and made a
+ # noop in 1.1.0+ (where it is set automatically).
+ try:
+ res = _lib.SSL_CTX_set_ecdh_auto(context, 1)
+ _openssl_assert(res == 1)
+ except AttributeError:
+ pass
+
self._context = context
self._passphrase_helper = None
self._passphrase_callback = None