summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2017-03-15 20:28:23 -0300
committerdrebs <drebs@leap.se>2017-04-04 18:27:33 +0200
commit3ae9343ebe4f3b7ddcdafcee22c987e49dead451 (patch)
tree92a7eac7c09bed83665719243e3e13318f220372 /client
parent26bdafe0445cdd5c1b1174dedfd9292847e47758 (diff)
[feature] send tag header from server
Diffstat (limited to 'client')
-rw-r--r--client/src/leap/soledad/client/_blobs.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/client/src/leap/soledad/client/_blobs.py b/client/src/leap/soledad/client/_blobs.py
index 2cc06146..97d4c39c 100644
--- a/client/src/leap/soledad/client/_blobs.py
+++ b/client/src/leap/soledad/client/_blobs.py
@@ -198,12 +198,17 @@ class BlobManager(object):
logger.info("Staring download of blob: %s" % blob_id)
# TODO this needs to be connected in a tube
uri = self.remote + self.user + '/' + blob_id
- buf = DecrypterBuffer(doc_id, rev, self.secret)
data = yield treq.get(uri)
if data.code == 404:
logger.warn("Blob not found in server: %s" % blob_id)
defer.returnValue(None)
+ elif not data.headers.hasHeader('Tag'):
+ logger.error("Server didn't send a tag header for: %s" % blob_id)
+ defer.returnValue(None)
+ tag = data.headers.getRawHeaders('Tag')[0]
+ tag = base64.urlsafe_b64decode(tag)
+ buf = DecrypterBuffer(doc_id, rev, self.secret, tag)
# incrementally collect the body of the response
yield treq.collect(data, buf.write)