Add static random address type

This commit is contained in:
DTTerastar 2023-03-04 18:44:53 -05:00
parent 2353f938f0
commit 20fc51ca38
2 changed files with 14 additions and 7 deletions

View File

@ -161,8 +161,12 @@ void BleFingerprint::fingerprintAddress() {
case BLE_ADDR_PUBLIC_ID:
setId(mac, ID_TYPE_PUBLIC_MAC);
break;
case BLE_ADDR_RANDOM: {
case BLE_ADDR_RANDOM:
case BLE_ADDR_RANDOM_ID: {
auto naddress = address.getNative();
if ((naddress[5] & 0xc0) == 0xc0)
setId(mac, ID_TYPE_RAND_STATIC_MAC);
else {
auto irks = BleFingerprintCollection::irks;
auto it = std::find_if(irks.begin(), irks.end(), [naddress](uint8_t *irk) { return ble_ll_resolv_rpa(naddress, irk); });
if (it != irks.end()) {
@ -170,6 +174,8 @@ void BleFingerprint::fingerprintAddress() {
setId(String("irk:") + irk_hex.c_str(), ID_TYPE_KNOWN_IRK);
break;
}
setId(mac, ID_TYPE_RAND_MAC);
}
break;
}
default:

View File

@ -21,6 +21,7 @@
#define ID_TYPE_MISC_APPLE short(-5)
#define ID_TYPE_RAND_MAC short(1)
#define ID_TYPE_RAND_STATIC_MAC short(5)
#define ID_TYPE_AD short(10)
#define ID_TYPE_SD short(15)
#define ID_TYPE_MD short(20)