diff options
author | Helmut Grohne <helmut@subdivi.de> | 2016-04-16 11:22:18 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2016-04-16 11:22:18 +0200 |
commit | 0715cc5f94438d58e2fc59c065a0afbd3dbb525a (patch) | |
tree | 46c396ec3c112f330dd9a41fdefd71dec4f378fa | |
parent | f5684c218a7e7ed1166c0e60394daa05cda311fa (diff) | |
download | debian-dedup-0715cc5f94438d58e2fc59c065a0afbd3dbb525a.tar.gz |
add a validate method to HashedStream
-rw-r--r-- | dedup/hashing.py | 10 | ||||
-rwxr-xr-x | importpkg.py | 5 |
2 files changed, 11 insertions, 4 deletions
diff --git a/dedup/hashing.py b/dedup/hashing.py index 1419811..2a83929 100644 --- a/dedup/hashing.py +++ b/dedup/hashing.py @@ -183,3 +183,13 @@ class HashedStream(object): def hexdigest(self): return self.hashobj.hexdigest() + + def validate(self, hexdigest): + """Soak up any remaining input and validate the read data using the + given hexdigest. + @raises ValueError: when the hash does not match + """ + while self.read(65536): + pass + if self.hexdigest() != hexdigest: + raise ValueError("hash sum mismatch") diff --git a/importpkg.py b/importpkg.py index 2cdefc4..f72cf03 100755 --- a/importpkg.py +++ b/importpkg.py @@ -107,10 +107,7 @@ def main(): stdin = HashedStream(stdin, hashlib.sha256()) process_package(stdin, hash_functions, dumper.represent) if options.hash: - while stdin.read(4096): - pass - if stdin.hexdigest() != options.hash: - raise ValueError("hash sum mismatch") + stdin.validate(options.hash) dumper.represent("commit") dumper.close() |