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