There are several places that need to determine the security level that
an LTK can provide. This patch adds a convenience function for this to
help make the code more readable.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
        memcpy(cp.ltk, ltk->val, sizeof(ltk->val));
        cp.handle = cpu_to_le16(conn->handle);
 
-       if (ltk->authenticated)
-               conn->pending_sec_level = BT_SECURITY_HIGH;
-       else
-               conn->pending_sec_level = BT_SECURITY_MEDIUM;
+       conn->pending_sec_level = smp_ltk_sec_level(ltk);
 
        conn->enc_key_size = ltk->enc_size;
 
 
        if (!key)
                return false;
 
-       if (sec_level > BT_SECURITY_MEDIUM && !key->authenticated)
+       if (smp_ltk_sec_level(key) < sec_level)
                return false;
 
        if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &hcon->flags))
 
        SMP_LTK_SLAVE,
 };
 
+static inline u8 smp_ltk_sec_level(struct smp_ltk *key)
+{
+       if (key->authenticated)
+               return BT_SECURITY_HIGH;
+
+       return BT_SECURITY_MEDIUM;
+}
+
 /* SMP Commands */
 bool smp_sufficient_security(struct hci_conn *hcon, u8 sec_level);
 int smp_conn_security(struct hci_conn *hcon, __u8 sec_level);