def __next__(self): nxt = next(self.gen) for alg in self.state.keys(): checksum = hash_state.restoreHex(self.state[alg], alg) checksum.update(nxt) self.state[alg] = hash_state.serializeHex(checksum) return nxt
def testSimpleHashing(alg): canonical = hashlib.new(alg) state = hash_state.serializeHex(hashlib.new(alg)) for chunk in chunks: checksum = hash_state.restoreHex(state, alg) assert canonical.hexdigest() == checksum.hexdigest() assert canonical.digest() == checksum.digest() canonical.update(chunk) checksum.update(chunk) state = hash_state.serializeHex(checksum) checksum = hash_state.restoreHex(state, alg) assert canonical.hexdigest() == checksum.hexdigest() assert canonical.digest() == checksum.digest()
def testSimpleHashing(iterableBytes, algorithmName): canonicalHash = hashlib.new(algorithmName) runningHash = hashlib.new(algorithmName) runningState = hash_state.serializeHex(runningHash) for chunk in iterableBytes: runningHash = hash_state.restoreHex(runningState, algorithmName) assert canonicalHash.hexdigest() == runningHash.hexdigest() assert canonicalHash.digest() == runningHash.digest() canonicalHash.update(chunk) runningHash.update(chunk) runningState = hash_state.serializeHex(runningHash) runningHash = hash_state.restoreHex(runningState, algorithmName) assert canonicalHash.hexdigest() == runningHash.hexdigest() assert canonicalHash.digest() == runningHash.digest()
def _simpleHashingTest(self, hashType): """ Test the hashing of hash_state against Python's hashlib. :param hashType: String representing the hash algorithm to use. """ officialHasher = hashlib.new(hashType) state = hash_state.serializeHex(hashlib.new(hashType)) for chunk in self.chunks: checksum = hash_state.restoreHex(state, hashType) self.assertEquals(officialHasher.hexdigest(), checksum.hexdigest()) self.assertEquals(officialHasher.digest(), checksum.digest()) officialHasher.update(chunk) checksum.update(chunk) state = hash_state.serializeHex(checksum) checksum = hash_state.restoreHex(state, hashType) self.assertEquals(officialHasher.hexdigest(), checksum.hexdigest()) self.assertEquals(officialHasher.digest(), checksum.digest())
def md5(self): return hash_state.restoreHex(self.state['md5'], 'md5').hexdigest()
def sha256(self): return hash_state.restoreHex(self.state['sha256'], 'sha256').hexdigest()