| /* |
| * 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 |