47
47
#define printBondDir (role )
48
48
#endif
49
49
50
+ static void get_fname (char * fname, uint8_t role, uint16_t ediv)
51
+ {
52
+ sprintf (fname, ( role == BLE_GAP_ROLE_PERIPH ) ? BOND_FNAME_PRPH : BOND_FNAME_CNTR, ediv);
53
+ }
54
+
50
55
/* ------------------------------------------------------------------*/
51
56
/* Saving Bond Data to Nffs in following layout
52
57
* - _bond_data 80 bytes
@@ -69,13 +74,7 @@ void bond_init(void)
69
74
static void bond_save_keys_dfr (uint8_t role, uint16_t conn_hdl, bond_data_t * bdata)
70
75
{
71
76
char filename[BOND_FNAME_LEN];
72
- if ( role == BLE_GAP_ROLE_PERIPH )
73
- {
74
- sprintf (filename, BOND_FNAME_PRPH, bdata->own_enc .master_id .ediv );
75
- }else
76
- {
77
- sprintf (filename, BOND_FNAME_CNTR, bdata->peer_enc .master_id .ediv );
78
- }
77
+ get_fname (filename, role, role == BLE_GAP_ROLE_PERIPH ? bdata->own_enc .master_id .ediv : bdata->peer_enc .master_id .ediv );
79
78
80
79
char devname[CFG_MAX_DEVNAME_LEN] = { 0 };
81
80
Bluefruit.Gap .getPeerName (conn_hdl, devname, CFG_MAX_DEVNAME_LEN);
@@ -100,13 +99,8 @@ static void bond_save_keys_dfr(uint8_t role, uint16_t conn_hdl, bond_data_t* bda
100
99
}
101
100
102
101
file.write ((uint8_t *) devname, CFG_MAX_DEVNAME_LEN);
103
-
104
102
file.close ();
105
103
106
- PRINT_HEX (bdata->own_enc .master_id .ediv );
107
- PRINT_HEX (bdata->peer_enc .master_id .ediv );
108
-
109
-
110
104
if (result)
111
105
{
112
106
LOG_LV2 (" BOND" , " Keys for \" %s\" is saved to file %s" , devname, filename);
@@ -132,13 +126,7 @@ void bond_save_keys(uint8_t role, uint16_t conn_hdl, bond_data_t* bdata)
132
126
bool bond_load_keys (uint8_t role, uint16_t ediv, bond_data_t * bdata)
133
127
{
134
128
char filename[BOND_FNAME_LEN];
135
- if ( role == BLE_GAP_ROLE_PERIPH )
136
- {
137
- sprintf (filename, BOND_FNAME_PRPH, ediv);
138
- }else
139
- {
140
- sprintf (filename, BOND_FNAME_CNTR, ediv);
141
- }
129
+ get_fname (filename, role, ediv);
142
130
143
131
bool result = (Nffs.readFile (filename, bdata, sizeof (bond_data_t )) > 0 );
144
132
@@ -169,13 +157,7 @@ static void bond_save_cccd_dfr (uint8_t role, uint16_t conn_hdl, uint16_t ediv)
169
157
{
170
158
// save to file
171
159
char filename[BOND_FNAME_LEN];
172
- if ( role == BLE_GAP_ROLE_PERIPH )
173
- {
174
- sprintf (filename, BOND_FNAME_PRPH, ediv);
175
- }else
176
- {
177
- sprintf (filename, BOND_FNAME_CNTR, ediv);
178
- }
160
+ get_fname (filename, role, ediv);
179
161
180
162
if ( Nffs.writeFile (filename, sys_attr, len, BOND_FILE_CCCD_OFFSET) )
181
163
{
@@ -205,13 +187,7 @@ bool bond_load_cccd(uint8_t role, uint16_t cond_hdl, uint16_t ediv)
205
187
bool loaded = false ;
206
188
207
189
char filename[BOND_FNAME_LEN];
208
- if ( role == BLE_GAP_ROLE_PERIPH )
209
- {
210
- sprintf (filename, BOND_FNAME_PRPH, ediv);
211
- }else
212
- {
213
- sprintf (filename, BOND_FNAME_CNTR, ediv);
214
- }
190
+ get_fname (filename, role, ediv);
215
191
216
192
NffsFile file (filename, FS_ACCESS_READ);
217
193
@@ -353,3 +329,11 @@ void bond_clear_all(void)
353
329
(void ) Nffs.mkdir_p (BOND_DIR_PRPH);
354
330
(void ) Nffs.mkdir_p (BOND_DIR_CNTR);
355
331
}
332
+
333
+ void bond_remove_key (uint8_t role, uint16_t ediv)
334
+ {
335
+ char filename[BOND_FNAME_LEN];
336
+ get_fname (filename, role, ediv);
337
+
338
+ Nffs.remove (filename);
339
+ }
0 commit comments