summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2016-02-11 01:20:33 +0100
committerRuben Pollan <meskio@sindominio.net>2016-02-11 01:20:33 +0100
commitf2fa5804879f6d7614d05537b042be3586958e7f (patch)
treefaba24b3afe00ac8e664b7a465ee32f96da73ddf
parent51e6f7a5eb8cb3e5bd69e4c55c5360b37a6f2111 (diff)
[feat] Use cryptography instead of pycryptopp to reduce dependencies.
* Resolves: #7889
-rw-r--r--changes/next-changelog.rst1
-rw-r--r--pkg/requirements-latest.pip2
-rw-r--r--src/leap/mail/adaptors/soledad.py3
-rw-r--r--src/leap/mail/walk.py7
4 files changed, 7 insertions, 6 deletions
diff --git a/changes/next-changelog.rst b/changes/next-changelog.rst
index 625dcac..7979246 100644
--- a/changes/next-changelog.rst
+++ b/changes/next-changelog.rst
@@ -12,6 +12,7 @@ Features
~~~~~~~~
- `#7656 <https://leap.se/code/issues/7656>`_: Emit multi-user aware events.
- `#4008 <https://leap.se/code/issues/4008>`_: Add token-based authentication to local IMAP/SMTP services.
+- `#7889 <https://leap.se/code/issues/7889>`_: Use cryptography instead of pycryptopp to reduce dependencies.
- Use twisted.cred to authenticate IMAP users.
- `#1234 <https://leap.se/code/issues/1234>`_: Description of the new feature corresponding with issue #1234.
diff --git a/pkg/requirements-latest.pip b/pkg/requirements-latest.pip
index f561d4e..846a319 100644
--- a/pkg/requirements-latest.pip
+++ b/pkg/requirements-latest.pip
@@ -1,7 +1,5 @@
--index-url https://pypi.python.org/simple/
-pycryptopp
-
--allow-external u1db --allow-unverified u1db
--allow-external dirspec --allow-unverified dirspec
-e 'git+https://github.com/pixelated-project/leap_pycommon.git@develop#egg=leap.common'
diff --git a/src/leap/mail/adaptors/soledad.py b/src/leap/mail/adaptors/soledad.py
index 7f2b1cf..f4af020 100644
--- a/src/leap/mail/adaptors/soledad.py
+++ b/src/leap/mail/adaptors/soledad.py
@@ -22,7 +22,6 @@ import re
from collections import defaultdict
from email import message_from_string
-from pycryptopp.hash import sha256
from twisted.internet import defer
from twisted.python import log
from zope.interface import implements
@@ -1208,7 +1207,7 @@ def _split_into_parts(raw):
def _parse_msg(raw):
msg = message_from_string(raw)
parts = walk.get_parts(msg)
- chash = sha256.SHA256(raw).hexdigest()
+ chash = walk.get_hash(raw)
multi = msg.is_multipart()
return msg, parts, chash, multi
diff --git a/src/leap/mail/walk.py b/src/leap/mail/walk.py
index 7be1bb8..8693bdd 100644
--- a/src/leap/mail/walk.py
+++ b/src/leap/mail/walk.py
@@ -17,13 +17,16 @@
"""
Utilities for walking along a message tree.
"""
-from pycryptopp.hash import sha256
+from cryptography.hazmat.backends import default_backend
+from cryptography.hazmat.primitives import hashes
from leap.mail.utils import first
def get_hash(s):
- return sha256.SHA256(s).hexdigest()
+ digest = hashes.Hash(hashes.SHA256(), default_backend())
+ digest.update(s)
+ return digest.finalize().encode("hex").upper()
"""