mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-18 14:42:33 +00:00
sm: generate random number to display for SC with PK_RESP_INPUT generation mode
This commit is contained in:
parent
2e6217a04c
commit
b41539d54f
26
src/ble/sm.c
26
src/ble/sm.c
@ -2675,11 +2675,15 @@ static void sm_handle_random_result(uint8_t * data){
|
|||||||
if (connection->sm_role){
|
if (connection->sm_role){
|
||||||
connection->sm_engine_state = SM_RESPONDER_PH1_SEND_PAIRING_RESPONSE;
|
connection->sm_engine_state = SM_RESPONDER_PH1_SEND_PAIRING_RESPONSE;
|
||||||
} else {
|
} else {
|
||||||
connection->sm_engine_state = SM_PH1_W4_USER_RESPONSE;
|
if (setup->sm_use_secure_connections){
|
||||||
sm_trigger_user_response(connection);
|
connection->sm_engine_state = SM_SC_SEND_PUBLIC_KEY_COMMAND;
|
||||||
// response_idle == nothing <--> sm_trigger_user_response() did not require response
|
} else {
|
||||||
if (setup->sm_user_response == SM_USER_RESPONSE_IDLE){
|
connection->sm_engine_state = SM_PH1_W4_USER_RESPONSE;
|
||||||
connection->sm_engine_state = SM_PH2_C1_GET_RANDOM_A;
|
sm_trigger_user_response(connection);
|
||||||
|
// response_idle == nothing <--> sm_trigger_user_response() did not require response
|
||||||
|
if (setup->sm_user_response == SM_USER_RESPONSE_IDLE){
|
||||||
|
connection->sm_engine_state = SM_PH2_C1_GET_RANDOM_A;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -3031,6 +3035,13 @@ static void sm_pdu_handler(uint8_t packet_type, hci_con_handle_t con_handle, uin
|
|||||||
sm_conn->sm_engine_state = SM_GENERAL_SEND_PAIRING_FAILED;
|
sm_conn->sm_engine_state = SM_GENERAL_SEND_PAIRING_FAILED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// generate random number first, if we need to show passkey
|
||||||
|
if (setup->sm_stk_generation_method == PK_RESP_INPUT){
|
||||||
|
sm_conn->sm_engine_state = SM_PH2_GET_RANDOM_TK;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_LE_SECURE_CONNECTIONS
|
#ifdef ENABLE_LE_SECURE_CONNECTIONS
|
||||||
if (setup->sm_use_secure_connections){
|
if (setup->sm_use_secure_connections){
|
||||||
// SC Numeric Comparison will trigger user response after public keys & nonces have been exchanged
|
// SC Numeric Comparison will trigger user response after public keys & nonces have been exchanged
|
||||||
@ -3046,11 +3057,6 @@ static void sm_pdu_handler(uint8_t packet_type, hci_con_handle_t con_handle, uin
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// generate random number first, if we need to show passkey
|
|
||||||
if (setup->sm_stk_generation_method == PK_RESP_INPUT){
|
|
||||||
sm_conn->sm_engine_state = SM_PH2_GET_RANDOM_TK;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
sm_conn->sm_engine_state = SM_PH1_W4_USER_RESPONSE;
|
sm_conn->sm_engine_state = SM_PH1_W4_USER_RESPONSE;
|
||||||
sm_trigger_user_response(sm_conn);
|
sm_trigger_user_response(sm_conn);
|
||||||
// response_idle == nothing <--> sm_trigger_user_response() did not require response
|
// response_idle == nothing <--> sm_trigger_user_response() did not require response
|
||||||
|
Loading…
x
Reference in New Issue
Block a user