Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -207,18 +207,6 @@ ble_error_t PalSecurityManager::encrypt_data(
return BLE_ERROR_NOT_IMPLEMENTED;
}

////////////////////////////////////////////////////////////////////////////
// Privacy
//


ble_error_t PalSecurityManager::set_private_address_timeout(
uint16_t timeout_in_seconds
)
{
DmPrivSetResolvablePrivateAddrTimeout(timeout_in_seconds);
return BLE_ERROR_NONE;
}

////////////////////////////////////////////////////////////////////////////
// Keys
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,15 +174,6 @@ class PalSecurityManager final : public ble::PalSecurityManager {
encryption_block_t &data
) final;

////////////////////////////////////////////////////////////////////////////
// Privacy
//

/**
* @see ::ble::PalSecurityManager::set_private_address_timeout
*/
ble_error_t set_private_address_timeout(uint16_t timeout_in_seconds) final;

////////////////////////////////////////////////////////////////////////////
// Keys
//
Expand Down
18 changes: 12 additions & 6 deletions connectivity/FEATURE_BLE/source/generic/SecurityManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,10 @@ ble_error_t SecurityManager::getSigningKey(connection_handle_t connection, bool
ble_error_t SecurityManager::setPrivateAddressTimeout(uint16_t timeout_in_seconds)
{
if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
return _pal.set_private_address_timeout(timeout_in_seconds);
_private_address_controller.set_timeout(
resolvable_address_timeout_t(timeout_in_seconds)
);
return BLE_ERROR_NONE;
}

////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -1035,8 +1038,12 @@ ble_error_t SecurityManager::init_identity()
ble::Gap& gap = BLE::Instance().gap();

irk_t irk = _db->get_local_irk();
address_t identity_address;
bool public_identity_address = false;
if (irk != irk_t()) {
pirk = &irk;
public_identity_address = _db->is_local_identity_address_public();
identity_address = _db->get_local_identity_address();

if (!_db->is_local_identity_address_public()) {
// Some controllers doesn't store their random static address and
Expand All @@ -1057,16 +1064,15 @@ ble_error_t SecurityManager::init_identity()
}

pirk = &irk;
address_t random_static_address = gap.getRandomStaticAddress();
if (ret != BLE_ERROR_NONE) {
return ret;
}
_db->set_local_identity(irk, random_static_address, /* public_address */ false);
public_identity_address = false;
identity_address = gap.getRandomStaticAddress();
_db->set_local_identity(irk, identity_address, public_identity_address);
}

auto err = _pal.set_irk(*pirk);
if (!err) {
_private_address_controller.set_local_irk(*pirk);
_pal.set_identity_address(identity_address, public_identity_address);
}
return err;
}
Expand Down
8 changes: 0 additions & 8 deletions connectivity/FEATURE_BLE/source/pal/PalSecurityManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -753,14 +753,6 @@ class PalSecurityManager {
encryption_block_t &data
) = 0;

////////////////////////////////////////////////////////////////////////////
// Privacy
//

virtual ble_error_t set_private_address_timeout(
uint16_t timeout_in_seconds
) = 0;

////////////////////////////////////////////////////////////////////////////
// Keys
//
Expand Down