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