blob: 1f9b358f30b9d0b309b5fde7d78efc8f98258da9 [file] [log] [blame]
/* 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*/