diff options
-rw-r--r-- | mail/changes/next-changelog.rst | 1 | ||||
-rw-r--r-- | mail/pkg/requirements-latest.pip | 2 | ||||
-rw-r--r-- | mail/src/leap/mail/adaptors/soledad.py | 3 | ||||
-rw-r--r-- | mail/src/leap/mail/walk.py | 7 |
4 files changed, 7 insertions, 6 deletions
diff --git a/mail/changes/next-changelog.rst b/mail/changes/next-changelog.rst index 625dcacb..79792460 100644 --- a/mail/changes/next-changelog.rst +++ b/mail/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/mail/pkg/requirements-latest.pip b/mail/pkg/requirements-latest.pip index f561d4e0..846a319c 100644 --- a/mail/pkg/requirements-latest.pip +++ b/mail/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/mail/src/leap/mail/adaptors/soledad.py b/mail/src/leap/mail/adaptors/soledad.py index 7f2b1cf6..f4af020d 100644 --- a/mail/src/leap/mail/adaptors/soledad.py +++ b/mail/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/mail/src/leap/mail/walk.py b/mail/src/leap/mail/walk.py index 7be1bb87..8693bdd2 100644 --- a/mail/src/leap/mail/walk.py +++ b/mail/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() """ |