/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2020 Linaro Limited
 */

#ifndef __AES_ARMV8_CE_H
#define __AES_ARMV8_CE_H

//#include <types_ext.h>
#include <linux/types.h>

/* Prototypes for assembly functions */
uint32_t ce_aes_sub(uint32_t in);
void ce_aes_invert(void *dst, const void *src);
void ce_aes_ecb_encrypt(uint8_t out[], uint8_t const in[], uint8_t const rk[],
			int rounds, int blocks, int first);
void ce_aes_ecb_decrypt(uint8_t out[], uint8_t const in[], uint8_t const rk[],
			int rounds, int blocks, int first);
void ce_aes_cbc_encrypt(uint8_t out[], uint8_t const in[], uint8_t const rk[],
			int rounds, int blocks, uint8_t iv[]);
void ce_aes_cbc_decrypt(uint8_t out[], uint8_t const in[], uint8_t const rk[],
			int rounds, int blocks, uint8_t iv[]);
void ce_aes_ctr_encrypt(uint8_t out[], uint8_t const in[], uint8_t const rk[],
			int rounds, int blocks, uint8_t ctr[], int first);
void ce_aes_xts_encrypt(uint8_t out[], uint8_t const in[], uint8_t const rk1[],
			int rounds, int blocks, uint8_t const rk2[],
			uint8_t iv[]);
void ce_aes_xts_decrypt(uint8_t out[], uint8_t const in[], uint8_t const rk1[],
			int rounds, int blocks, uint8_t const rk2[],
			uint8_t iv[]);
void ce_aes_xor_block(uint8_t out[], uint8_t const op1[], uint8_t const op2[]);

#endif /*__AES_ARMV8_CE_H*/
