From d50b1ac3016a4a29575a53f2407e3abeee14c16c Mon Sep 17 00:00:00 2001 From: Joakim Andersson Date: Tue, 24 Sep 2019 13:50:46 +0200 Subject: [PATCH] Bluetooth: SMP: Move bt_smp_keys_check function up Move the bt_smp_keys_check function above all usage of the function in order to avoid prototype declaration when making the function static. Signed-off-by: Joakim Andersson --- subsys/bluetooth/host/smp.c | 72 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/subsys/bluetooth/host/smp.c b/subsys/bluetooth/host/smp.c index d95a44e8b17..24f0544dc83 100644 --- a/subsys/bluetooth/host/smp.c +++ b/subsys/bluetooth/host/smp.c @@ -308,6 +308,42 @@ no_callbacks: static u8_t legacy_get_pair_method(struct bt_smp *smp, u8_t remote_io); #endif +bool bt_smp_keys_check(struct bt_conn *conn) +{ + if (atomic_test_bit(conn->flags, BT_CONN_FORCE_PAIR)) { + return false; + } + + if (!conn->le.keys) { + conn->le.keys = bt_keys_find(BT_KEYS_LTK_P256, + conn->id, &conn->le.dst); + if (!conn->le.keys) { + conn->le.keys = bt_keys_find(BT_KEYS_LTK, + conn->id, + &conn->le.dst); + } + } + + if (!conn->le.keys || + !(conn->le.keys->keys & (BT_KEYS_LTK | BT_KEYS_LTK_P256))) { + return false; + } + + if (conn->required_sec_level > BT_SECURITY_L2 && + !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED)) { + return false; + } + + if (conn->required_sec_level > BT_SECURITY_L3 && + !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED) && + !(conn->le.keys->keys & BT_KEYS_LTK_P256) && + !(conn->le.keys->enc_size == BT_SMP_MAX_ENC_KEY_SIZE)) { + return false; + } + + return true; +} + static u8_t get_pair_method(struct bt_smp *smp, u8_t remote_io) { struct bt_smp_pairing *req, *rsp; @@ -5058,42 +5094,6 @@ bool bt_smp_get_tk(struct bt_conn *conn, u8_t *tk) return true; } -bool bt_smp_keys_check(struct bt_conn *conn) -{ - if (atomic_test_bit(conn->flags, BT_CONN_FORCE_PAIR)) { - return false; - } - - if (!conn->le.keys) { - conn->le.keys = bt_keys_find(BT_KEYS_LTK_P256, - conn->id, &conn->le.dst); - if (!conn->le.keys) { - conn->le.keys = bt_keys_find(BT_KEYS_LTK, - conn->id, - &conn->le.dst); - } - } - - if (!conn->le.keys || - !(conn->le.keys->keys & (BT_KEYS_LTK | BT_KEYS_LTK_P256))) { - return false; - } - - if (conn->required_sec_level > BT_SECURITY_L2 && - !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED)) { - return false; - } - - if (conn->required_sec_level > BT_SECURITY_L3 && - !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED) && - !(conn->le.keys->keys & BT_KEYS_LTK_P256) && - !(conn->le.keys->enc_size == BT_SMP_MAX_ENC_KEY_SIZE)) { - return false; - } - - return true; -} - void bt_smp_keys_reject(struct bt_conn *conn) { struct bt_smp *smp;