def decrypt_256_ecb(data, key, padding=True): key = fixed_length_key(key, 32) r = "" for i in range(0, len(data), 16): r += aes256dec(data[i:i + 16], key) if padding: return pkcs7.remove_padding(r) else: return r
def decrypt_raw(data, key, iv="\0" * 32): "Decrypt data" key = fixed_length_key(key, 32) plaintext = "" for i in range(0, len(data), 32): block = data[i:i + 32] iv = hash(xor_str(iv, key)) plaintext += xor_str(iv, block) plaintext = remove_padding(plaintext) return plaintext
def decrypt_256_cbc(data, key, padding=True, gen_iv=True): key = fixed_length_key(key, 32) r = "" if gen_iv: iv = data[:16] data = data[16:] else: iv = "\0" * 16 for i in range(0, len(data), 16): cipherblock = data[i:i + 16] r += xor_str(aes256dec(cipherblock, key), iv) iv = cipherblock if padding: return pkcs7.remove_padding(r) else: return r