• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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