bt_keys_storage.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "bt_keys_storage.h"
  2. #include <furi.h>
  3. #include <lib/toolbox/saved_struct.h>
  4. #define BT_KEYS_STORAGE_PATH "/int/bt.keys"
  5. #define BT_KEYS_STORAGE_VERSION (0)
  6. #define BT_KEYS_STORAGE_MAGIC (0x18)
  7. bool bt_keys_storage_load(Bt* bt) {
  8. furi_assert(bt);
  9. bool file_loaded = false;
  10. furi_hal_bt_get_key_storage_buff(&bt->bt_keys_addr_start, &bt->bt_keys_size);
  11. furi_hal_bt_nvm_sram_sem_acquire();
  12. file_loaded = saved_struct_load(
  13. BT_KEYS_STORAGE_PATH,
  14. bt->bt_keys_addr_start,
  15. bt->bt_keys_size,
  16. BT_KEYS_STORAGE_MAGIC,
  17. BT_KEYS_STORAGE_VERSION);
  18. furi_hal_bt_nvm_sram_sem_release();
  19. return file_loaded;
  20. }
  21. bool bt_keys_storage_save(Bt* bt) {
  22. furi_assert(bt);
  23. furi_assert(bt->bt_keys_addr_start);
  24. bool file_saved = false;
  25. furi_hal_bt_nvm_sram_sem_acquire();
  26. file_saved = saved_struct_save(
  27. BT_KEYS_STORAGE_PATH,
  28. bt->bt_keys_addr_start,
  29. bt->bt_keys_size,
  30. BT_KEYS_STORAGE_MAGIC,
  31. BT_KEYS_STORAGE_VERSION);
  32. furi_hal_bt_nvm_sram_sem_release();
  33. return file_saved;
  34. }
  35. bool bt_keys_storage_delete(Bt* bt) {
  36. furi_assert(bt);
  37. bool delete_succeed = false;
  38. bool bt_is_active = furi_hal_bt_is_active();
  39. furi_hal_bt_stop_advertising();
  40. delete_succeed = furi_hal_bt_clear_white_list();
  41. if(bt_is_active) {
  42. furi_hal_bt_start_advertising();
  43. }
  44. return delete_succeed;
  45. }