diff options
Diffstat (limited to 'client/src')
-rw-r--r-- | client/src/leap/soledad/client/_crypto.py | 15 | ||||
-rw-r--r-- | client/src/leap/soledad/client/api.py | 42 | ||||
-rw-r--r-- | client/src/leap/soledad/client/http_target/send.py | 2 | ||||
-rw-r--r-- | client/src/leap/soledad/client/sqlcipher.py | 1 |
4 files changed, 7 insertions, 53 deletions
diff --git a/client/src/leap/soledad/client/_crypto.py b/client/src/leap/soledad/client/_crypto.py index deba5590..cee4f0f4 100644 --- a/client/src/leap/soledad/client/_crypto.py +++ b/client/src/leap/soledad/client/_crypto.py @@ -128,14 +128,14 @@ def decrypt_sym(data, key, iv): return plaintext - class BlobEncryptor(object): """ Encrypts a payload associated with a given Document. """ - def __init__(self, doc_info, content_fd, result=None, secret=None, iv=None): + def __init__(self, doc_info, content_fd, result=None, secret=None, + iv=None): if iv is None: iv = os.urandom(16) else: @@ -181,12 +181,12 @@ class BlobEncryptor(object): def write(data): self._preamble.write(data) self._hmac.write(data) - + current_time = int(time.time()) write(b'\x80') write(struct.pack( - 'Qbb', + 'Qbb', current_time, ENC_SCHEME.symkey, ENC_METHOD.aes_256_ctr)) @@ -299,12 +299,11 @@ class AESEncryptor(object): cipher = _get_aes_ctr_cipher(key, iv) self.encryptor = cipher.encryptor() - + if fd is None: fd = BytesIO() self.fd = fd - self.done = False def write(self, data): @@ -334,7 +333,6 @@ class HMACWriter(object): self.result.write(self._hmac.digest()) - class VerifiedEncrypter(object): implements(interfaces.IConsumer) @@ -346,7 +344,7 @@ class VerifiedEncrypter(object): def write(self, data): enc_chunk = self.crypter.write(data) self.hmac.write(enc_chunk) - + class AESDecryptor(object): @@ -369,7 +367,6 @@ class AESDecryptor(object): self.done = False self.deferred = defer.Deferred() - def write(self, data): decrypted = self.decryptor.update(data) self.fd.write(decrypted) diff --git a/client/src/leap/soledad/client/api.py b/client/src/leap/soledad/client/api.py index de44f526..8ce77d24 100644 --- a/client/src/leap/soledad/client/api.py +++ b/client/src/leap/soledad/client/api.py @@ -131,7 +131,7 @@ class Soledad(object): def __init__(self, uuid, passphrase, secrets_path, local_db_path, server_url, cert_file, shared_db=None, - auth_token=None, defer_encryption=False, syncable=True): + auth_token=None, syncable=True): """ Initialize configuration, cryptographic keys and dbs. @@ -168,11 +168,6 @@ class Soledad(object): Authorization token for accessing remote databases. :type auth_token: str - :param defer_encryption: - Whether to defer encryption of documents, or do it - inline while syncing. - :type defer_encryption: bool - :param syncable: If set to ``False``, this database will not attempt to synchronize with remote replicas (default is ``True``) @@ -343,40 +338,6 @@ class Soledad(object): """ return self._dbpool.runU1DBQuery(meth, *args, **kw) - #def stream_encryption(self, result, doc): - #print 'streaming encryption' - #contentfd = StringIO() - #contentfd.write(str(doc.get_json())) - #contentfd.seek(0) -# - #sikret = self._secrets.remote_storage_secret - #docinfo = DocInfo(doc.doc_id, doc.rev) -# - # ------------------------------------------------------- - # TODO need to pass a fd to stage this!!! - # in the long run, we could connect this to the uploader - # but in the meantime, I thikn it's easy if we just - # serialize this to disk. - # - # To do this: - # 1. open a file, with a known name: - # soledad/staging/docid@rev.bin - # 2. pass that fd to BlobEncrypter as result (it's a fd) - # 3. On the upload part of the sync, just open again a read-only fd - # to this staging path and read it. - # that's the encrypted blob, ready to upload! - # ------------------------------------------------------- -# - #crypter = BlobEncryptor( - #docinfo, contentfd, secret=sikret) - #del doc -# -# - #d = crypter.encrypt() - #d.addCallback(lambda _: result) - #return d - - def put_doc(self, doc): """ Update a document. @@ -841,7 +802,6 @@ class Soledad(object): token = property(_get_token, _set_token, doc='The authentication Token.') - # # ISecretsStorage # diff --git a/client/src/leap/soledad/client/http_target/send.py b/client/src/leap/soledad/client/http_target/send.py index e562a128..431f06f6 100644 --- a/client/src/leap/soledad/client/http_target/send.py +++ b/client/src/leap/soledad/client/http_target/send.py @@ -42,8 +42,6 @@ class HTTPDocSender(object): # Any class inheriting from this one should provide a meaningful attribute # if the sync status event is meant to be used somewhere else. - staging_path = os.path.join(get_path_prefix(), 'leap', 'soledad', 'staging') - uuid = 'undefined' userid = 'undefined' diff --git a/client/src/leap/soledad/client/sqlcipher.py b/client/src/leap/soledad/client/sqlcipher.py index 8cbc3aea..618b17b9 100644 --- a/client/src/leap/soledad/client/sqlcipher.py +++ b/client/src/leap/soledad/client/sqlcipher.py @@ -266,7 +266,6 @@ class SQLCipherDatabase(sqlite_backend.SQLitePartialExpandDatabase): 'ALTER TABLE document ' 'ADD COLUMN syncable BOOL NOT NULL DEFAULT TRUE') - # # SQLCipher API methods # |