162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci/* \file cc_cipher.h 562306a36Sopenharmony_ci * ARM CryptoCell Cipher Crypto API 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef __CC_CIPHER_H__ 962306a36Sopenharmony_ci#define __CC_CIPHER_H__ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <linux/kernel.h> 1262306a36Sopenharmony_ci#include <crypto/algapi.h> 1362306a36Sopenharmony_ci#include "cc_driver.h" 1462306a36Sopenharmony_ci#include "cc_buffer_mgr.h" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_cistruct cipher_req_ctx { 1762306a36Sopenharmony_ci struct async_gen_req_ctx gen_ctx; 1862306a36Sopenharmony_ci enum cc_req_dma_buf_type dma_buf_type; 1962306a36Sopenharmony_ci u32 in_nents; 2062306a36Sopenharmony_ci u32 in_mlli_nents; 2162306a36Sopenharmony_ci u32 out_nents; 2262306a36Sopenharmony_ci u32 out_mlli_nents; 2362306a36Sopenharmony_ci u8 *iv; 2462306a36Sopenharmony_ci struct mlli_params mlli_params; 2562306a36Sopenharmony_ci}; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciint cc_cipher_alloc(struct cc_drvdata *drvdata); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciint cc_cipher_free(struct cc_drvdata *drvdata); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cistruct cc_hkey_info { 3262306a36Sopenharmony_ci u16 keylen; 3362306a36Sopenharmony_ci u8 hw_key1; 3462306a36Sopenharmony_ci u8 hw_key2; 3562306a36Sopenharmony_ci} __packed; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#define CC_HW_KEY_SIZE sizeof(struct cc_hkey_info) 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci#endif /*__CC_CIPHER_H__*/ 40