xref: /optee_os/core/drivers/crypto/versal/include/ecc.h (revision fedadb6460b1ea7db709c6f5a0572f5a8cb8e5c9)
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