diff options
Diffstat (limited to 'src/leap/soledad/__init__.py')
-rw-r--r-- | src/leap/soledad/__init__.py | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/leap/soledad/__init__.py b/src/leap/soledad/__init__.py index 26e982ba..c83627f0 100644 --- a/src/leap/soledad/__init__.py +++ b/src/leap/soledad/__init__.py @@ -10,12 +10,13 @@ from leap.soledad.backends import sqlcipher from leap.soledad.util import GPGWrapper import util + class Soledad(object): # paths - PREFIX = os.environ['HOME'] + '/.config/leap/soledad' - SECRET_PATH = PREFIX + '/secret.gpg' - GNUPG_HOME = PREFIX + '/gnupg' + PREFIX = os.environ['HOME'] + '/.config/leap/soledad' + SECRET_PATH = PREFIX + '/secret.gpg' + GNUPG_HOME = PREFIX + '/gnupg' LOCAL_DB_PATH = PREFIX + '/soledad.u1db' # other configs @@ -47,7 +48,8 @@ class Soledad(object): def _has_secret(self): """ - Verify if secret for symmetric encryption exists on local encrypted file. + Verify if secret for symmetric encryption exists on local encrypted + file. """ # TODO: verify if file is a GPG-encrypted file and if we have the # corresponding private key for decryption. @@ -61,16 +63,20 @@ class Soledad(object): """ try: with open(self.SECRET_PATH) as f: - self._secret = str(self._gpg.decrypt(f.read())) + self._secret = str(self._gpg.decrypt(f.read())) except IOError as e: - raise IOError('Failed to open secret file %s.' % self.SECRET_PATH) + raise IOError('Failed to open secret file %s.' % self.SECRET_PATH) def _gen_secret(self): """ - Generate a secret for symmetric encryption and store in a local encrypted file. + Generate a secret for symmetric encryption and store in a local + encrypted file. """ - self._secret = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(self.SECRET_LENGTH)) - ciphertext = self._gpg.encrypt(self._secret, self._fingerprint, self._fingerprint) + self._secret = ''.join(random.choice(string.ascii_uppercase + + string.digits) for x in + range(self.SECRET_LENGTH)) + ciphertext = self._gpg.encrypt(self._secret, self._fingerprint, + self._fingerprint) f = open(self.SECRET_PATH, 'w') f.write(str(ciphertext)) f.close() @@ -95,11 +101,11 @@ class Soledad(object): Generate an OpenPGP keypair for this user. """ params = self._gpg.gen_key_input( - key_type='RSA', - key_length=4096, - name_real=self._user_email, - name_email=self._user_email, - name_comment='Generated by LEAP Soledad.') + key_type='RSA', + key_length=4096, + name_real=self._user_email, + name_email=self._user_email, + name_comment='Generated by LEAP Soledad.') self._gpg.gen_key(params) def _load_openpgp_keypair(self): @@ -124,7 +130,8 @@ class Soledad(object): Encrypt data. """ return str(self._gpg.encrypt(data, self._fingerprint, sign=sign, - passphrase=passphrase, symmetric=symmetric)) + passphrase=passphrase, + symmetric=symmetric)) def encrypt_symmetric(self, doc_id, data, sign=None): """ @@ -203,4 +210,3 @@ class Soledad(object): return self._db.sync(url, creds=None, autocreate=True, soledad=self) __all__ = ['util'] - |