aboutsummaryrefslogtreecommitdiffstats
path: root/cryptography/hazmat
diff options
context:
space:
mode:
Diffstat (limited to 'cryptography/hazmat')
-rw-r--r--cryptography/hazmat/bindings/utils.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/cryptography/hazmat/bindings/utils.py b/cryptography/hazmat/bindings/utils.py
index 1d07cd97..3da0412e 100644
--- a/cryptography/hazmat/bindings/utils.py
+++ b/cryptography/hazmat/bindings/utils.py
@@ -71,7 +71,11 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries):
)
lib = ffi.verify(
source=source,
- modulename=create_modulename(ffi, source),
+ modulename=_create_modulename(
+ ffi, source,
+ sys.version,
+ sys.version_info
+ ),
libraries=libraries,
ext_package="cryptography",
)
@@ -87,7 +91,7 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries):
return ffi, lib
-def create_modulename(ffi, source):
+def _create_modulename(ffi, source, sys_version, sys_version_info):
"""
cffi creates a modulename internally that incorporates the cffi version.
This will cause cryptography's wheels to break when the version of cffi
@@ -95,8 +99,8 @@ def create_modulename(ffi, source):
resolve this we build our own modulename that uses most of the same code
from cffi but elides the version key.
"""
- key = '\x00'.join([sys.version[:3], source] + ffi._cdefsources)
- if sys.version_info >= (3,):
+ key = '\x00'.join([sys_version[:3], source] + ffi._cdefsources)
+ if sys_version_info >= (3,):
key = key.encode('utf-8')
k1 = hex(binascii.crc32(key[0::2]) & 0xffffffff)
k1 = k1.lstrip('0x').rstrip('L')