diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2012-10-03 15:18:18 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-10-03 22:41:28 +0300 |
commit | 0e261c73046b430ad3af9fc1762efbc8cf8b2416 (patch) | |
tree | 0efb7903d219aafeac98a00394f02e723b9cc1f1 /src/eir.c | |
parent | c7b884ab2b2a212b5e03c88dcfd4ffeeea191b0f (diff) | |
download | bluez-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.c | 28 |
1 files changed, 25 insertions, 3 deletions
@@ -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) { |