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,14 +161,20 @@ void BleFingerprint::fingerprintAddress() {
case BLE_ADDR_PUBLIC_ID: case BLE_ADDR_PUBLIC_ID:
setId(mac, ID_TYPE_PUBLIC_MAC); setId(mac, ID_TYPE_PUBLIC_MAC);
break; break;
case BLE_ADDR_RANDOM: { case BLE_ADDR_RANDOM:
case BLE_ADDR_RANDOM_ID: {
auto naddress = address.getNative(); auto naddress = address.getNative();
auto irks = BleFingerprintCollection::irks; if ((naddress[5] & 0xc0) == 0xc0)
auto it = std::find_if(irks.begin(), irks.end(), [naddress](uint8_t *irk) { return ble_ll_resolv_rpa(naddress, irk); }); setId(mac, ID_TYPE_RAND_STATIC_MAC);
if (it != irks.end()) { else {
auto irk_hex = hexStr(*it, 16); auto irks = BleFingerprintCollection::irks;
setId(String("irk:") + irk_hex.c_str(), ID_TYPE_KNOWN_IRK); auto it = std::find_if(irks.begin(), irks.end(), [naddress](uint8_t *irk) { return ble_ll_resolv_rpa(naddress, irk); });
break; if (it != irks.end()) {
auto irk_hex = hexStr(*it, 16);
setId(String("irk:") + irk_hex.c_str(), ID_TYPE_KNOWN_IRK);
break;
}
setId(mac, ID_TYPE_RAND_MAC);
} }
break; break;
} }

View File

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