summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/leap/__init__.py3
-rw-r--r--src/leap/soledad/__init__.py27
-rw-r--r--src/leap/soledad/backends/__init__.py5
-rw-r--r--src/leap/soledad/backends/couch.py4
-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.py6
-rw-r--r--src/leap/soledad/tests/test_couch.py4
-rw-r--r--src/leap/soledad/tests/test_encrypted.py4
-rw-r--r--src/leap/soledad/tests/test_logs.py3
-rw-r--r--src/leap/soledad/tests/test_sqlcipher.py6
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"}'