1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (C) 2023 ProvenRun S.A.S 4 */ 5 6 #ifndef ECC_H 7 #define ECC_H 8 9 #include <crypto/crypto.h> 10 #include <stdint.h> 11 #include <stddef.h> 12 #include <tee_api_types.h> 13 14 TEE_Result versal_ecc_verify(uint32_t algo, struct ecc_public_key *key, 15 const uint8_t *msg, size_t msg_len, 16 const uint8_t *sig, size_t sig_len); 17 TEE_Result versal_ecc_sign(uint32_t algo, struct ecc_keypair *key, 18 const uint8_t *msg, size_t msg_len, 19 uint8_t *sig, size_t *sig_len); 20 #ifdef CFG_VERSAL_PKI 21 TEE_Result versal_ecc_sign_ephemeral(uint32_t algo, size_t bytes, 22 struct ecc_keypair *key, 23 struct ecc_keypair *ephemeral, 24 const uint8_t *msg, size_t msg_len, 25 uint8_t *sig, size_t *sig_len); 26 #endif 27 28 TEE_Result versal_ecc_gen_keypair(struct ecc_keypair *s); 29 #ifdef CFG_VERSAL_PKI_PWCT 30 TEE_Result versal_ecc_keypair_pwct(struct ecc_keypair *s); 31 #endif 32 33 TEE_Result versal_ecc_hw_init(void); 34 TEE_Result versal_ecc_kat_test(void); 35 36 #endif 37