1 /** @file 2 * @brief Keys APIs. 3 */ 4 5 /* 6 * Copyright (c) 2023 Nordic Semiconductor ASA 7 * 8 * SPDX-License-Identifier: Apache-2.0 9 */ 10 11 #ifndef ZEPHYR_INCLUDE_BLUETOOTH_MESH_KEYS_H_ 12 #define ZEPHYR_INCLUDE_BLUETOOTH_MESH_KEYS_H_ 13 14 #include <stdint.h> 15 #if defined CONFIG_BT_MESH_USES_MBEDTLS_PSA || defined CONFIG_BT_MESH_USES_TFM_PSA 16 #include <psa/crypto.h> 17 #endif 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 #if defined CONFIG_BT_MESH_USES_MBEDTLS_PSA || defined CONFIG_BT_MESH_USES_TFM_PSA 24 25 /** The structure that keeps representation of key. */ 26 struct bt_mesh_key { 27 /** PSA key representation is the PSA key identifier. */ 28 psa_key_id_t key; 29 }; 30 31 #elif defined CONFIG_BT_MESH_USES_TINYCRYPT 32 33 /** The structure that keeps representation of key. */ 34 struct bt_mesh_key { 35 /** tinycrypt key representation is the pure key value. */ 36 uint8_t key[16]; 37 }; 38 39 #else 40 #error "Crypto library has not been chosen" 41 #endif 42 43 #ifdef __cplusplus 44 } 45 #endif 46 47 #endif /* ZEPHYR_INCLUDE_BLUETOOTH_MESH_KEYS_H_ */ 48