diff options
author | Terry Chia <terrycwk1994@gmail.com> | 2014-07-27 12:27:52 +0800 |
---|---|---|
committer | Terry Chia <terrycwk1994@gmail.com> | 2014-07-27 12:27:52 +0800 |
commit | da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22 (patch) | |
tree | 4623c3f938868ec54a12bd7e16eda71ad71869da /cryptography | |
parent | 3319c95bf861f806a1b237c99661b30379389063 (diff) | |
download | cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.tar.gz cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.tar.bz2 cryptography-da5dca8a92dfe8e01c5f88c67fd78d37cd6a7d22.zip |
Added entry_points.
Diffstat (limited to 'cryptography')
-rw-r--r-- | cryptography/hazmat/backends/__init__.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/cryptography/hazmat/backends/__init__.py b/cryptography/hazmat/backends/__init__.py index ae78822c..663d1f55 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 @@ -31,16 +27,23 @@ def _available_backends(): 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) + 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 + ) - if OpenSSLBinding.is_available(): - from cryptography.hazmat.backends import openssl - _available_backends_list.append(openssl.backend) + if is_backend_available is not None: + is_backend_available = is_backend_available.load(require=False) + if not is_backend_available(): + continue - return _available_backends_list + _available_backends_list.append(backend.load(require=False)) + return _available_backends_list _default_backend = None |