Skip to content

Commit c1ce511

Browse files
factor out invalid rand function
1 parent 021c452 commit c1ce511

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NRF52/source/nRF5xPalSecurityManager.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,16 @@ nRF5xSecurityManager& nRF5xSecurityManager::get_security_manager()
760760
return _security_manager;
761761
}
762762

763+
bool is_rand_invalid(const uint8_t* rand)
764+
{
765+
for (int i = 0; i < 8; ++i) {
766+
if (rand[i]) {
767+
return false;
768+
}
769+
}
770+
return true;
771+
}
772+
763773
bool nRF5xSecurityManager::sm_handler(const ble_evt_t *evt)
764774
{
765775
nRF5xSecurityManager& self = nRF5xSecurityManager::get_security_manager();
@@ -846,9 +856,8 @@ bool nRF5xSecurityManager::sm_handler(const ble_evt_t *evt)
846856
const ble_gap_evt_sec_info_request_t& req =
847857
gap_evt.params.sec_info_request;
848858

849-
uint8_t invalid_rand[BLE_GAP_SEC_RAND_LEN] = { 0 };
850859
if (req.master_id.ediv == 0 &&
851-
memcmp(req.master_id.rand, invalid_rand, sizeof(invalid_rand) == 0)
860+
is_rand_invalid(req.master_id.rand)
852861
) {
853862
// request ltk generated with secure connection
854863
handler->on_ltk_request(connection);
@@ -956,9 +965,8 @@ bool nRF5xSecurityManager::sm_handler(const ble_evt_t *evt)
956965
peer_dist = pairing_cb->initiator_dist;
957966
}
958967

959-
uint8_t invalid_rand[BLE_GAP_SEC_RAND_LEN] = { 0 };
960968
if (pairing_cb->own_enc_key.master_id.ediv == 0 &&
961-
memcmp(pairing_cb->own_enc_key.master_id.rand, invalid_rand, sizeof(invalid_rand) == 0)
969+
is_rand_invalid(pairing_cb->own_enc_key.master_id.rand)
962970
) {
963971
handler->on_secure_connections_ltk_generated(
964972
connection,

0 commit comments

Comments
 (0)