diff options
| -rw-r--r-- | src/leap/__init__.py | 3 | ||||
| -rw-r--r-- | src/leap/soledad/__init__.py | 27 | ||||
| -rw-r--r-- | src/leap/soledad/backends/__init__.py | 5 | ||||
| -rw-r--r-- | src/leap/soledad/backends/couch.py | 4 | ||||
| -rw-r--r-- | src/leap/soledad/backends/leap_backend.py (renamed from src/leap/soledad/backends/leap.py) | 3 | ||||
| -rw-r--r-- | src/leap/soledad/backends/objectstore.py | 6 | ||||
| -rw-r--r-- | src/leap/soledad/tests/test_couch.py | 4 | ||||
| -rw-r--r-- | src/leap/soledad/tests/test_encrypted.py | 4 | ||||
| -rw-r--r-- | src/leap/soledad/tests/test_logs.py | 3 | ||||
| -rw-r--r-- | src/leap/soledad/tests/test_sqlcipher.py | 6 | 
10 files changed, 37 insertions, 28 deletions
diff --git a/src/leap/__init__.py b/src/leap/__init__.py index 5e003931..2adbb34a 100644 --- a/src/leap/__init__.py +++ b/src/leap/__init__.py @@ -6,8 +6,9 @@ website: U{https://leap.se/}  from leap import eip  from leap import baseapp  from leap import util +from leap import soledad -__all__ = [eip, baseapp, util] +__all__ = [eip, baseapp, util, soledad]  __version__ = "unknown"  try: diff --git a/src/leap/soledad/__init__.py b/src/leap/soledad/__init__.py index 3ed82ca7..6c313f77 100644 --- a/src/leap/soledad/__init__.py +++ b/src/leap/soledad/__init__.py @@ -5,10 +5,10 @@  import os  import string  import random -import cStringIO  import hmac -from backends import sqlcipher -from soledad.util import GPGWrapper +from leap.soledad.backends import sqlcipher +from leap.soledad.util import GPGWrapper +import util  class Soledad(object): @@ -27,12 +27,12 @@ class Soledad(object):              os.makedirs(self.PREFIX)          if not gpghome:              gpghome = self.GNUPG_HOME -        self._gpg = GPGWrapper(gpghome=gpghome) -        # load OpenPGP keypair +        self._gpg = util.GPGWrapper(gpghome=gpghome) +        # loaa/generate OpenPGP keypair          if not self._has_openpgp_keypair():              self._gen_openpgp_keypair()          self._load_openpgp_keypair() -        # load secret +        # load/generate secret          if not self._has_secret():              self._gen_secret()          self._load_secret() @@ -42,7 +42,7 @@ class Soledad(object):          self._db = sqlcipher.open(self.U1DB_PATH, True, self._secret)      #------------------------------------------------------------------------- -    # Symmetric secret management +    # Management of secret for symmetric encryption      #-------------------------------------------------------------------------      def _has_secret(self): @@ -76,7 +76,7 @@ class Soledad(object):          f.close()      #------------------------------------------------------------------------- -    # OpenPGP keypair management +    # Management of OpenPGP keypair      #-------------------------------------------------------------------------      def _has_openpgp_keypair(self): @@ -92,7 +92,7 @@ class Soledad(object):      def _gen_openpgp_keypair(self):          """ -        Generate and OpenPGP keypair for this user. +        Generate an OpenPGP keypair for this user.          """          params = self._gpg.gen_key_input(            key_type='RSA', @@ -109,10 +109,13 @@ class Soledad(object):          self._fingerprint = self._gpg.find_key(self._user_email)['fingerprint']      def publish_pubkey(self, keyserver): +        """ +        Publish OpenPGP public key to a keyserver. +        """          pass      #------------------------------------------------------------------------- -    # Data encryption/decryption +    # Data encryption and decryption      #-------------------------------------------------------------------------      def encrypt(self, data, sign=None, passphrase=None, symmetric=False): @@ -143,7 +146,7 @@ class Soledad(object):          return self.decrypt(data, passphrase=h)      #------------------------------------------------------------------------- -    # Document storage/retrieval and sync +    # Document storage, retrieval and sync      #-------------------------------------------------------------------------      def put_doc(self, doc): @@ -197,3 +200,5 @@ class Soledad(object):          """          # TODO: create authentication scheme for sync with server.          return self._db.sync(url, creds=None, autocreate=True) + +__all__ = ['util'] diff --git a/src/leap/soledad/backends/__init__.py b/src/leap/soledad/backends/__init__.py index e69de29b..72907f37 100644 --- a/src/leap/soledad/backends/__init__.py +++ b/src/leap/soledad/backends/__init__.py @@ -0,0 +1,5 @@ +import objectstore + + +__all__ = [ +    'objectstore'] diff --git a/src/leap/soledad/backends/couch.py b/src/leap/soledad/backends/couch.py index ed356fdd..101dd4ea 100644 --- a/src/leap/soledad/backends/couch.py +++ b/src/leap/soledad/backends/couch.py @@ -2,8 +2,8 @@ from u1db import errors  from u1db.remote.http_target import HTTPSyncTarget  from couchdb.client import Server, Document  from couchdb.http import ResourceNotFound -from soledad.backends.objectstore import ObjectStore -from soledad.backends.leap import LeapDocument +from leap.soledad.backends.objectstore import ObjectStore +from leap.soledad.backends.leap_backend import LeapDocument  try:      import simplejson as json diff --git a/src/leap/soledad/backends/leap.py b/src/leap/soledad/backends/leap_backend.py index 9fbd49fe..ced8734c 100644 --- a/src/leap/soledad/backends/leap.py +++ b/src/leap/soledad/backends/leap_backend.py @@ -6,8 +6,7 @@ except ImportError:  from u1db import Document  from u1db.remote.http_target import HTTPSyncTarget  from u1db.remote.http_database import HTTPDatabase -import base64 -from soledad.util import GPGWrapper +from leap.soledad.util import GPGWrapper  class NoDefaultKey(Exception): diff --git a/src/leap/soledad/backends/objectstore.py b/src/leap/soledad/backends/objectstore.py index 61445a1f..9fce88f6 100644 --- a/src/leap/soledad/backends/objectstore.py +++ b/src/leap/soledad/backends/objectstore.py @@ -1,7 +1,7 @@  import uuid  from u1db.backends import CommonBackend  from u1db import errors, Document -from soledad.util import SyncLog, TransactionLog +from leap.soledad import util as soledadutil  class ObjectStore(CommonBackend): @@ -14,8 +14,8 @@ class ObjectStore(CommonBackend):          # with the database is established, so it can ensure that u1db data is          # configured and up-to-date.          self.set_document_factory(Document) -        self._sync_log = SyncLog() -        self._transaction_log = TransactionLog() +        self._sync_log = soledadutil.SyncLog() +        self._transaction_log = soledadutil.TransactionLog()          self._ensure_u1db_data()      #------------------------------------------------------------------------- diff --git a/src/leap/soledad/tests/test_couch.py b/src/leap/soledad/tests/test_couch.py index 4468ae04..b5bf4e9b 100644 --- a/src/leap/soledad/tests/test_couch.py +++ b/src/leap/soledad/tests/test_couch.py @@ -1,6 +1,6 @@  import unittest2 -from soledad.backends.couch import CouchDatabase -from soledad.backends.leap import LeapDocument +from leap.soledad.backends.couch import CouchDatabase +from leap.soledad.backends.leap_backend import LeapDocument  from u1db import errors, vectorclock  try: diff --git a/src/leap/soledad/tests/test_encrypted.py b/src/leap/soledad/tests/test_encrypted.py index eafd258e..4ee03a3c 100644 --- a/src/leap/soledad/tests/test_encrypted.py +++ b/src/leap/soledad/tests/test_encrypted.py @@ -7,8 +7,8 @@ import unittest2 as unittest  import os  import u1db -from soledad import Soledad -from soledad.backends.leap import LeapDocument +from leap.soledad import Soledad +from leap.soledad.backends.leap_backend import LeapDocument  class EncryptedSyncTestCase(unittest.TestCase): diff --git a/src/leap/soledad/tests/test_logs.py b/src/leap/soledad/tests/test_logs.py index d61700f2..072ac1a5 100644 --- a/src/leap/soledad/tests/test_logs.py +++ b/src/leap/soledad/tests/test_logs.py @@ -1,10 +1,9 @@  import unittest2 as unittest -from soledad.util import TransactionLog, SyncLog +from leap.soledad.util import TransactionLog, SyncLog  class LogTestCase(unittest.TestCase): -      def test_transaction_log(self):          data = [            (2, "doc_3", "tran_3"), diff --git a/src/leap/soledad/tests/test_sqlcipher.py b/src/leap/soledad/tests/test_sqlcipher.py index f9e9f681..3bb495ec 100644 --- a/src/leap/soledad/tests/test_sqlcipher.py +++ b/src/leap/soledad/tests/test_sqlcipher.py @@ -27,9 +27,9 @@ from u1db import (      errors,      query_parser,      ) -from soledad.backends import sqlcipher -from soledad.backends.leap import LeapDocument -from soledad import tests +from leap.soledad.backends import sqlcipher +from leap.soledad.backends.leap_backend import LeapDocument +from leap.soledad import tests  simple_doc = '{"key": "value"}'  | 
