Removes storing of bt peer key in internal flash for bad usb BLE

Co-authored-by: yocvito <nicolasmorel.dp@gmail.com>
This commit is contained in:
yocvito
2023-02-03 19:39:30 +01:00
committed by Willy-JL
parent 82f4a287cb
commit d6a1dc2e1f
4 changed files with 28 additions and 2 deletions
+5 -1
View File
@@ -661,6 +661,8 @@ void bad_kb_bt_init(Bt* bt) {
bt_mode_prev = bt_get_profile_pairing_method(bt);
bt_set_profile_pairing_method(bt, GapPairingNone);
furi_hal_bt_start_advertising();
// disable peer key adding to bt SRAM storage
bt_disable_peer_key_update(bad_usb->bt);
connection_mode = BadKbConnectionModeBt;
}
@@ -683,6 +685,9 @@ void bad_kb_bt_deinit(Bt* bt) {
// if it happens, maybe we should increase the delay after bt_disconnect
bt_set_profile(bt, BtProfileSerial);
// starts saving peer keys (bounded devices)
bt_enable_peer_key_update(bad_usb->bt);
connection_mode = BadKbConnectionModeNone;
}
@@ -827,7 +832,6 @@ static int32_t bad_kb_worker(void* context) {
furi_thread_flags_wait(0, FuriFlagWaitAny, 1500);
if(bad_kb->bt) {
update_bt_timeout(bad_kb->bt);
FURI_LOG_I(WORKER_TAG, "BLE Key timeout : %u", bt_timeout);
}
bad_kb_script_set_keyboard_layout(bad_kb, bad_kb->keyboard_layout);
worker_state = BadKbStateRunning;
+9
View File
@@ -445,6 +445,15 @@ GapPairing bt_get_profile_pairing_method(Bt* bt) {
return furi_hal_bt_get_profile_pairing_method(get_hal_bt_profile(bt->profile));
}
void bt_disable_peer_key_update(Bt *bt) {
UNUSED(bt);
furi_hal_bt_set_key_storage_change_callback(NULL, NULL);
}
void bt_enable_peer_key_update(Bt *bt) {
furi_hal_bt_set_key_storage_change_callback(bt_on_key_storage_change_callback, bt);
}
int32_t bt_srv(void* p) {
UNUSED(p);
Bt* bt = bt_alloc();
+11
View File
@@ -52,6 +52,17 @@ bool bt_remote_rssi(Bt* bt, BtRssi* rssi);
void bt_set_profile_pairing_method(Bt* bt, GapPairing pairing_method);
GapPairing bt_get_profile_pairing_method(Bt* bt);
/** Stop saving new peer key to flash (in .bt.keys file)
*
*/
void bt_disable_peer_key_update(Bt *bt);
/** Enable saving peer key to internal flash (enable by default)
*
* @note This function should be called if bt_disable_peer_key_update was called before
*/
void bt_enable_peer_key_update(Bt *bt);
/** Disconnect from Central
*
* @param bt Bt instance