|  | /* | 
|  | * Copyright (c) 2023 Nordic Semiconductor ASA | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | enum bt_mesh_key_type { | 
|  | BT_MESH_KEY_TYPE_ECB, | 
|  | BT_MESH_KEY_TYPE_CCM, | 
|  | BT_MESH_KEY_TYPE_CMAC, | 
|  | BT_MESH_KEY_TYPE_NET, | 
|  | BT_MESH_KEY_TYPE_APP, | 
|  | BT_MESH_KEY_TYPE_DEV | 
|  | }; | 
|  |  | 
|  | #if defined CONFIG_BT_MESH_USES_MBEDTLS_PSA || defined CONFIG_BT_MESH_USES_TFM_PSA | 
|  |  | 
|  | int bt_mesh_key_import(enum bt_mesh_key_type type, const uint8_t in[16], struct bt_mesh_key *out); | 
|  | int bt_mesh_key_export(uint8_t out[16], const struct bt_mesh_key *in); | 
|  | void bt_mesh_key_assign(struct bt_mesh_key *dst, const struct bt_mesh_key *src); | 
|  | int bt_mesh_key_destroy(const struct bt_mesh_key *key); | 
|  | int bt_mesh_key_compare(const uint8_t raw_key[16], const struct bt_mesh_key *mesh_key); | 
|  |  | 
|  | #elif defined CONFIG_BT_MESH_USES_TINYCRYPT | 
|  |  | 
|  | static inline int bt_mesh_key_import(enum bt_mesh_key_type type, const uint8_t in[16], | 
|  | struct bt_mesh_key *out) | 
|  | { | 
|  | memcpy(out, in, 16); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | static inline int bt_mesh_key_export(uint8_t out[16], const struct bt_mesh_key *in) | 
|  | { | 
|  | memcpy(out, in, 16); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | static inline void bt_mesh_key_assign(struct bt_mesh_key *dst, const struct bt_mesh_key *src) | 
|  | { | 
|  | memcpy(dst, src, sizeof(struct bt_mesh_key)); | 
|  | } | 
|  |  | 
|  | static inline int bt_mesh_key_destroy(const struct bt_mesh_key *key) | 
|  | { | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | static inline int bt_mesh_key_compare(const uint8_t raw_key[16], const struct bt_mesh_key *mesh_key) | 
|  | { | 
|  | return memcmp(mesh_key, raw_key, 16); | 
|  | } | 
|  |  | 
|  | #endif |