1 /* 2 * Copyright (C) 2022 Huawei Technologies Co., Ltd. 3 * Licensed under the Mulan PSL v2. 4 * You can use this software according to the terms and conditions of the Mulan PSL v2. 5 * You may obtain a copy of Mulan PSL v2 at: 6 * http://license.coscl.org.cn/MulanPSL2 7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 9 * PURPOSE. 10 * See the Mulan PSL v2 for more details. 11 */ 12 13 #ifndef CRYPTO_HAL_EC_H_ 14 #define CRYPTO_HAL_EC_H_ 15 16 #include <crypto_driver_adaptor.h> 17 18 int32_t tee_crypto_ecc_generate_keypair(uint32_t key_size, uint32_t curve, 19 struct ecc_pub_key_t *public_key, struct ecc_priv_key_t *private_key, uint32_t engine); 20 int32_t tee_crypto_ecc_encrypt(uint32_t alg_type, const struct ecc_pub_key_t *public_key, 21 const struct asymmetric_params_t *ec_params, const struct memref_t *data_in, 22 struct memref_t *data_out, uint32_t engine); 23 int32_t tee_crypto_ecc_decrypt(uint32_t alg_type, const struct ecc_priv_key_t *private_key, 24 const struct asymmetric_params_t *ec_params, const struct memref_t *data_in, 25 struct memref_t *data_out, uint32_t engine); 26 int32_t tee_crypto_ecc_sign_digest(uint32_t alg_type, const struct ecc_priv_key_t *private_key, 27 const struct asymmetric_params_t *ec_params, const struct memref_t *digest, 28 struct memref_t *signature, uint32_t engine); 29 int32_t tee_crypto_ecc_verify_digest(uint32_t alg_type, const struct ecc_pub_key_t *public_key, 30 const struct asymmetric_params_t *ec_params, const struct memref_t *digest, 31 const struct memref_t *signature, uint32_t engine); 32 33 #endif 34