mirror of https://github.com/ARMmbed/mbed-os.git
avoid setting flags twice
parent
f4f3a3c697
commit
579cb5e222
|
@ -36,7 +36,6 @@ struct SecurityDistributionFlags_t {
|
|||
encryption_key_size(0),
|
||||
peer_address_is_public(false),
|
||||
csrk_stored(false),
|
||||
csrk_sent(false),
|
||||
ltk_stored(false),
|
||||
ltk_sent(false),
|
||||
irk_stored(false),
|
||||
|
@ -56,7 +55,6 @@ struct SecurityDistributionFlags_t {
|
|||
|
||||
/** CSRK (Connection Signature Resolving Key) has been distributed and stored */
|
||||
uint8_t csrk_stored:1;
|
||||
uint8_t csrk_sent:1;
|
||||
/** LTK (Long Term Key) has been distributed and stored */
|
||||
uint8_t ltk_stored:1;
|
||||
uint8_t ltk_sent:1;
|
||||
|
|
|
@ -170,6 +170,8 @@ void FileSecurityDb::set_entry_local_ltk(
|
|||
return;
|
||||
}
|
||||
|
||||
entry->flags.ltk_sent = true;
|
||||
|
||||
fseek(_db_file, entry->file_offset + DB_STORE_OFFSET_LOCAL_KEYS_LTK, SEEK_SET);
|
||||
fwrite(<k, sizeof(ltk_t), 1, _db_file);
|
||||
}
|
||||
|
@ -203,6 +205,8 @@ void FileSecurityDb::set_entry_peer_ltk(
|
|||
return;
|
||||
}
|
||||
|
||||
entry->flags.ltk_stored = true;
|
||||
|
||||
fseek(_db_file, entry->file_offset + DB_STORE_OFFSET_PEER_KEYS_LTK, SEEK_SET);
|
||||
fwrite(<k, sizeof(ltk_t), 1, _db_file);
|
||||
}
|
||||
|
@ -263,6 +267,8 @@ void FileSecurityDb::set_entry_peer_csrk(
|
|||
return;
|
||||
}
|
||||
|
||||
entry->flags.csrk_stored = true;
|
||||
|
||||
fseek(_db_file, entry->file_offset + DB_STORE_OFFSET_PEER_SIGNING, SEEK_SET);
|
||||
/* only write in the csrk */
|
||||
fwrite(&csrk, sizeof(csrk_t), 1, _db_file);
|
||||
|
|
|
@ -354,7 +354,7 @@ ble_error_t GenericSecurityManager::enableSigning(
|
|||
|
||||
if (enabled && !cb->signing_requested && !_default_key_distribution.get_signing()) {
|
||||
cb->signing_requested = true;
|
||||
if (flags->csrk_stored && flags->csrk_sent) {
|
||||
if (flags->csrk_stored) {
|
||||
/* used the stored ones when available */
|
||||
_db->get_entry_peer_csrk(
|
||||
mbed::callback(this, &GenericSecurityManager::set_peer_csrk_cb),
|
||||
|
@ -1344,7 +1344,6 @@ void GenericSecurityManager::on_secure_connections_ltk_generated(
|
|||
|
||||
flags->ltk_mitm_protected = cb->mitm_performed;
|
||||
flags->secure_connections_paired = true;
|
||||
flags->ltk_stored = true;
|
||||
|
||||
_db->set_entry_peer_ltk(cb->db_entry, ltk);
|
||||
}
|
||||
|
@ -1365,7 +1364,7 @@ void GenericSecurityManager::on_keys_distributed_ltk(
|
|||
}
|
||||
|
||||
flags->ltk_mitm_protected = cb->mitm_performed;
|
||||
flags->ltk_stored = true;
|
||||
|
||||
_db->set_entry_peer_ltk(cb->db_entry, ltk);
|
||||
}
|
||||
|
||||
|
@ -1398,7 +1397,6 @@ void GenericSecurityManager::on_keys_distributed_local_ltk(
|
|||
return;
|
||||
}
|
||||
|
||||
flags->ltk_sent = true;
|
||||
_db->set_entry_local_ltk(cb->db_entry, ltk);
|
||||
}
|
||||
|
||||
|
@ -1431,7 +1429,6 @@ void GenericSecurityManager::on_keys_distributed_irk(
|
|||
return;
|
||||
}
|
||||
|
||||
flags->irk_stored = true;
|
||||
_db->set_entry_peer_irk(cb->db_entry, irk);
|
||||
}
|
||||
|
||||
|
@ -1469,8 +1466,6 @@ void GenericSecurityManager::on_keys_distributed_csrk(
|
|||
}
|
||||
|
||||
flags->csrk_mitm_protected = cb->mitm_performed;
|
||||
flags->csrk_stored = true;
|
||||
|
||||
_db->set_entry_peer_csrk(cb->db_entry, csrk);
|
||||
|
||||
eventHandler->signingKey(
|
||||
|
|
Loading…
Reference in New Issue