diff options
| author | Kali Kaneko <kali@leap.se> | 2013-12-10 18:12:50 -0400 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2013-12-10 18:12:50 -0400 | 
| commit | 627ced047be66464f93a9e8ef5bd48893d47f749 (patch) | |
| tree | 55a056b966014c767cc68565c8c98dbaa071c8d1 /common | |
| parent | 8cf19079e6d13005f7042fd25118c33532261f98 (diff) | |
| parent | 3824c35ef173c624b833115b0bf218bc7a79d54d (diff) | |
Merge branch 'debian-0.4.4' into debian
Diffstat (limited to 'common')
| -rw-r--r-- | common/changes/VERSION_COMPAT | 0 | ||||
| -rw-r--r-- | common/pkg/requirements-testing.pip | 5 | ||||
| -rwxr-xr-x | common/pkg/tools/with_venvwrapper.sh | 19 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/_version.py | 4 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/crypto.py | 21 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/tests/test_crypto.py | 9 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/tests/test_soledad.py | 5 | ||||
| -rw-r--r-- | common/src/leap/soledad/common/tests/u1db_tests/README | 8 | 
8 files changed, 49 insertions, 22 deletions
| diff --git a/common/changes/VERSION_COMPAT b/common/changes/VERSION_COMPAT new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/common/changes/VERSION_COMPAT diff --git a/common/pkg/requirements-testing.pip b/common/pkg/requirements-testing.pip index 6ff52ff9..9302450c 100644 --- a/common/pkg/requirements-testing.pip +++ b/common/pkg/requirements-testing.pip @@ -1,10 +1,5 @@  mock -nose2  testscenarios  leap.common  leap.soledad.server  leap.soledad.client - -# Under quarantine... -# I've been able to run all tests with six==1.3 -- kali -# six==1.1.0  # some tests are incompatible with newer versions of six. diff --git a/common/pkg/tools/with_venvwrapper.sh b/common/pkg/tools/with_venvwrapper.sh new file mode 100755 index 00000000..b62bc10f --- /dev/null +++ b/common/pkg/tools/with_venvwrapper.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +#Wraps a command in a virtualenwrapper passed as first argument. +#Example: +#with_virtualenvwrapper.sh leap-bitmask ./run_tests.sh + +wd=`pwd` +alias pyver='python -c "import $1;print $1.__path__[0]; print $1.__version__;"' + +source `which virtualenvwrapper.sh` +echo "Activating virtualenv " $1 +echo "------------------------------------" +workon $1 +cd $wd +echo "running version: " +echo `pyver leap.bitmask` +echo `pyver leap.soledad.common` +echo `pyver leap.keymanager` +$2 $3 $4 $5 diff --git a/common/src/leap/soledad/common/_version.py b/common/src/leap/soledad/common/_version.py index 91d73e6c..7f1169a5 100644 --- a/common/src/leap/soledad/common/_version.py +++ b/common/src/leap/soledad/common/_version.py @@ -5,8 +5,8 @@  # unpacked source archive. Distribution tarballs contain a pre-generated copy  # of this file. -version_version = '0.4.3' -version_full = 'f53e92114dec527edb8ca32dbf01d80c266d0a2d' +version_version = '0.4.4' +version_full = '544994901c871dedf5243672d3ce1f24a78c0ae9'  def get_versions(default={}, verbose=False): diff --git a/common/src/leap/soledad/common/crypto.py b/common/src/leap/soledad/common/crypto.py index 2c6bd7a3..56bb608a 100644 --- a/common/src/leap/soledad/common/crypto.py +++ b/common/src/leap/soledad/common/crypto.py @@ -35,6 +35,13 @@ class EncryptionSchemes(object):      PUBKEY = 'pubkey' +class UnknownEncryptionScheme(Exception): +    """ +    Raised when trying to decrypt from unknown encryption schemes. +    """ +    pass + +  class MacMethods(object):      """      Representation of MAC methods used to authenticate document's contents. @@ -43,6 +50,20 @@ class MacMethods(object):      HMAC = 'hmac' +class UnknownMacMethod(Exception): +    """ +    Raised when trying to authenticate document's content with unknown MAC +    mehtod. +    """ +    pass + + +class WrongMac(Exception): +    """ +    Raised when failing to authenticate document's contents based on MAC. +    """ + +  #  # Crypto utilities for a SoledadDocument.  # diff --git a/common/src/leap/soledad/common/tests/test_crypto.py b/common/src/leap/soledad/common/tests/test_crypto.py index db217bb3..af11bc76 100644 --- a/common/src/leap/soledad/common/tests/test_crypto.py +++ b/common/src/leap/soledad/common/tests/test_crypto.py @@ -40,6 +40,7 @@ from leap.soledad.common.tests import (      KEY_FINGERPRINT,      PRIVATE_KEY,  ) +from leap.soledad.common.crypto import WrongMac, UnknownMacMethod  from leap.soledad.common.tests.u1db_tests import (      simple_doc,      nested_doc, @@ -88,11 +89,9 @@ class RecoveryDocumentTestCase(BaseSoledadTest):      def test_import_recovery_document(self):          rd = self._soledad.export_recovery_document() -        s = self._soledad_instance(user='anotheruser@leap.se') +        s = self._soledad_instance()          s.import_recovery_document(rd)          s._set_secret_id(self._soledad._secret_id) -        self.assertEqual(self._soledad._uuid, -                         s._uuid, 'Failed setting user uuid.')          self.assertEqual(self._soledad._get_storage_secret(),                           s._get_storage_secret(),                           'Failed settinng secret for symmetric encryption.') @@ -164,7 +163,7 @@ class MacAuthTestCase(BaseSoledadTest):          doc.content[target.MAC_KEY] = '1234567890ABCDEF'          # try to decrypt doc          self.assertRaises( -            target.WrongMac, +            WrongMac,              target.decrypt_doc, self._soledad._crypto, doc)      def test_decrypt_with_unknown_mac_method_raises(self): @@ -182,7 +181,7 @@ class MacAuthTestCase(BaseSoledadTest):          doc.content[target.MAC_METHOD_KEY] = 'mymac'          # try to decrypt doc          self.assertRaises( -            target.UnknownMacMethod, +            UnknownMacMethod,              target.decrypt_doc, self._soledad._crypto, doc) diff --git a/common/src/leap/soledad/common/tests/test_soledad.py b/common/src/leap/soledad/common/tests/test_soledad.py index 8970a437..035c5ac5 100644 --- a/common/src/leap/soledad/common/tests/test_soledad.py +++ b/common/src/leap/soledad/common/tests/test_soledad.py @@ -33,6 +33,7 @@ from leap.soledad.common.tests import (  )  from leap import soledad  from leap.soledad.common.document import SoledadDocument +from leap.soledad.common.crypto import WrongMac  from leap.soledad.client import Soledad, PassphraseTooShort  from leap.soledad.client.crypto import SoledadCrypto  from leap.soledad.client.shared_db import SoledadSharedDatabase @@ -119,7 +120,7 @@ class AuxMethodsTestCase(BaseSoledadTest):          sol.change_passphrase(u'654321')          self.assertRaises( -            DatabaseError, +            WrongMac,              self._soledad_instance, 'leap@leap.se',              passphrase=u'123',              prefix=self.rand_prefix) @@ -292,7 +293,7 @@ class SoledadSignalingTestCase(BaseSoledadTest):          sol = self._soledad_instance()          # create a document with secrets          doc = SoledadDocument(doc_id=sol._shared_db_doc_id()) -        doc.content = sol.export_recovery_document(include_uuid=False) +        doc.content = sol.export_recovery_document()          class Stage2MockSharedDB(object): diff --git a/common/src/leap/soledad/common/tests/u1db_tests/README b/common/src/leap/soledad/common/tests/u1db_tests/README index 605f01fa..d543f250 100644 --- a/common/src/leap/soledad/common/tests/u1db_tests/README +++ b/common/src/leap/soledad/common/tests/u1db_tests/README @@ -12,7 +12,6 @@ Dependencies  u1db tests depend on the following python packages: -  nose2    unittest2    mercurial    hgtools @@ -25,10 +24,3 @@ u1db tests depend on the following python packages:    routes    simplejson    cython - -Running tests -------------- - -Use nose2 to run tests: - -  nose2 leap.soledad.tests.u1db_tests | 
