aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cryptography/hazmat/backends/__init__.py21
-rw-r--r--cryptography/hazmat/bindings/commoncrypto/binding.py8
-rw-r--r--cryptography/hazmat/bindings/openssl/binding.py6
-rw-r--r--setup.py28
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()
diff --git a/setup.py b/setup.py
index 30146b71..6a7642ff 100644
--- a/setup.py
+++ b/setup.py
@@ -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,
}
)