aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-10-24 20:10:06 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-10-24 20:10:06 -0500
commit1161aeadd3cc0f0769b0e39959c4c51aa206ed1d (patch)
tree354e50df8939dc7acec4294ab95fc0e9fb59464e
parentc6af93903be97612314cbd9a8d8e3264059419df (diff)
downloadcryptography-1161aeadd3cc0f0769b0e39959c4c51aa206ed1d.tar.gz
cryptography-1161aeadd3cc0f0769b0e39959c4c51aa206ed1d.tar.bz2
cryptography-1161aeadd3cc0f0769b0e39959c4c51aa206ed1d.zip
move lock initialization to during binding import
Previously we attempted to register our openssl locks only if the backend was initialized, but we should really just do it immediately. Consumers like PyOpenSSL already call init_static_locks after importing the binding and if a library wants to replace the locks with something else they can do so themselves.
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py2
-rw-r--r--src/cryptography/hazmat/bindings/openssl/binding.py4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 58587b94..0c257d1e 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -524,8 +524,6 @@ class Backend(object):
res = self._lib.ASN1_STRING_set_default_mask_asc(b"utf8only")
self.openssl_assert(res == 1)
- self._binding.init_static_locks()
-
self._cipher_registry = {}
self._register_default_ciphers()
self.activate_osrandom_engine()
diff --git a/src/cryptography/hazmat/bindings/openssl/binding.py b/src/cryptography/hazmat/bindings/openssl/binding.py
index 4fac11d8..e2c34d6c 100644
--- a/src/cryptography/hazmat/bindings/openssl/binding.py
+++ b/src/cryptography/hazmat/bindings/openssl/binding.py
@@ -172,3 +172,7 @@ class Binding(object):
mode, n, file, line
)
)
+
+
+# OpenSSL is not thread safe until the locks are initialized.
+Binding.init_static_locks()