def find_block_size(): global key if key is None: key = crypto.generate_bytes(16) # One block len1 = len(crypto.encryption_oracle2(b'', key)) len2 = 0 i = 0 while len2 <= len1: len2 = len(crypto.encryption_oracle2(bytearray([0] * i), key)) i += 1 len3 = len2 - len1 return len3
def find_block_size(): global key if key is None: key = crypto.generate_bytes(16) # One block len1 = len(crypto.encryption_oracle2(b'', key)) len2 = 0 i = 0 while len2 <= len1: len2 = len(crypto.encryption_oracle2(bytearray([0] * i), key)) i += 1 len3 = len2 - len1 return len3 block_size = find_block_size() print block_size print 'Number of blocks: ' + str(len(crypto.encryption_oracle2(b'', key)) / block_size) # Check for ECB if crypto.score_ecb(crypto.encryption_oracle2(bytearray([0] * 47), key)) >= 1: print "ECB" discovered = "" for n in range(1, len(crypto.encryption_oracle2(b'', key)) + 1): discovered += crypto.brute_ecb_character2(crypto.encryption_oracle2, key, n, discovered) print discovered