Opened at 2013-11-27T21:06:50Z
Last modified at 2014-09-11T22:25:49Z
#2120 new defect
Change counter value for AES-CTR
Reported by: | markberger | Owned by: | daira |
---|---|---|---|
Priority: | normal | Milestone: | undecided |
Component: | code | Version: | 1.10.0 |
Keywords: | Cc: | ||
Launchpad Bug: |
Description
In immutable/upload.py we have the following code:
def _hash_and_encrypt_plaintext(self, data, hash_only): assert isinstance(data, (tuple, list)), type(data) data = list(data) cryptdata = [] # we use data.pop(0) instead of 'for chunk in data' to save # memory: each chunk is destroyed as soon as we're done with it. bytes_processed = 0 while data: chunk = data.pop(0) self.log(" read_encrypted handling %dB-sized chunk" % len(chunk), level=log.NOISY) bytes_processed += len(chunk) self._plaintext_hasher.update(chunk) self._update_segment_hash(chunk) # TODO: we have to encrypt the data (even if hash_only==True) # because pycryptopp's AES-CTR implementation doesn't offer a # way to change the counter value. Once pycryptopp acquires # this ability, change this to simply update the counter # before each call to (hash_only==False) _encryptor.process() ciphertext = self._encryptor.process(chunk) if hash_only: self.log(" skipping encryption", level=log.NOISY) else: cryptdata.append(ciphertext) del ciphertext del chunk self._ciphertext_bytes_read += bytes_processed if self._status: progress = float(self._ciphertext_bytes_read) / self._file_size self._status.set_progress(1, progress) return cryptdata
As part of #1382 I am removing the TODO and creating a ticket for this instead.
Change History (1)
comment:1 Changed at 2014-09-11T22:25:49Z by warner
- Component changed from unknown to code
Note: See
TracTickets for help on using
tickets.