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"}' |