gap: store link key for standard/non-SSP pairing

This commit is contained in:
Matthias Ringwald 2025-01-13 18:51:04 +01:00
parent 7bb9c8d8c0
commit 430f70c6d9
2 changed files with 6 additions and 3 deletions

View File

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Added
- GAP: simulate HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE if HCI Remote Name Request fails
### Fixed
- GAP: store link key for standard/non-SSP pairing
### Changed

View File

@ -4042,9 +4042,11 @@ static void event_handler(uint8_t *packet, uint16_t size){
if (hci_stack->bondable == false) break;
// - if at least one side requests bonding during the IO Capabilities exchange.
// Note: we drop bonding flag in acceptor role if remote doesn't request it
bool bonding_local = conn->io_cap_request_auth_req >= SSP_IO_AUTHREQ_MITM_PROTECTION_NOT_REQUIRED_DEDICATED_BONDING;
bool bonding_remote = conn->io_cap_response_auth_req >= SSP_IO_AUTHREQ_MITM_PROTECTION_NOT_REQUIRED_DEDICATED_BONDING;
if ((bonding_local == false) && (bonding_remote == false)) break;
if (conn->link_key_type != COMBINATION_KEY) {
bool bonding_local = conn->io_cap_request_auth_req >= SSP_IO_AUTHREQ_MITM_PROTECTION_NOT_REQUIRED_DEDICATED_BONDING;
bool bonding_remote = conn->io_cap_response_auth_req >= SSP_IO_AUTHREQ_MITM_PROTECTION_NOT_REQUIRED_DEDICATED_BONDING;
if ((bonding_local == false) && (bonding_remote == false)) break;
}
// - if security level sufficient
if (gap_security_level_for_link_key_type(link_key_type) < conn->requested_security_level) break;
gap_store_link_key_for_bd_addr(addr, &packet[8], conn->link_key_type);