163ee04c8SGilad Ben-Yossef /* SPDX-License-Identifier: GPL-2.0 */ 203963caeSGilad Ben-Yossef /* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */ 363ee04c8SGilad Ben-Yossef 463ee04c8SGilad Ben-Yossef /* \file cc_cipher.h 563ee04c8SGilad Ben-Yossef * ARM CryptoCell Cipher Crypto API 663ee04c8SGilad Ben-Yossef */ 763ee04c8SGilad Ben-Yossef 863ee04c8SGilad Ben-Yossef #ifndef __CC_CIPHER_H__ 963ee04c8SGilad Ben-Yossef #define __CC_CIPHER_H__ 1063ee04c8SGilad Ben-Yossef 1163ee04c8SGilad Ben-Yossef #include <linux/kernel.h> 1263ee04c8SGilad Ben-Yossef #include <crypto/algapi.h> 1363ee04c8SGilad Ben-Yossef #include "cc_driver.h" 1463ee04c8SGilad Ben-Yossef #include "cc_buffer_mgr.h" 1563ee04c8SGilad Ben-Yossef 1663ee04c8SGilad Ben-Yossef struct cipher_req_ctx { 1763ee04c8SGilad Ben-Yossef struct async_gen_req_ctx gen_ctx; 1863ee04c8SGilad Ben-Yossef enum cc_req_dma_buf_type dma_buf_type; 1963ee04c8SGilad Ben-Yossef u32 in_nents; 2063ee04c8SGilad Ben-Yossef u32 in_mlli_nents; 2163ee04c8SGilad Ben-Yossef u32 out_nents; 2263ee04c8SGilad Ben-Yossef u32 out_mlli_nents; 2363ee04c8SGilad Ben-Yossef u8 *iv; 2463ee04c8SGilad Ben-Yossef struct mlli_params mlli_params; 2563ee04c8SGilad Ben-Yossef }; 2663ee04c8SGilad Ben-Yossef 2763ee04c8SGilad Ben-Yossef int cc_cipher_alloc(struct cc_drvdata *drvdata); 2863ee04c8SGilad Ben-Yossef 2963ee04c8SGilad Ben-Yossef int cc_cipher_free(struct cc_drvdata *drvdata); 3063ee04c8SGilad Ben-Yossef 31a794d8d8SGilad Ben-Yossef struct cc_hkey_info { 32a794d8d8SGilad Ben-Yossef u16 keylen; 33a794d8d8SGilad Ben-Yossef u8 hw_key1; 34a794d8d8SGilad Ben-Yossef u8 hw_key2; 35a794d8d8SGilad Ben-Yossef } __packed; 3663ee04c8SGilad Ben-Yossef 37a794d8d8SGilad Ben-Yossef #define CC_HW_KEY_SIZE sizeof(struct cc_hkey_info) 3863ee04c8SGilad Ben-Yossef 3963ee04c8SGilad Ben-Yossef #endif /*__CC_CIPHER_H__*/ 40