mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2025-08-13 00:25:54 -04:00
17.1 December ASB work
Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
parent
ba1e29a1b1
commit
f18fb48d8a
35 changed files with 1853 additions and 8 deletions
99
Patches/LineageOS-17.1/android_system_bt/377017.patch
Normal file
99
Patches/LineageOS-17.1/android_system_bt/377017.patch
Normal file
|
@ -0,0 +1,99 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Peng <phui@google.com>
|
||||
Date: Sat, 2 Sep 2023 04:20:10 +0000
|
||||
Subject: [PATCH] Reject access to secure service authenticated from a temp
|
||||
bonding [1]
|
||||
|
||||
Rejecct access to services running on l2cap
|
||||
|
||||
Backport of
|
||||
Idef4ea28eb3d17b0807ab7dc6849433ddc5581b3
|
||||
|
||||
Bug: 294854926
|
||||
Test: m com.android.btservices
|
||||
Ignore-AOSP-First: security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a36757e967ab6d956127cac298134f28ce8f0d6d)
|
||||
Merged-In: Idef4ea28eb3d17b0807ab7dc6849433ddc5581b3
|
||||
Change-Id: Idef4ea28eb3d17b0807ab7dc6849433ddc5581b3
|
||||
---
|
||||
stack/btm/btm_sec.cc | 38 ++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 34 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
|
||||
index 3ba1a6023..d4377a1fe 100644
|
||||
--- a/stack/btm/btm_sec.cc
|
||||
+++ b/stack/btm/btm_sec.cc
|
||||
@@ -104,7 +104,7 @@ static bool btm_sec_set_security_level(CONNECTION_TYPE conn_type,
|
||||
uint32_t mx_proto_id,
|
||||
uint32_t mx_chan_id);
|
||||
|
||||
-static bool btm_dev_authenticated(tBTM_SEC_DEV_REC* p_dev_rec);
|
||||
+static bool btm_dev_authenticated(const tBTM_SEC_DEV_REC* p_dev_rec);
|
||||
static bool btm_dev_encrypted(tBTM_SEC_DEV_REC* p_dev_rec);
|
||||
static bool btm_dev_authorized(tBTM_SEC_DEV_REC* p_dev_rec);
|
||||
static bool btm_serv_trusted(tBTM_SEC_DEV_REC* p_dev_rec,
|
||||
@@ -146,7 +146,7 @@ static const bool btm_sec_io_map[BTM_IO_CAP_MAX][BTM_IO_CAP_MAX] = {
|
||||
* Returns bool true or false
|
||||
*
|
||||
******************************************************************************/
|
||||
-static bool btm_dev_authenticated(tBTM_SEC_DEV_REC* p_dev_rec) {
|
||||
+static bool btm_dev_authenticated(const tBTM_SEC_DEV_REC* p_dev_rec) {
|
||||
if (p_dev_rec->sec_flags & BTM_SEC_AUTHENTICATED) {
|
||||
return (true);
|
||||
}
|
||||
@@ -220,6 +220,25 @@ static bool btm_serv_trusted(tBTM_SEC_DEV_REC* p_dev_rec,
|
||||
return (false);
|
||||
}
|
||||
|
||||
+/*******************************************************************************
|
||||
+ *
|
||||
+ * Function access_secure_service_from_temp_bond
|
||||
+ *
|
||||
+ * Description a utility function to test whether an access to
|
||||
+ * secure service from temp bonding is happening
|
||||
+ *
|
||||
+ * Returns true if the aforementioned condition holds,
|
||||
+ * false otherwise
|
||||
+ *
|
||||
+ ******************************************************************************/
|
||||
+static bool access_secure_service_from_temp_bond(const tBTM_SEC_DEV_REC* p_dev_rec,
|
||||
+ bool locally_initiated,
|
||||
+ uint16_t security_req) {
|
||||
+ return !locally_initiated && (security_req & BTM_SEC_IN_AUTHENTICATE) &&
|
||||
+ btm_dev_authenticated(p_dev_rec) &&
|
||||
+ p_dev_rec->bond_type == BOND_TYPE_TEMPORARY;
|
||||
+}
|
||||
+
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Function BTM_SecRegister
|
||||
@@ -2077,9 +2096,13 @@ tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm,
|
||||
}
|
||||
|
||||
if (rc == BTM_SUCCESS) {
|
||||
+ if (access_secure_service_from_temp_bond(p_dev_rec, is_originator, security_required)) {
|
||||
+ LOG_ERROR(LOG_TAG, "Trying to access a secure service from a temp bonding, rejecting");
|
||||
+ rc = BTM_FAILED_ON_SECURITY;
|
||||
+ }
|
||||
if (p_callback)
|
||||
- (*p_callback)(&bd_addr, transport, (void*)p_ref_data, BTM_SUCCESS);
|
||||
- return (BTM_SUCCESS);
|
||||
+ (*p_callback)(&bd_addr, transport, (void*)p_ref_data, rc);
|
||||
+ return (rc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5138,6 +5161,13 @@ tBTM_STATUS btm_sec_execute_procedure(tBTM_SEC_DEV_REC* p_dev_rec) {
|
||||
}
|
||||
}
|
||||
|
||||
+ if (access_secure_service_from_temp_bond(p_dev_rec,
|
||||
+ p_dev_rec->is_originator,
|
||||
+ p_dev_rec->security_required)) {
|
||||
+ LOG_ERROR(LOG_TAG, "Trying to access a secure service from a temp bonding, rejecting");
|
||||
+ return (BTM_FAILED_ON_SECURITY);
|
||||
+ }
|
||||
+
|
||||
/* All required security procedures already established */
|
||||
p_dev_rec->security_required &=
|
||||
~(BTM_SEC_OUT_AUTHORIZE | BTM_SEC_IN_AUTHORIZE |
|
37
Patches/LineageOS-17.1/android_system_bt/377018.patch
Normal file
37
Patches/LineageOS-17.1/android_system_bt/377018.patch
Normal file
|
@ -0,0 +1,37 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Peng <phui@google.com>
|
||||
Date: Sat, 2 Sep 2023 04:27:29 +0000
|
||||
Subject: [PATCH] Reject access to secure services authenticated from temp
|
||||
bonding [2]
|
||||
|
||||
Reject access to service running on rfcomm
|
||||
|
||||
this is a backport of
|
||||
I10fcc2dcd78fc22ffbe3c425669fc9889b94a166
|
||||
|
||||
Bug: 294854926
|
||||
Test: m com.android.btservices
|
||||
Ignore-AOSP-First: security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5e0e907ec4948f06b3a35ecf08725c020d533ccb)
|
||||
Merged-In: I10fcc2dcd78fc22ffbe3c425669fc9889b94a166
|
||||
Change-Id: I10fcc2dcd78fc22ffbe3c425669fc9889b94a166
|
||||
---
|
||||
stack/btm/btm_sec.cc | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
|
||||
index d4377a1fe..6163c3fb7 100644
|
||||
--- a/stack/btm/btm_sec.cc
|
||||
+++ b/stack/btm/btm_sec.cc
|
||||
@@ -2425,6 +2425,11 @@ tBTM_STATUS btm_sec_mx_access_request(const RawAddress& bd_addr, uint16_t psm,
|
||||
mx_chan_id, p_callback, p_ref_data);
|
||||
} else /* rc == BTM_SUCCESS */
|
||||
{
|
||||
+ if (access_secure_service_from_temp_bond(p_dev_rec,
|
||||
+ is_originator, security_required)) {
|
||||
+ LOG_ERROR(LOG_TAG, "Trying to access a secure rfcomm service from a temp bonding, reject");
|
||||
+ rc = BTM_FAILED_ON_SECURITY;
|
||||
+ }
|
||||
/* access granted */
|
||||
if (p_callback) {
|
||||
(*p_callback)(&bd_addr, transport, p_ref_data, (uint8_t)rc);
|
47
Patches/LineageOS-17.1/android_system_bt/377019.patch
Normal file
47
Patches/LineageOS-17.1/android_system_bt/377019.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Peng <phui@google.com>
|
||||
Date: Tue, 12 Sep 2023 23:47:48 +0000
|
||||
Subject: [PATCH] Reject access to secure service authenticated from a temp
|
||||
bonding [3]
|
||||
|
||||
Allow access to rfcomm PSM by default
|
||||
|
||||
Original bug
|
||||
Bug: 294854926
|
||||
|
||||
Nearby regressions:
|
||||
Bug: 298539299
|
||||
|
||||
Test: m com.android.btservices
|
||||
Ignore-AOSP-First: security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ab986fe4165aae74c5915f57ad2e78bf80f1d3ec)
|
||||
Merged-In: If1f7c9278a9e877f64ae78b6f067c597fb5d0e66
|
||||
Change-Id: If1f7c9278a9e877f64ae78b6f067c597fb5d0e66
|
||||
---
|
||||
stack/btm/btm_sec.cc | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
|
||||
index 6163c3fb7..e69fe9b4c 100644
|
||||
--- a/stack/btm/btm_sec.cc
|
||||
+++ b/stack/btm/btm_sec.cc
|
||||
@@ -2119,15 +2119,15 @@ tBTM_STATUS btm_sec_l2cap_access_req(const RawAddress& bd_addr, uint16_t psm,
|
||||
btm_cb.security_mode == BTM_SEC_MODE_SC) {
|
||||
if (BTM_SEC_IS_SM4(p_dev_rec->sm4)) {
|
||||
if (is_originator) {
|
||||
- /* SM4 to SM4 -> always authenticate & encrypt */
|
||||
- security_required |= (BTM_SEC_OUT_AUTHENTICATE | BTM_SEC_OUT_ENCRYPT);
|
||||
+ /* SM4 to SM4 -> always encrypt */
|
||||
+ security_required |= BTM_SEC_OUT_ENCRYPT;
|
||||
} else /* acceptor */
|
||||
{
|
||||
/* SM4 to SM4: the acceptor needs to make sure the authentication is
|
||||
* already done */
|
||||
chk_acp_auth_done = true;
|
||||
- /* SM4 to SM4 -> always authenticate & encrypt */
|
||||
- security_required |= (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_IN_ENCRYPT);
|
||||
+ /* SM4 to SM4 -> always encrypt */
|
||||
+ security_required |= BTM_SEC_IN_ENCRYPT;
|
||||
}
|
||||
} else if (!(BTM_SM4_KNOWN & p_dev_rec->sm4)) {
|
||||
/* the remote features are not known yet */
|
128
Patches/LineageOS-17.1/android_system_bt/377020.patch
Normal file
128
Patches/LineageOS-17.1/android_system_bt/377020.patch
Normal file
|
@ -0,0 +1,128 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Peng <phui@google.com>
|
||||
Date: Tue, 12 Sep 2023 23:54:08 +0000
|
||||
Subject: [PATCH] Reorganize the code for checking auth requirement
|
||||
|
||||
Original bug
|
||||
Bug: 294854926
|
||||
|
||||
regressions:
|
||||
Bug: 299570702
|
||||
|
||||
Test: Test: m com.android.btservices
|
||||
Test: QA validation
|
||||
Ignore-AOSP-First: security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0c488b2420befe0f8038957861072a8e63702f91)
|
||||
Merged-In: I976a5a6d7bb819fd6accdc71eb1501b9606f3ae4
|
||||
Change-Id: I976a5a6d7bb819fd6accdc71eb1501b9606f3ae4
|
||||
---
|
||||
stack/btm/btm_sec.cc | 93 ++++++++++++++++++++++++++------------------
|
||||
1 file changed, 56 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
|
||||
index e69fe9b4c..e73cfb363 100644
|
||||
--- a/stack/btm/btm_sec.cc
|
||||
+++ b/stack/btm/btm_sec.cc
|
||||
@@ -5081,46 +5081,65 @@ tBTM_STATUS btm_sec_execute_procedure(tBTM_SEC_DEV_REC* p_dev_rec) {
|
||||
|
||||
/* If connection is not authenticated and authentication is required */
|
||||
/* start authentication and return PENDING to the caller */
|
||||
- if ((((!(p_dev_rec->sec_flags & BTM_SEC_AUTHENTICATED)) &&
|
||||
- ((p_dev_rec->is_originator &&
|
||||
- (p_dev_rec->security_required & BTM_SEC_OUT_AUTHENTICATE)) ||
|
||||
- (!p_dev_rec->is_originator &&
|
||||
- (p_dev_rec->security_required & BTM_SEC_IN_AUTHENTICATE)))) ||
|
||||
- (!(p_dev_rec->sec_flags & BTM_SEC_16_DIGIT_PIN_AUTHED) &&
|
||||
- (!p_dev_rec->is_originator &&
|
||||
- (p_dev_rec->security_required & BTM_SEC_IN_MIN_16_DIGIT_PIN)))) &&
|
||||
- (p_dev_rec->hci_handle != BTM_SEC_INVALID_HANDLE)) {
|
||||
-/*
|
||||
- * We rely on BTM_SEC_16_DIGIT_PIN_AUTHED being set if MITM is in use,
|
||||
- * as 16 DIGIT is only needed if MITM is not used. Unfortunately, the
|
||||
- * BTM_SEC_AUTHENTICATED is used for both MITM and non-MITM
|
||||
- * authenticated connections, hence we cannot distinguish here.
|
||||
- */
|
||||
-
|
||||
- BTM_TRACE_EVENT("Security Manager: Start authentication");
|
||||
+ if (p_dev_rec->hci_handle != HCI_INVALID_HANDLE) {
|
||||
+ bool start_auth = false;
|
||||
+
|
||||
+ // Check link status of BR/EDR
|
||||
+ if (!(p_dev_rec->sec_flags & BTM_SEC_AUTHENTICATED)) {
|
||||
+ if (p_dev_rec->is_originator) {
|
||||
+ if (p_dev_rec->security_required & BTM_SEC_OUT_AUTHENTICATE) {
|
||||
+ LOG_DEBUG(LOG_TAG, "Outgoing authentication Required");
|
||||
+ start_auth = true;
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (p_dev_rec->security_required & BTM_SEC_IN_AUTHENTICATE) {
|
||||
+ LOG_DEBUG(LOG_TAG, "Incoming authentication Required");
|
||||
+ start_auth = true;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
- /*
|
||||
- * If we do have a link-key, but we end up here because we need an
|
||||
- * upgrade, then clear the link-key known and authenticated flag before
|
||||
- * restarting authentication.
|
||||
- * WARNING: If the controller has link-key, it is optional and
|
||||
- * recommended for the controller to send a Link_Key_Request.
|
||||
- * In case we need an upgrade, the only alternative would be to delete
|
||||
- * the existing link-key. That could lead to very bad user experience
|
||||
- * or even IOP issues, if a reconnect causes a new connection that
|
||||
- * requires an upgrade.
|
||||
- */
|
||||
- if ((p_dev_rec->sec_flags & BTM_SEC_LINK_KEY_KNOWN) &&
|
||||
- (!(p_dev_rec->sec_flags & BTM_SEC_16_DIGIT_PIN_AUTHED) &&
|
||||
- (!p_dev_rec->is_originator &&
|
||||
- (p_dev_rec->security_required & BTM_SEC_IN_MIN_16_DIGIT_PIN)))) {
|
||||
- p_dev_rec->sec_flags &=
|
||||
- ~(BTM_SEC_LINK_KEY_KNOWN | BTM_SEC_LINK_KEY_AUTHED |
|
||||
- BTM_SEC_AUTHENTICATED);
|
||||
+ if (!(p_dev_rec->sec_flags & BTM_SEC_16_DIGIT_PIN_AUTHED)) {
|
||||
+ /*
|
||||
+ * We rely on BTM_SEC_16_DIGIT_PIN_AUTHED being set if MITM is in use,
|
||||
+ * as 16 DIGIT is only needed if MITM is not used. Unfortunately, the
|
||||
+ * BTM_SEC_AUTHENTICATED is used for both MITM and non-MITM
|
||||
+ * authenticated connections, hence we cannot distinguish here.
|
||||
+ */
|
||||
+ if (!p_dev_rec->is_originator) {
|
||||
+ if (p_dev_rec->security_required & BTM_SEC_IN_MIN_16_DIGIT_PIN) {
|
||||
+ LOG_DEBUG(LOG_TAG, "BTM_SEC_IN_MIN_16_DIGIT_PIN Required");
|
||||
+ start_auth = true;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
- btm_sec_start_authentication(p_dev_rec);
|
||||
- return (BTM_CMD_STARTED);
|
||||
+ if (start_auth) {
|
||||
+ LOG_DEBUG(LOG_TAG, "Security Manager: Start authentication");
|
||||
+
|
||||
+ /*
|
||||
+ * If we do have a link-key, but we end up here because we need an
|
||||
+ * upgrade, then clear the link-key known and authenticated flag before
|
||||
+ * restarting authentication.
|
||||
+ * WARNING: If the controller has link-key, it is optional and
|
||||
+ * recommended for the controller to send a Link_Key_Request.
|
||||
+ * In case we need an upgrade, the only alternative would be to delete
|
||||
+ * the existing link-key. That could lead to very bad user experience
|
||||
+ * or even IOP issues, if a reconnect causes a new connection that
|
||||
+ * requires an upgrade.
|
||||
+ */
|
||||
+ if ((p_dev_rec->sec_flags & BTM_SEC_LINK_KEY_KNOWN) &&
|
||||
+ (!(p_dev_rec->sec_flags & BTM_SEC_16_DIGIT_PIN_AUTHED) &&
|
||||
+ (!p_dev_rec->is_originator &&
|
||||
+ (p_dev_rec->security_required & BTM_SEC_IN_MIN_16_DIGIT_PIN)))) {
|
||||
+ p_dev_rec->sec_flags &=
|
||||
+ ~(BTM_SEC_LINK_KEY_KNOWN | BTM_SEC_LINK_KEY_AUTHED |
|
||||
+ BTM_SEC_AUTHENTICATED);
|
||||
+ }
|
||||
+
|
||||
+ btm_sec_start_authentication(p_dev_rec);
|
||||
+ return (BTM_CMD_STARTED);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* If connection is not encrypted and encryption is required */
|
46
Patches/LineageOS-17.1/android_system_bt/377021.patch
Normal file
46
Patches/LineageOS-17.1/android_system_bt/377021.patch
Normal file
|
@ -0,0 +1,46 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Peng <phui@google.com>
|
||||
Date: Wed, 13 Sep 2023 00:00:44 +0000
|
||||
Subject: [PATCH] Enforce authentication if encryption is required
|
||||
|
||||
Original bug
|
||||
Bug: 294854926
|
||||
|
||||
regressions:
|
||||
Bug: 299570702
|
||||
Bug: 299561281
|
||||
|
||||
Test: Test: m com.android.btservices
|
||||
Test: QA validation
|
||||
Ignore-AOSP-First: security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:778d3fb3fb520e54425ecefe9a28453002053553)
|
||||
Merged-In: I0370ed2e3166d56f708e1981c2126526e1db9eaa
|
||||
Change-Id: I0370ed2e3166d56f708e1981c2126526e1db9eaa
|
||||
---
|
||||
stack/btm/btm_sec.cc | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/stack/btm/btm_sec.cc b/stack/btm/btm_sec.cc
|
||||
index e73cfb363..de91023c6 100644
|
||||
--- a/stack/btm/btm_sec.cc
|
||||
+++ b/stack/btm/btm_sec.cc
|
||||
@@ -5087,13 +5087,15 @@ tBTM_STATUS btm_sec_execute_procedure(tBTM_SEC_DEV_REC* p_dev_rec) {
|
||||
// Check link status of BR/EDR
|
||||
if (!(p_dev_rec->sec_flags & BTM_SEC_AUTHENTICATED)) {
|
||||
if (p_dev_rec->is_originator) {
|
||||
- if (p_dev_rec->security_required & BTM_SEC_OUT_AUTHENTICATE) {
|
||||
- LOG_DEBUG(LOG_TAG, "Outgoing authentication Required");
|
||||
+ if (p_dev_rec->security_required &
|
||||
+ (BTM_SEC_OUT_AUTHENTICATE | BTM_SEC_OUT_ENCRYPT)) {
|
||||
+ LOG_DEBUG(LOG_TAG, "Outgoing authentication/encryption Required");
|
||||
start_auth = true;
|
||||
}
|
||||
} else {
|
||||
- if (p_dev_rec->security_required & BTM_SEC_IN_AUTHENTICATE) {
|
||||
- LOG_DEBUG(LOG_TAG, "Incoming authentication Required");
|
||||
+ if (p_dev_rec->security_required &
|
||||
+ (BTM_SEC_IN_AUTHENTICATE | BTM_SEC_IN_ENCRYPT)) {
|
||||
+ LOG_DEBUG(LOG_TAG, "Incoming authentication/encryption Required");
|
||||
start_auth = true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Brian Delwiche <delwiche@google.com>
|
||||
Date: Tue, 3 Oct 2023 21:27:49 +0000
|
||||
Subject: [PATCH] Fix timing attack in BTM_BleVerifySignature
|
||||
|
||||
BTM_BleVerifySignature uses a stock memcmp, allowing signature contents
|
||||
to be deduced through a side-channel attack.
|
||||
|
||||
Change to CRYPTO_memcmp, which is hardened against this attack, to
|
||||
eliminate this attack.
|
||||
|
||||
Bug: 274478807
|
||||
Test: atest bluetooth_test_gd_unit
|
||||
Tag: #security
|
||||
Ignore-AOSP-First: Security
|
||||
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:fcd1c44f7c4bf431dd6a6902d74c045174bd00ce)
|
||||
Merged-In: I41a9b586d663d2ad4694222ae451d2d30a428a3c
|
||||
Change-Id: I41a9b586d663d2ad4694222ae451d2d30a428a3c
|
||||
---
|
||||
stack/Android.bp | 1 +
|
||||
stack/btm/btm_ble.cc | 3 ++-
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/stack/Android.bp b/stack/Android.bp
|
||||
index c4684236e..4021d9e51 100644
|
||||
--- a/stack/Android.bp
|
||||
+++ b/stack/Android.bp
|
||||
@@ -178,6 +178,7 @@ cc_library_static {
|
||||
shared_libs: [
|
||||
"libcutils",
|
||||
"liblog",
|
||||
+ "libcrypto",
|
||||
],
|
||||
required: [
|
||||
"libldacBT_enc",
|
||||
diff --git a/stack/btm/btm_ble.cc b/stack/btm/btm_ble.cc
|
||||
index b1f4119d5..f34c6db59 100644
|
||||
--- a/stack/btm/btm_ble.cc
|
||||
+++ b/stack/btm/btm_ble.cc
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "hcimsgs.h"
|
||||
#include "log/log.h"
|
||||
#include "l2c_int.h"
|
||||
+#include "openssl/mem.h"
|
||||
#include "osi/include/log.h"
|
||||
#include "osi/include/osi.h"
|
||||
#include "stack/crypto_toolbox/crypto_toolbox.h"
|
||||
@@ -2110,7 +2111,7 @@ bool BTM_BleVerifySignature(const RawAddress& bd_addr, uint8_t* p_orig,
|
||||
|
||||
crypto_toolbox::aes_cmac(p_rec->ble.keys.pcsrk, p_orig, len,
|
||||
BTM_CMAC_TLEN_SIZE, p_mac);
|
||||
- if (memcmp(p_mac, p_comp, BTM_CMAC_TLEN_SIZE) == 0) {
|
||||
+ if (CRYPTO_memcmp(p_mac, p_comp, BTM_CMAC_TLEN_SIZE) == 0) {
|
||||
btm_ble_increment_sign_ctr(bd_addr, false);
|
||||
verified = true;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue