provide sm_send_security_request

This commit is contained in:
matthias.ringwald@gmail.com 2014-01-30 10:32:09 +00:00
parent 158bc1b59a
commit 6d9f0ef4d0
5 changed files with 22 additions and 15 deletions

View File

@ -87,7 +87,7 @@ static timer_source_t att_handle_value_indication_timer;
static btstack_packet_handler_t att_client_packet_handler = NULL;
static int att_handle_value_indication_notify_client(uint8_t status, uint16_t client_handle, uint16_t attribute_handle){
static void att_handle_value_indication_notify_client(uint8_t status, uint16_t client_handle, uint16_t attribute_handle){
uint8_t event[7];
int pos = 0;
event[pos++] = ATT_HANDLE_VALUE_INDICATION_COMPLETE;

View File

@ -1648,6 +1648,15 @@ void sm_set_ir(sm_key_t ir){
// sm_irk(sm_persistent_ir, sm_persistent_irk);
}
/**
* @brief Trigger Security Request
* @note Not used normally. Bonding is triggered by access to protected attributes in ATT Server
*/
void sm_send_security_request(){
sm_state_responding = SM_STATE_SEND_SECURITY_REQUEST;
sm_run();
}
void sm_init(){
// set some (BTstack default) ER and IR
int i;

View File

@ -188,6 +188,12 @@ void sm_set_io_capabilities(io_capability_t io_capability);
*/
void sm_set_request_security(int enable);
/**
* @brief Trigger Security Request
* @note Not used normally. Bonding is triggered by access to protected attributes in ATT Server
*/
void sm_send_security_request();
/**
* @brief Decline bonding triggered by event before
* @param addr_type and address

View File

@ -74,7 +74,7 @@ void sm_set_accepted_stk_generation_methods(uint8_t accepted_stk_generation_meth
void sm_set_encryption_key_size_range(uint8_t min_size, uint8_t max_size){}
void sm_set_authentication_requirements(uint8_t auth_req){}
void sm_set_io_capabilities(io_capability_t io_capability){}
void sm_set_request_security(int enable){}
void sm_send_security_request(){}
void sm_bonding_decline(uint8_t addr_type, bd_addr_t address){}
void sm_just_works_confirm(uint8_t addr_type, bd_addr_t address){}

View File

@ -84,7 +84,6 @@ static int gap_bondable = 0;
static int gap_directed_connectable = 0;
static int gap_privacy = 0;
static int sm_slave_initiated_security_request = 0;
static char * sm_io_capabilities = NULL;
static int sm_mitm_protection = 0;
static int sm_have_oob_data = 0;
@ -552,8 +551,8 @@ void show_usage(){
printf("\n--- CLI for LE Peripheral ---\n");
printf("GAP: discoverable %u, connectable %u, bondable %u, directed connectable %u, privacy %u, ads enabled %u \n",
gap_discoverable, gap_connectable, gap_bondable, gap_directed_connectable, gap_privacy, gap_advertisements);
printf("SM: slave iniitiated security request %u, %s, MITM protection %u, OOB data %u, key range [%u..16]\n",
sm_slave_initiated_security_request, sm_io_capabilities, sm_mitm_protection, sm_have_oob_data, sm_min_key_size);
printf("SM: %s, MITM protection %u, OOB data %u, key range [%u..16]\n",
sm_io_capabilities, sm_mitm_protection, sm_have_oob_data, sm_min_key_size);
printf("---\n");
printf("a - advertisements off\n");
printf("A - advertisements on\n");
@ -577,8 +576,7 @@ void show_usage(){
printf("7 - AD Slave Preferred Connection Interval Range\n");
printf("8 - AD Tx Power Level\n");
printf("---\n");
printf("s - slave initiated security request off\n");
printf("S - slave initiated security request on\n");
printf("s - send security request\n");
printf("z - send Connection Parameter Update Request\n");
printf("t - terminate connection\n");
printf("---\n");
@ -727,14 +725,8 @@ int stdin_process(struct data_source *ds){
update_advertisements();
break;
case 's':
sm_set_request_security(0);
sm_slave_initiated_security_request = 0;
show_usage();
break;
case 'S':
sm_set_request_security(1);
sm_slave_initiated_security_request = 1;
show_usage();
printf("SM: sending security request\n");
sm_send_security_request();
break;
case 'e':
sm_io_capabilities = "IO_CAPABILITY_DISPLAY_ONLY";