summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries/smtp.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/bitmask_libraries/smtp.py')
-rw-r--r--service/pixelated/bitmask_libraries/smtp.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/service/pixelated/bitmask_libraries/smtp.py b/service/pixelated/bitmask_libraries/smtp.py
index c22601d2..31e56995 100644
--- a/service/pixelated/bitmask_libraries/smtp.py
+++ b/service/pixelated/bitmask_libraries/smtp.py
@@ -17,8 +17,8 @@ import logging
import os
import requests
import random
-from .certs import which_api_CA_bundle
from leap.mail.smtp import setup_smtp_gateway
+from pixelated.bitmask_libraries.certs import LeapCertificate
logger = logging.getLogger(__name__)
@@ -26,11 +26,12 @@ logger = logging.getLogger(__name__)
class LeapSmtp(object):
- def __init__(self, provider, username, session_id, keymanager=None):
+ def __init__(self, provider, auth, keymanager=None):
self.local_smtp_port_number = random.randrange(12000, 16000)
self._provider = provider
- self.username = username
- self.session_id = session_id
+ self.username = auth.username
+ self.session_id = auth.session_id
+ self.user_token = auth.token
self._keymanager = keymanager
self._remote_hostname, self._remote_port = self._discover_remote_smtp_server()
self._local_smtp_service_socket = None
@@ -58,8 +59,14 @@ class LeapSmtp(object):
cert_url = '%s/%s/cert' % (self._provider.api_uri, self._provider.api_version)
cookies = {"_session_id": self.session_id}
-
- response = requests.get(cert_url, verify=which_api_CA_bundle(self._provider), cookies=cookies, timeout=self._provider.config.timeout_in_s)
+ headers = {}
+ headers["Authorization"] = 'Token token="{0}"'.format(self.user_token)
+ response = requests.get(
+ cert_url,
+ verify=LeapCertificate(self._provider).provider_api_cert,
+ cookies=cookies,
+ timeout=self._provider.config.timeout_in_s,
+ headers=headers)
response.raise_for_status()
client_cert = response.content