Explorar el Código

Remove hashing from PlaintextKey.

Not needed since silent disk corruption will be detected
by the repository segment checksum.
Jonas Borgström hace 12 años
padre
commit
e578d28184
Se han modificado 1 ficheros con 2 adiciones y 9 borrados
  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