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