From 0368124b54873133488b95af8e472721d6f9436d Mon Sep 17 00:00:00 2001 From: Alessandro Pilotti Date: Sun, 5 Aug 2018 13:59:05 +0300 Subject: [PATCH] Fix CRT DLL loading on Windows in Python 3.6 ctypes.util.find_library("c") returns None in Python 3.6. Change-Id: I1918ae53a8712220b973edfdcdcd54e612f21c94 Closes-Bug: #1785467 --- cloudbaseinit/utils/crypt.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cloudbaseinit/utils/crypt.py b/cloudbaseinit/utils/crypt.py index 28203598..5d405e52 100644 --- a/cloudbaseinit/utils/crypt.py +++ b/cloudbaseinit/utils/crypt.py @@ -18,13 +18,17 @@ import ctypes.util import struct import sys +clib_path = ctypes.util.find_library("c") + if sys.platform == "win32": openssl_lib_path = "libeay32.dll" + if clib_path is None: + clib_path = ctypes.util.find_library("ucrtbase") else: openssl_lib_path = ctypes.util.find_library("ssl") openssl = ctypes.CDLL(openssl_lib_path) -clib = ctypes.CDLL(ctypes.util.find_library("c")) +clib = ctypes.CDLL(clib_path) class RSA(ctypes.Structure):