diff --git a/src/eir.c b/src/eir.c
index 26071c4..91c431f 100644
--- a/src/eir.c
+++ b/src/eir.c
}
}
-void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor,
- uint16_t did_product, uint16_t did_version,
- uint16_t did_source, GSList *uuids, uint8_t *data)
+void eir_create(const char *name, int8_t tx_power,
+ uint8_t *hash, uint8_t *randomizer,
+ uint16_t did_vendor, uint16_t did_product,
+ uint16_t did_version, uint16_t did_source,
+ GSList *uuids, uint8_t *data)
{
GSList *l;
uint8_t *ptr = data;
gboolean truncated = FALSE;
size_t name_len;
+ if (hash) {
+ *ptr++ = 17;
+ *ptr++ = EIR_SSP_HASH;
+
+ memcpy(ptr, hash, 16);
+ ptr += 16;
+
+ eir_len += 16 + 2;
+ }
+
+ if (randomizer) {
+ *ptr++ = 17;
+ *ptr++ = EIR_SSP_RANDOMIZER;
+
+ memcpy(ptr, randomizer, 16);
+ ptr += 16;
+
+ eir_len += 16 + 2;
+ }
+
name_len = strlen(name);
if (name_len > 0) {
diff --git a/src/eir.h b/src/eir.h
index d2d6dc7..844c162 100644
--- a/src/eir.h
+++ b/src/eir.h
void eir_data_free(struct eir_data *eir);
int eir_parse(struct eir_data *eir, uint8_t *eir_data, uint8_t eir_len);
int eir_parse_oob(struct eir_data *eir, uint8_t *eir_data, uint16_t eir_len);
-void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor,
- uint16_t did_product, uint16_t did_version,
- uint16_t did_source, GSList *uuids, uint8_t *data);
+void eir_create(const char *name, int8_t tx_power,
+ uint8_t *hash, uint8_t *randomizer,
+ uint16_t did_vendor, uint16_t did_product,
+ uint16_t did_version, uint16_t did_source,
+ GSList *uuids, uint8_t *data);
gboolean eir_has_data_type(uint8_t *data, size_t len, uint8_t type);