diff options
-rw-r--r-- | cryptography/hazmat/backends/__init__.py | 21 | ||||
-rw-r--r-- | cryptography/hazmat/bindings/commoncrypto/binding.py | 8 | ||||
-rw-r--r-- | cryptography/hazmat/bindings/openssl/binding.py | 6 | ||||
-rw-r--r-- | setup.py | 28 |
4 files changed, 23 insertions, 40 deletions
diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py index 663d1f55..b0f663fe 100644 --- a/cryptography/hazmat/backends/__init__.py +++ b/cryptography/hazmat/backends/__init__.py @@ -25,23 +25,12 @@ def _available_backends(): global _available_backends_list if _available_backends_list is None: - _available_backends_list = [] - - for backend in pkg_resources.iter_entry_points( - "cryptography.hazmat.backends" - ): - is_backend_available = pkg_resources.get_entry_info( - backend.dist, - "cryptography.hazmat.is_backend_available", - backend.name + _available_backends_list = [ + backend.load(require=False) + for backend in pkg_resources.iter_entry_points( + "cryptography.backends" ) - - if is_backend_available is not None: - is_backend_available = is_backend_available.load(require=False) - if not is_backend_available(): - continue - - _available_backends_list.append(backend.load(require=False)) + ] return _available_backends_list 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() @@ -14,6 +14,7 @@ from __future__ import absolute_import, division, print_function import os +import platform import subprocess import sys from distutils.command.build import build @@ -57,6 +58,21 @@ if not os.path.exists(os.path.join(base_dir, "vectors/setup.py")): test_requirements.append(VECTORS_DEPENDENCY) +def cc_is_available(): + return sys.platform == "darwin" and list(map( + int, platform.mac_ver()[0].split("."))) >= [10, 8, 0] + + +backends = [ + "openssl = cryptography.hazmat.backends.openssl:backend" +] + +if cc_is_available(): + backends.append( + "commoncrypto = cryptography.hazmat.backends.commoncrypto:backend", + ) + + def get_ext_modules(): from cryptography.hazmat.bindings.commoncrypto.binding import ( Binding as CommonCryptoBinding @@ -71,7 +87,7 @@ def get_ext_modules(): constant_time._ffi.verifier.get_extension(), padding._ffi.verifier.get_extension() ] - if CommonCryptoBinding.is_available(): + if cc_is_available(): ext_modules.append(CommonCryptoBinding().ffi.verifier.get_extension()) return ext_modules @@ -178,14 +194,6 @@ setup( }, entry_points={ - "cryptography.hazmat.backends": [ - "commoncrypto = cryptography.hazmat.backends.commoncrypto:backend", - "openssl = cryptography.hazmat.backends.openssl:backend" - ], - - "cryptography.hazmat.is_backend_available": [ - "commoncrypto = cryptography.hazmat.bindings.commoncrypto." - "binding:Binding.is_available" - ] + "cryptography.backends": backends, } ) |