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_DERIVE_KEY_H 14 #define CRYPTO_HAL_DERIVE_KEY_H 15 16 #include <crypto_driver_adaptor.h> 17 18 int32_t tee_crypto_dh_generate_key(const struct dh_key_t *dh_generate_key_data, 19 struct memref_t *pub_key, struct memref_t *priv_key, uint32_t engine); 20 int32_t tee_crypto_dh_derive_key(const struct dh_key_t *dh_derive_key_data, struct memref_t *secret, uint32_t engine); 21 int32_t tee_crypto_ecdh_derive_key(uint32_t alg_type, const struct ecc_pub_key_t *client_key, 22 const struct ecc_priv_key_t *server_key, const struct asymmetric_params_t *ec_params, 23 struct memref_t *secret, uint32_t engine); 24 int32_t tee_crypto_derive_root_key(uint32_t derive_type, const struct memref_t *data_in, 25 struct memref_t *data_out, uint32_t iter_num); 26 int32_t tee_crypto_pbkdf2_derive_key(const struct memref_t *password, const struct memref_t *salt, 27 uint32_t iterations, uint32_t digest_type, struct memref_t *data_out, uint32_t engine); 28 #endif 29