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