summaryrefslogtreecommitdiff
path: root/src/eir.c
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2012-10-03 15:18:18 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2012-10-03 22:41:28 +0300
commit0e261c73046b430ad3af9fc1762efbc8cf8b2416 (patch)
tree0efb7903d219aafeac98a00394f02e723b9cc1f1 /src/eir.c
parentc7b884ab2b2a212b5e03c88dcfd4ffeeea191b0f (diff)
downloadbluez-0e261c73046b430ad3af9fc1762efbc8cf8b2416.tar.gz
eir: Add support creating EIR with hash and randomizer fields
This will be used to create EIR to be send over OOB channel.
Diffstat (limited to 'src/eir.c')
-rw-r--r--src/eir.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/eir.c b/src/eir.c
index 26071c453..91c431fde 100644
--- a/src/eir.c
+++ b/src/eir.c
@@ -278,9 +278,11 @@ static void eir_generate_uuid128(GSList *list, uint8_t *ptr, 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)
{
GSList *l;
uint8_t *ptr = data;
@@ -290,6 +292,26 @@ void eir_create(const char *name, int8_t tx_power, uint16_t did_vendor,
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) {