diff options
Diffstat (limited to 'cryptography/hazmat')
-rw-r--r-- | cryptography/hazmat/backends/__init__.py | 24 | ||||
-rw-r--r-- | cryptography/hazmat/bindings/commoncrypto/binding.py | 8 | ||||
-rw-r--r-- | cryptography/hazmat/bindings/openssl/binding.py | 6 |
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() |