diff sat/plugins/plugin_sec_aesgcm.py @ 3205:2c0628f3927e

plugin download, aesgcm: disable TLS check if `check_certificate` setting is disabled
author Goffi <goffi@goffi.org>
date Fri, 06 Mar 2020 18:19:03 +0100
parents adf1aeaa0d37
children 2ba602aef90e
line wrap: on
line diff
--- a/sat/plugins/plugin_sec_aesgcm.py	Fri Mar 06 18:19:03 2020 +0100
+++ b/sat/plugins/plugin_sec_aesgcm.py	Fri Mar 06 18:19:03 2020 +0100
@@ -33,6 +33,7 @@
 from sat.core import exceptions
 from sat.tools import stream
 from sat.core.log import getLogger
+from sat.tools.web import treq_client_no_ssl
 
 log = getLogger(__name__)
 
@@ -92,7 +93,15 @@
         download_url = parse.urlunparse(
             ('https', uri_parsed.netloc, uri_parsed.path, '', '', ''))
 
-        head_data = await treq.head(download_url)
+        if options.get('ignore_tls_errors', False):
+            log.warning(
+                "TLS certificate check disabled, this is highly insecure"
+            )
+            treq_client = treq_client_no_ssl
+        else:
+            treq_client = treq
+
+        head_data = await treq_client.head(download_url)
         content_length = int(head_data.headers.getRawHeaders('content-length')[0])
         # the 128 bits tag is put at the end
         file_size = content_length - 16
@@ -107,7 +116,7 @@
 
         progress_id = file_obj.uid
 
-        resp = await treq.get(download_url, unbuffered=True)
+        resp = await treq_client.get(download_url, unbuffered=True)
         if resp.code == 200:
             d = treq.collect(resp, partial(
                 self.onDataDownload,