Browse Source

Remove hashing from PlaintextKey.

Not needed since silent disk corruption will be detected
by the repository segment checksum.
Jonas Borgström 12 năm trước cách đây
mục cha
commit
e578d28184
1 tập tin đã thay đổi với 2 bổ sung9 xóa
  1. 2 9
      darc/key.py

+ 2 - 9
darc/key.py

@@ -73,19 +73,12 @@ class PlaintextKey(KeyBase):
         return sha256(data).digest()
 
     def encrypt(self, data):
-        cdata = zlib.compress(data)
-        hash = sha256(cdata).digest()
-        return b''.join([self.TYPE_STR, hash, cdata])
+        return b''.join([self.TYPE_STR, zlib.compress(data)])
 
     def decrypt(self, id, data):
         if data[0] != self.TYPE:
             raise IntegrityError('Invalid encryption envelope')
-        # This is just a hash and not a hmac but it will at least
-        # stop unintentionally corrupted data from hitting zlib.decompress()
-        hash = memoryview(data)[1:33]
-        if memoryview(sha256(memoryview(data)[33:]).digest()) != hash:
-            raise IntegrityError('Payload checksum mismatch')
-        data = zlib.decompress(memoryview(data)[33:])
+        data = zlib.decompress(memoryview(data)[1:])
         if id and sha256(data).digest() != id:
             raise IntegrityError('Chunk id verification failed')
         return data