aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharlie Li <vishwin@users.noreply.github.com>2019-04-23 11:07:00 -0400
committerPaul Kehrer <paul.l.kehrer@gmail.com>2019-04-23 23:07:00 +0800
commit87550626ff995ae61abf441e5e89076cc5a7dd45 (patch)
tree57e2bf18020075fe5be6c3564394b5bf7c7999ca
parentf709ce5c5ccd4eb96a5551b21293b04909122bf5 (diff)
downloadcryptography-87550626ff995ae61abf441e5e89076cc5a7dd45.tar.gz
cryptography-87550626ff995ae61abf441e5e89076cc5a7dd45.tar.bz2
cryptography-87550626ff995ae61abf441e5e89076cc5a7dd45.zip
Use generic DTLS functions added in LibreSSL 2.9.1 (#4855)
* Use generic DTLS functions added in LibreSSL 2.9.1 While here, bump travis. * Remove LibreSSL 2.9.0 from travis now that 2.9.1 exists. Requested by: @reaperhulk
-rw-r--r--.travis.yml2
-rw-r--r--src/_cffi_src/openssl/cryptography.py3
-rw-r--r--src/_cffi_src/openssl/ssl.py9
3 files changed, 10 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index cc749667..c031e66f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -60,7 +60,7 @@ matrix:
- python: 3.7
env: TOXENV=py37 LIBRESSL=2.8.3
- python: 3.7
- env: TOXENV=py37 LIBRESSL=2.9.0
+ env: TOXENV=py37 LIBRESSL=2.9.1
- python: 2.7
services: docker
diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
index 4124dcb8..ac32fdff 100644
--- a/src/_cffi_src/openssl/cryptography.py
+++ b/src/_cffi_src/openssl/cryptography.py
@@ -38,9 +38,12 @@ INCLUDES = """
(LIBRESSL_VERSION_NUMBER >= 0x2070000f)
#define CRYPTOGRAPHY_LIBRESSL_28_OR_GREATER \
(LIBRESSL_VERSION_NUMBER >= 0x2080000f)
+#define CRYPTOGRAPHY_LIBRESSL_291_OR_GREATER \
+ (LIBRESSL_VERSION_NUMBER >= 0x2090100f)
#else
#define CRYPTOGRAPHY_LIBRESSL_27_OR_GREATER (0)
#define CRYPTOGRAPHY_LIBRESSL_28_OR_GREATER (0)
+#define CRYPTOGRAPHY_LIBRESSL_291_OR_GREATER (0)
#endif
#define CRYPTOGRAPHY_OPENSSL_102_OR_GREATER \
diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
index 92fd1e3e..da21f3ce 100644
--- a/src/_cffi_src/openssl/ssl.py
+++ b/src/_cffi_src/openssl/ssl.py
@@ -719,17 +719,20 @@ static const long TLS_ST_BEFORE = 0;
static const long TLS_ST_OK = 0;
#endif
-#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
+/* LibreSSL 2.9.1 added only the DTLS_*_method functions */
+#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102 && !CRYPTOGRAPHY_LIBRESSL_291_OR_GREATER
static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 0;
const SSL_METHOD *(*DTLS_method)(void) = NULL;
const SSL_METHOD *(*DTLS_server_method)(void) = NULL;
const SSL_METHOD *(*DTLS_client_method)(void) = NULL;
+#else
+static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 1;
+#endif
+#if CRYPTOGRAPHY_OPENSSL_LESS_THAN_102
static const long SSL_OP_NO_DTLSv1 = 0;
static const long SSL_OP_NO_DTLSv1_2 = 0;
long (*DTLS_set_link_mtu)(SSL *, long) = NULL;
long (*DTLS_get_link_min_mtu)(SSL *) = NULL;
-#else
-static const long Cryptography_HAS_GENERIC_DTLS_METHOD = 1;
#endif
static const long Cryptography_HAS_DTLS = 1;