diff --git a/ble/central_device_db_dummy.c b/ble/central_device_db_dummy.c new file mode 100644 index 000000000..9a7586bce --- /dev/null +++ b/ble/central_device_db_dummy.c @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2011-2012 BlueKitchen GmbH + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the copyright holders nor the names of + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * 4. Any redistribution, use, or modification is done solely for + * personal benefit and not for any commercial purpose or for + * monetary gain. + * + * THIS SOFTWARE IS PROVIDED BY MATTHIAS RINGWALD AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS + * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Please inquire about commercial licensing options at contact@bluekitchen-gmbh.com + * + */ +#include "central_device_db.h" + + // Central Device db interface +void central_device_db_init(){} + +// @returns index if successful, -1 otherwise +int central_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk, sm_key_t csrk){ + return -1; +} + +// @returns number of device in db +int central_device_db_count(void){ + return 0; +} + +// get device information: addr type and address +void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t csrk){} + +// get signature key +void central_device_db_csrk(int index, sm_key_t csrk){} + +// query last used/seen signing counter +uint32_t central_device_db_counter_get(int index){ + return 0xffffffff; +} + +// update signing counter +void central_device_db_counter_set(int index, uint32_t counter){} + +// free device +void central_device_db_remove(int index){} + diff --git a/ble/gap_le.h b/ble/gap_le.h index 8d461b098..a48569b06 100644 --- a/ble/gap_le.h +++ b/ble/gap_le.h @@ -36,17 +36,22 @@ #pragma once -// address type typedef enum { GAP_RANDOM_ADDRESS_TYPE_OFF = 0, GAP_RANDOM_ADDRESS_NON_RESOLVABLE, GAP_RANDOM_ADDRESS_RESOLVABLE, } gap_random_address_type_t; -// -// GAP LE API -// +/** + * @brief Enable privacy by using random addresses + * @param random_address_type to use (incl. OFF) + */ void gap_random_address_set_mode(gap_random_address_type_t random_address_type); -void gap_random_address_set_update_period(int period_ms); + +/** + * @brief Sets update period for random address + * @param period_ms in ms + */ + void gap_random_address_set_update_period(int period_ms); diff --git a/ble/sm.h b/ble/sm.h index fcca45855..810a2cadd 100644 --- a/ble/sm.h +++ b/ble/sm.h @@ -230,7 +230,7 @@ int sm_authenticated(uint8_t addr_type, bd_addr_t address); authorization_state_t sm_authorization_state(uint8_t addr_type, bd_addr_t address); /** - * @brief Used by ATT Server to request user authorization + * @brief Used by att_server.c to request user authorization * @param addr_type and address * @returns */ diff --git a/ble/sm_minimal.c b/ble/sm_minimal.c index 33beeadc6..a7378e0e1 100644 --- a/ble/sm_minimal.c +++ b/ble/sm_minimal.c @@ -228,34 +228,3 @@ void sm_init(){ // GAP LE void gap_random_address_set_mode(gap_random_address_type_t random_address_type){} void gap_random_address_set_update_period(int period_ms){} - -// Central Device db interface -void central_device_db_init(){} - -// @returns index if successful, -1 otherwise -int central_device_db_add(int addr_type, bd_addr_t addr, sm_key_t irk, sm_key_t csrk){ - return -1; -} - -// @returns number of device in db -int central_device_db_count(void){ - return 0; -} - -// get device information: addr type and address -void central_device_db_info(int index, int * addr_type, bd_addr_t addr, sm_key_t csrk){} - -// get signature key -void central_device_db_csrk(int index, sm_key_t csrk){} - -// query last used/seen signing counter -uint32_t central_device_db_counter_get(int index){ - return 0xffffffff; -} - -// update signing counter -void central_device_db_counter_set(int index, uint32_t counter){} - -// free device -void central_device_db_remove(int index){} - diff --git a/example/libusb/Makefile b/example/libusb/Makefile index 15e3c43ae..2f908bdda 100644 --- a/example/libusb/Makefile +++ b/example/libusb/Makefile @@ -43,6 +43,7 @@ SM_REAL = \ SM_MINIMAL = \ ${BTSTACK_ROOT}/ble/sm_minimal.c \ + ${BTSTACK_ROOT}/ble/central_device_db_dummy.c \ CORE_OBJ = $(CORE:.c=.o) COMMON_OBJ = $(COMMON:.c=.o)