1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2022-2023, STMicroelectronics - All Rights Reserved 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef STM32_PKA_H 8*91f16700Schasinglulu #define STM32_PKA_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <stdint.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu enum stm32_pka_ecdsa_curve_id { 13*91f16700Schasinglulu PKA_NIST_P256, 14*91f16700Schasinglulu PKA_BRAINPOOL_P256R1, 15*91f16700Schasinglulu PKA_BRAINPOOL_P256T1, 16*91f16700Schasinglulu PKA_NIST_P521, 17*91f16700Schasinglulu }; 18*91f16700Schasinglulu 19*91f16700Schasinglulu struct stm32_pka_platdata { 20*91f16700Schasinglulu uintptr_t base; 21*91f16700Schasinglulu unsigned long clock_id; 22*91f16700Schasinglulu unsigned int reset_id; 23*91f16700Schasinglulu }; 24*91f16700Schasinglulu 25*91f16700Schasinglulu int stm32_pka_init(void); 26*91f16700Schasinglulu int stm32_pka_ecdsa_verif(void *hash, unsigned int hash_size, 27*91f16700Schasinglulu void *sig_r_ptr, unsigned int sig_r_size, 28*91f16700Schasinglulu void *sig_s_ptr, unsigned int sig_s_size, 29*91f16700Schasinglulu void *pk_x_ptr, unsigned int pk_x_size, 30*91f16700Schasinglulu void *pk_y_ptr, unsigned int pk_y_size, 31*91f16700Schasinglulu enum stm32_pka_ecdsa_curve_id cid); 32*91f16700Schasinglulu 33*91f16700Schasinglulu #endif /* STM32_PKA_H */ 34