aboutsummaryrefslogtreecommitdiffstats
path: root/cryptography
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2014-01-04 18:01:41 -0800
committerDonald Stufft <donald@stufft.io>2014-01-04 18:01:41 -0800
commit86b7a8efdc3a7a95a472b00157e4372abd1c064b (patch)
tree5ea00f7326f3fd05a73eb84cfc1001bab000e1fc /cryptography
parentd68fd37ec18c5adfa580d989730f7988d72d2bea (diff)
parent02ed961c963f0d27fe23e9608223ccc8dd3be7f6 (diff)
downloadcryptography-86b7a8efdc3a7a95a472b00157e4372abd1c064b.tar.gz
cryptography-86b7a8efdc3a7a95a472b00157e4372abd1c064b.tar.bz2
cryptography-86b7a8efdc3a7a95a472b00157e4372abd1c064b.zip
Merge pull request #404 from reaperhulk/commoncrypto-mark
Add mark to skip if binding is not available
Diffstat (limited to 'cryptography')
-rw-r--r--cryptography/hazmat/bindings/openssl/binding.py8
-rw-r--r--cryptography/hazmat/bindings/utils.py8
2 files changed, 15 insertions, 1 deletions
diff --git a/cryptography/hazmat/bindings/openssl/binding.py b/cryptography/hazmat/bindings/openssl/binding.py
index 4f6b99ae..2a1e1184 100644
--- a/cryptography/hazmat/bindings/openssl/binding.py
+++ b/cryptography/hazmat/bindings/openssl/binding.py
@@ -13,7 +13,9 @@
from __future__ import absolute_import, division, print_function
-from cryptography.hazmat.bindings.utils import build_ffi
+from cryptography.hazmat.bindings.utils import (
+ build_ffi, binding_available
+)
_OSX_PRE_INCLUDE = """
#ifdef __APPLE__
@@ -79,3 +81,7 @@ class Binding(object):
cls.ffi, cls.lib = build_ffi(cls._module_prefix, cls._modules,
_OSX_PRE_INCLUDE, _OSX_POST_INCLUDE,
["crypto", "ssl"])
+
+ @classmethod
+ def is_available(cls):
+ return binding_available(cls._ensure_ffi_initialized)
diff --git a/cryptography/hazmat/bindings/utils.py b/cryptography/hazmat/bindings/utils.py
index 9e1d3937..9141c155 100644
--- a/cryptography/hazmat/bindings/utils.py
+++ b/cryptography/hazmat/bindings/utils.py
@@ -86,3 +86,11 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries):
delattr(lib, name)
return ffi, lib
+
+
+def binding_available(initializer):
+ try:
+ initializer()
+ return True
+ except cffi.VerificationError:
+ return False