xref: /optee_os/core/drivers/crypto/hisilicon/hpre_dh.h (revision 5d5d7d0b1c038a6836be9f0b38585f5aa6a4dd01)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2022-2024, HiSilicon Technologies Co., Ltd.
4  */
5 
6 #ifndef __HPRE_DH_H__
7 #define __HPRE_DH_H__
8 
9 #include <stdint.h>
10 #include <tee_api_types.h>
11 #include <types_ext.h>
12 
13 #define HPRE_DH_MAX_KEY_BYTES 512
14 #define HPRE_DH_TOTAL_BUF_SIZE(key_bytes) ((key_bytes) * 4)
15 
16 struct hpre_dh_msg {
17 	uint8_t *x_p; /* X and p data in order */
18 	paddr_t x_p_dma;
19 	uint8_t *g;
20 	paddr_t g_dma;
21 	uint8_t *out;
22 	paddr_t out_dma;
23 	uint32_t alg_type;
24 	uint32_t key_bytes;
25 	uint32_t xbytes;
26 	uint32_t pbytes;
27 	uint32_t gbytes;
28 	uint32_t out_bytes;
29 };
30 
31 TEE_Result hpre_dh_init(void);
32 
33 #endif
34