summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/bitmask_libraries')
-rw-r--r--service/pixelated/bitmask_libraries/certs.py20
-rw-r--r--service/pixelated/bitmask_libraries/session.py1
-rw-r--r--service/pixelated/bitmask_libraries/smtp.py3
-rw-r--r--service/pixelated/bitmask_libraries/soledad.py4
4 files changed, 19 insertions, 9 deletions
diff --git a/service/pixelated/bitmask_libraries/certs.py b/service/pixelated/bitmask_libraries/certs.py
index ed597ca8..4ee28a19 100644
--- a/service/pixelated/bitmask_libraries/certs.py
+++ b/service/pixelated/bitmask_libraries/certs.py
@@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
import os
+import requests
+import json
from leap.common import ca_bundle
@@ -46,7 +48,17 @@ class LeapCertificate(object):
def _local_server_cert(self):
cert_file = os.path.join(self._certs_home, '%s.ca.crt' % self._server_name)
- if os.path.isfile(cert_file):
- return cert_file
- else:
- return None
+ if not os.path.isfile(cert_file):
+ self._download_server_cert(cert_file)
+
+ return cert_file
+
+ def _download_server_cert(self, cert_file_name):
+ response = requests.get('https://%s/provider.json' % self._server_name)
+ provider_data = json.loads(response.content)
+ ca_cert_uri = str(provider_data['ca_cert_uri'])
+
+ response = requests.get(ca_cert_uri)
+ with open(cert_file_name, 'w') as file:
+ file.write(response.content)
+ file.close
diff --git a/service/pixelated/bitmask_libraries/session.py b/service/pixelated/bitmask_libraries/session.py
index 9f21fbe6..b23d964f 100644
--- a/service/pixelated/bitmask_libraries/session.py
+++ b/service/pixelated/bitmask_libraries/session.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
import errno
-import logging
import traceback
import sys
diff --git a/service/pixelated/bitmask_libraries/smtp.py b/service/pixelated/bitmask_libraries/smtp.py
index d5236e8e..d4f68f94 100644
--- a/service/pixelated/bitmask_libraries/smtp.py
+++ b/service/pixelated/bitmask_libraries/smtp.py
@@ -55,7 +55,6 @@ class LeapSmtp(object):
if not os.path.exists(os.path.dirname(cert_path)):
os.makedirs(os.path.dirname(cert_path))
- session = requests.session()
cert_url = '%s/%s/cert' % (self._provider.api_uri, self._provider.api_version)
cookies = {"_session_id": self._srp_session.session_id}
@@ -94,7 +93,7 @@ class LeapSmtp(object):
if not self._smtp_service:
try:
self.start()
- except Exception as e:
+ except:
logger.warning("Couldn't start the SMTP server now, will try again when the user tries to use it")
return False
return True
diff --git a/service/pixelated/bitmask_libraries/soledad.py b/service/pixelated/bitmask_libraries/soledad.py
index e6607bde..1c46f2ab 100644
--- a/service/pixelated/bitmask_libraries/soledad.py
+++ b/service/pixelated/bitmask_libraries/soledad.py
@@ -18,7 +18,7 @@ import errno
import os
from leap.keymanager import KeyManager
from leap.soledad.client import Soledad
-from leap.soledad.common.crypto import WrongMac, UnknownMacMethod, MacMethods
+from leap.soledad.common.crypto import WrongMac, UnknownMacMethod
from .certs import which_bundle
@@ -69,7 +69,7 @@ class SoledadSession(object):
return Soledad(self.leap_srp_session.uuid, unicode(encryption_passphrase), secrets,
local_db, server_url, which_bundle(self.provider), self.leap_srp_session.token, defer_encryption=False)
- except (WrongMac, UnknownMacMethod, MacMethods), e:
+ except (WrongMac, UnknownMacMethod), e:
raise SoledadWrongPassphraseException(e)
def _leap_path(self):