aboutsummaryrefslogtreecommitdiffstats
path: root/cryptography/hazmat
diff options
context:
space:
mode:
Diffstat (limited to 'cryptography/hazmat')
-rw-r--r--cryptography/hazmat/backends/__init__.py24
-rw-r--r--cryptography/hazmat/bindings/commoncrypto/binding.py8
-rw-r--r--cryptography/hazmat/bindings/openssl/binding.py6
3 files changed, 8 insertions, 30 deletions
diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py
index ae78822c..b0f663fe 100644
--- a/cryptography/hazmat/backends/__init__.py
+++ b/cryptography/hazmat/backends/__init__.py
@@ -13,13 +13,9 @@
from __future__ import absolute_import, division, print_function
+import pkg_resources
+
from cryptography.hazmat.backends.multibackend import MultiBackend
-from cryptography.hazmat.bindings.commoncrypto.binding import (
- Binding as CommonCryptoBinding
-)
-from cryptography.hazmat.bindings.openssl.binding import (
- Binding as OpenSSLBinding
-)
_available_backends_list = None
@@ -29,19 +25,15 @@ def _available_backends():
global _available_backends_list
if _available_backends_list is None:
- _available_backends_list = []
-
- if CommonCryptoBinding.is_available():
- from cryptography.hazmat.backends import commoncrypto
- _available_backends_list.append(commoncrypto.backend)
-
- if OpenSSLBinding.is_available():
- from cryptography.hazmat.backends import openssl
- _available_backends_list.append(openssl.backend)
+ _available_backends_list = [
+ backend.load(require=False)
+ for backend in pkg_resources.iter_entry_points(
+ "cryptography.backends"
+ )
+ ]
return _available_backends_list
-
_default_backend = None
diff --git a/cryptography/hazmat/bindings/commoncrypto/binding.py b/cryptography/hazmat/bindings/commoncrypto/binding.py
index ee7378ad..ee09bebd 100644
--- a/cryptography/hazmat/bindings/commoncrypto/binding.py
+++ b/cryptography/hazmat/bindings/commoncrypto/binding.py
@@ -13,9 +13,6 @@
from __future__ import absolute_import, division, print_function
-import platform
-import sys
-
from cryptography.hazmat.bindings.utils import build_ffi
@@ -53,8 +50,3 @@ class Binding(object):
modules=cls._modules,
extra_link_args=["-framework", "Security"]
)
-
- @classmethod
- def is_available(cls):
- return sys.platform == "darwin" and list(map(
- int, platform.mac_ver()[0].split("."))) >= [10, 8, 0]
diff --git a/cryptography/hazmat/bindings/openssl/binding.py b/cryptography/hazmat/bindings/openssl/binding.py
index 4cbe3c5b..37891f6b 100644
--- a/cryptography/hazmat/bindings/openssl/binding.py
+++ b/cryptography/hazmat/bindings/openssl/binding.py
@@ -116,12 +116,6 @@ class Binding(object):
assert res != 0
@classmethod
- def is_available(cls):
- # For now, OpenSSL is considered our "default" binding, so we treat it
- # as always available.
- return True
-
- @classmethod
def init_static_locks(cls):
with cls._lock_init_lock:
cls._ensure_ffi_initialized()