18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/* \file cc_cipher.h 58c2ecf20Sopenharmony_ci * ARM CryptoCell Cipher Crypto API 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef __CC_CIPHER_H__ 98c2ecf20Sopenharmony_ci#define __CC_CIPHER_H__ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/kernel.h> 128c2ecf20Sopenharmony_ci#include <crypto/algapi.h> 138c2ecf20Sopenharmony_ci#include "cc_driver.h" 148c2ecf20Sopenharmony_ci#include "cc_buffer_mgr.h" 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistruct cipher_req_ctx { 178c2ecf20Sopenharmony_ci struct async_gen_req_ctx gen_ctx; 188c2ecf20Sopenharmony_ci enum cc_req_dma_buf_type dma_buf_type; 198c2ecf20Sopenharmony_ci u32 in_nents; 208c2ecf20Sopenharmony_ci u32 in_mlli_nents; 218c2ecf20Sopenharmony_ci u32 out_nents; 228c2ecf20Sopenharmony_ci u32 out_mlli_nents; 238c2ecf20Sopenharmony_ci u8 *iv; 248c2ecf20Sopenharmony_ci struct mlli_params mlli_params; 258c2ecf20Sopenharmony_ci}; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciint cc_cipher_alloc(struct cc_drvdata *drvdata); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciint cc_cipher_free(struct cc_drvdata *drvdata); 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cistruct cc_hkey_info { 328c2ecf20Sopenharmony_ci u16 keylen; 338c2ecf20Sopenharmony_ci u8 hw_key1; 348c2ecf20Sopenharmony_ci u8 hw_key2; 358c2ecf20Sopenharmony_ci} __packed; 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define CC_HW_KEY_SIZE sizeof(struct cc_hkey_info) 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#endif /*__CC_CIPHER_H__*/ 40