diff --git a/src/eir.c b/src/eir.c
index 50912a0..9226c32 100644
--- a/src/eir.c
+++ b/src/eir.c
eir->services = NULL;
g_free(eir->name);
eir->name = NULL;
+ g_free(eir->hash);
+ eir->hash = NULL;
+ g_free(eir->randomizer);
+ eir->randomizer = NULL;
}
static void eir_parse_uuid16(struct eir_data *eir, void *data, uint8_t len)
break;
eir->appearance = bt_get_le16(data);
break;
+
+ case EIR_SSP_HASH:
+ if (data_len < 16)
+ break;
+ eir->hash = g_memdup(data, 16);
+ break;
+
+ case EIR_SSP_RANDOMIZER:
+ if (data_len < 16)
+ break;
+ eir->randomizer = g_memdup(data, 16);
+ break;
}
eir_data += field_len + 1;
diff --git a/src/eir.h b/src/eir.h
index 3c81024..e6e870a 100644
--- a/src/eir.h
+++ b/src/eir.h
#define EIR_NAME_COMPLETE 0x09 /* complete local name */
#define EIR_TX_POWER 0x0A /* transmit power level */
#define EIR_CLASS_OF_DEV 0x0D /* Class of Device */
+#define EIR_SSP_HASH 0x0E /* SSP Hash */
+#define EIR_SSP_RANDOMIZER 0x0F /* SSP Randomizer */
#define EIR_DEVICE_ID 0x10 /* device ID */
#define EIR_GAP_APPEARANCE 0x19 /* GAP appearance */
uint8_t dev_class[3];
uint16_t appearance;
gboolean name_complete;
+ uint8_t *hash;
+ uint8_t *randomizer;
};
void eir_data_free(struct eir_data *eir);