# ``twisted`.`internet`.`_sslverify`.`_ChooseDiffieHellmanEllipticCurve``

class documentation

`class _ChooseDiffieHellmanEllipticCurve: (source)`

View In Hierarchy

Chooses the best elliptic curve for Elliptic Curve Diffie-Hellman key exchange, and provides a `configureECDHCurve` method to set the curve, when appropriate, on a new `OpenSSL.SSL.Context`.

The `configureECDHCurve` method will be set to one of the following based on the provided OpenSSL version and configuration:

- `_configureOpenSSL110`
- `_configureOpenSSL102`
- `_configureOpenSSL101`
- `_configureOpenSSL101NoCurves`.

Parameters
openSSLVersion | The OpenSSL version number.
openSSLlib | The OpenSSL `cffi` library module.
openSSLcrypto | The OpenSSL `crypto` module.
See Also
`OpenSSL.SSL.OPENSSL_VERSION_NUMBER`
`crypto`

Method | `__init__` | Undocumented
Instance Variable | `configureECDHCurve` | Undocumented
Method | `_configureOpenSSL101` | Set the default elliptic curve for ECDH on the context. Only run on OpenSSL 1.0.1.
Method | `_configureOpenSSL101NoCurves` | No elliptic curves are available on OpenSSL 1.0.1. We can't set anything, so do nothing.
Method | `_configureOpenSSL102` | Have the context automatically choose elliptic curves for ECDH. Run on OpenSSL 1.0.2 and OpenSSL 1.1.0+, but only has an effect on OpenSSL 1.0.2.
Method | `_configureOpenSSL110` | OpenSSL 1.1.0 Contexts are preconfigured with an optimal set of ECDH curves. This method does nothing.
Instance Variable | `_ecCurve` | Undocumented
Instance Variable | `_openSSLcrypto` | Undocumented
Instance Variable | `_openSSLlib` | Undocumented

def __init__(self, openSSLVersion, openSSLlib, openSSLcrypto): (source)

Undocumented

configureECDHCurve = (source)

Undocumented

def _configureOpenSSL101(self, ctx): (source)
Set the default elliptic curve for ECDH on the context. Only run on OpenSSL 1.0.1.

Parameters
ctx:`OpenSSL.SSL.Context` | The context on which to set the ECDH curve.

def _configureOpenSSL101NoCurves(self, ctx): (source)
No elliptic curves are available on OpenSSL 1.0.1. We can't set anything, so do nothing.

Parameters
ctx:`OpenSSL.SSL.Context` | The context on which to set the ECDH curve.

def _configureOpenSSL102(self, ctx): (source)
Have the context automatically choose elliptic curves for ECDH. Run on OpenSSL 1.0.2 and OpenSSL 1.1.0+, but only has an effect on OpenSSL 1.0.2.

Parameters
ctx:`OpenSSL.SSL.Context` | The context which .

def _configureOpenSSL110(self, ctx): (source)
OpenSSL 1.1.0 Contexts are preconfigured with an optimal set of ECDH curves. This method does nothing.

Parameters
ctx | `OpenSSL.SSL.Context`

_ecCurve = (source)

Undocumented

_openSSLcrypto = (source)

Undocumented

_openSSLlib = (source)

Undocumented