summaryrefslogtreecommitdiff
path: root/OpenSSL/SSL.py
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSSL/SSL.py')
-rw-r--r--OpenSSL/SSL.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSSL/SSL.py b/OpenSSL/SSL.py
index 58553d6..7b1cbc1 100644
--- a/OpenSSL/SSL.py
+++ b/OpenSSL/SSL.py
@@ -166,7 +166,7 @@ class SysCallError(Error):
class _VerifyHelper(object):
- def __init__(self, connection, callback):
+ def __init__(self, callback):
self._problems = []
@wraps(callback)
@@ -176,6 +176,10 @@ class _VerifyHelper(object):
error_number = _lib.X509_STORE_CTX_get_error(store_ctx)
error_depth = _lib.X509_STORE_CTX_get_error_depth(store_ctx)
+ index = _lib.SSL_get_ex_data_X509_STORE_CTX_idx()
+ ssl = _lib.X509_STORE_CTX_get_ex_data(store_ctx, index)
+ connection = Connection._reverse_mapping[ssl]
+
try:
result = callback(connection, cert, error_number, error_depth, ok)
except Exception as e:
@@ -547,7 +551,7 @@ class Context(object):
if not callable(callback):
raise TypeError("callback must be callable")
- self._verify_helper = _VerifyHelper(self, callback)
+ self._verify_helper = _VerifyHelper(callback)
self._verify_callback = self._verify_helper.callback
_lib.SSL_CTX_set_verify(self._context, mode, self._verify_callback)