summaryrefslogtreecommitdiff
path: root/src/leap/soledad/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/soledad/__init__.py')
-rw-r--r--src/leap/soledad/__init__.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/leap/soledad/__init__.py b/src/leap/soledad/__init__.py
index c83627f0..e11b8319 100644
--- a/src/leap/soledad/__init__.py
+++ b/src/leap/soledad/__init__.py
@@ -8,7 +8,6 @@ import random
import hmac
from leap.soledad.backends import sqlcipher
from leap.soledad.util import GPGWrapper
-import util
class Soledad(object):
@@ -22,13 +21,17 @@ class Soledad(object):
# other configs
SECRET_LENGTH = 50
- def __init__(self, user_email, gpghome=None):
+ def __init__(self, user_email, gpghome=None, initialize=True):
self._user_email = user_email
if not os.path.isdir(self.PREFIX):
os.makedirs(self.PREFIX)
if not gpghome:
gpghome = self.GNUPG_HOME
- self._gpg = util.GPGWrapper(gpghome=gpghome)
+ self._gpg = GPGWrapper(gpghome=gpghome)
+ if initialize:
+ self._initialize()
+
+ def _initialize(self):
# load/generate OpenPGP keypair
if not self._has_openpgp_keypair():
self._gen_openpgp_keypair()
@@ -40,7 +43,11 @@ class Soledad(object):
# instantiate u1db
# TODO: verify if secret for sqlcipher should be the same as the one
# for symmetric encryption.
- self._db = sqlcipher.open(self.LOCAL_DB_PATH, True, self._secret)
+ self._db = sqlcipher.open(self.LOCAL_DB_PATH, True, self._secret,
+ soledad=self)
+
+ def close(self):
+ self._db.close()
#-------------------------------------------------------------------------
# Management of secret for symmetric encryption
@@ -64,7 +71,7 @@ class Soledad(object):
try:
with open(self.SECRET_PATH) as f:
self._secret = str(self._gpg.decrypt(f.read()))
- except IOError as e:
+ except IOError:
raise IOError('Failed to open secret file %s.' % self.SECRET_PATH)
def _gen_secret(self):
@@ -207,6 +214,6 @@ class Soledad(object):
Synchronize the local encrypted database with LEAP server.
"""
# TODO: create authentication scheme for sync with server.
- return self._db.sync(url, creds=None, autocreate=True, soledad=self)
+ return self._db.sync(url, creds=None, autocreate=True)
__all__ = ['util']