@@ -123,7 +123,7 @@ ble_error_t GenericSecurityManager::reset(void) {
123
123
}
124
124
125
125
ble_error_t GenericSecurityManager::preserveBondingStateOnReset (bool enabled) {
126
- MBED_ASSERT ( _db);
126
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
127
127
_db->set_restore (enabled);
128
128
return BLE_ERROR_NONE;
129
129
}
@@ -133,13 +133,13 @@ ble_error_t GenericSecurityManager::preserveBondingStateOnReset(bool enabled) {
133
133
//
134
134
135
135
ble_error_t GenericSecurityManager::purgeAllBondingState (void ) {
136
- MBED_ASSERT ( _db);
136
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
137
137
_db->clear_entries ();
138
138
return BLE_ERROR_NONE;
139
139
}
140
140
141
141
ble_error_t GenericSecurityManager::generateWhitelistFromBondTable (Gap::Whitelist_t *whitelist) const {
142
- MBED_ASSERT ( _db);
142
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
143
143
if (eventHandler) {
144
144
_db->generate_whitelist_from_bond_table (
145
145
mbed::callback (eventHandler, &::SecurityManager::EventHandler::whitelistFromBondTable),
@@ -154,6 +154,7 @@ ble_error_t GenericSecurityManager::generateWhitelistFromBondTable(Gap::Whitelis
154
154
//
155
155
156
156
ble_error_t GenericSecurityManager::requestPairing (connection_handle_t connection) {
157
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
157
158
ControlBlock_t *cb = get_control_block (connection);
158
159
if (!cb) {
159
160
return BLE_ERROR_INVALID_PARAM;
@@ -206,6 +207,7 @@ ble_error_t GenericSecurityManager::requestPairing(connection_handle_t connectio
206
207
}
207
208
208
209
ble_error_t GenericSecurityManager::acceptPairingRequest (connection_handle_t connection) {
210
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
209
211
ControlBlock_t *cb = get_control_block (connection);
210
212
if (!cb) {
211
213
return BLE_ERROR_INVALID_PARAM;
@@ -263,10 +265,12 @@ ble_error_t GenericSecurityManager::acceptPairingRequest(connection_handle_t con
263
265
}
264
266
265
267
ble_error_t GenericSecurityManager::cancelPairingRequest (connection_handle_t connection) {
268
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
266
269
return _pal.cancel_pairing (connection, pairing_failure_t ::UNSPECIFIED_REASON);
267
270
}
268
271
269
272
ble_error_t GenericSecurityManager::setPairingRequestAuthorisation (bool required) {
273
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
270
274
_pairing_authorisation_required = required;
271
275
return BLE_ERROR_NONE;
272
276
}
@@ -289,24 +293,28 @@ ble_error_t GenericSecurityManager::getSecureConnectionsSupport(bool *enabled) {
289
293
//
290
294
291
295
ble_error_t GenericSecurityManager::setIoCapability (SecurityIOCapabilities_t iocaps) {
296
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
292
297
return _pal.set_io_capability ((io_capability_t ::type) iocaps);
293
298
}
294
299
295
300
ble_error_t GenericSecurityManager::setDisplayPasskey (const Passkey_t passkey) {
301
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
296
302
return _pal.set_display_passkey (PasskeyAscii::to_num (passkey));
297
303
}
298
304
299
305
ble_error_t GenericSecurityManager::setAuthenticationTimeout (
300
306
connection_handle_t connection,
301
307
uint32_t timeout_in_ms
302
308
) {
309
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
303
310
return _pal.set_authentication_timeout (connection, timeout_in_ms / 10 );
304
311
}
305
312
306
313
ble_error_t GenericSecurityManager::getAuthenticationTimeout (
307
314
connection_handle_t connection,
308
315
uint32_t *timeout_in_ms
309
316
) {
317
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
310
318
uint16_t timeout_in_10ms;
311
319
ble_error_t status = _pal.get_authentication_timeout (connection, timeout_in_10ms);
312
320
*timeout_in_ms = 10 * timeout_in_10ms;
@@ -317,6 +325,7 @@ ble_error_t GenericSecurityManager::setLinkSecurity(
317
325
connection_handle_t connection,
318
326
SecurityMode_t securityMode
319
327
) {
328
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
320
329
ControlBlock_t *cb = get_control_block (connection);
321
330
if (!cb) {
322
331
return BLE_ERROR_INVALID_PARAM;
@@ -348,6 +357,7 @@ ble_error_t GenericSecurityManager::setLinkSecurity(
348
357
}
349
358
350
359
ble_error_t GenericSecurityManager::setKeypressNotification (bool enabled) {
360
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
351
361
_default_authentication.set_keypress_notification (enabled);
352
362
return BLE_ERROR_NONE;
353
363
}
@@ -356,7 +366,7 @@ ble_error_t GenericSecurityManager::enableSigning(
356
366
connection_handle_t connection,
357
367
bool enabled
358
368
) {
359
- MBED_ASSERT ( _db);
369
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
360
370
ControlBlock_t *cb = get_control_block (connection);
361
371
if (!cb) {
362
372
return BLE_ERROR_INVALID_PARAM;
@@ -406,7 +416,7 @@ ble_error_t GenericSecurityManager::getLinkEncryption(
406
416
connection_handle_t connection,
407
417
link_encryption_t *encryption
408
418
) {
409
- MBED_ASSERT ( _db);
419
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
410
420
ControlBlock_t *cb = get_control_block (connection);
411
421
if (!cb) {
412
422
return BLE_ERROR_INVALID_PARAM;
@@ -440,7 +450,7 @@ ble_error_t GenericSecurityManager::setLinkEncryption(
440
450
connection_handle_t connection,
441
451
link_encryption_t encryption
442
452
) {
443
- MBED_ASSERT ( _db);
453
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
444
454
ControlBlock_t *cb = get_control_block (connection);
445
455
if (!cb) {
446
456
return BLE_ERROR_INVALID_PARAM;
@@ -511,7 +521,7 @@ ble_error_t GenericSecurityManager::getEncryptionKeySize(
511
521
connection_handle_t connection,
512
522
uint8_t *size
513
523
) {
514
- MBED_ASSERT ( _db);
524
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
515
525
ControlBlock_t *cb = get_control_block (connection);
516
526
if (!cb) {
517
527
return BLE_ERROR_INVALID_PARAM;
@@ -530,6 +540,7 @@ ble_error_t GenericSecurityManager::setEncryptionKeyRequirements(
530
540
uint8_t minimumByteSize,
531
541
uint8_t maximumByteSize
532
542
) {
543
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
533
544
return _pal.set_encryption_key_requirements (minimumByteSize, maximumByteSize);
534
545
}
535
546
@@ -538,7 +549,7 @@ ble_error_t GenericSecurityManager::setEncryptionKeyRequirements(
538
549
//
539
550
540
551
ble_error_t GenericSecurityManager::getSigningKey (connection_handle_t connection, bool authenticated) {
541
- MBED_ASSERT ( _db);
552
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
542
553
ControlBlock_t *cb = get_control_block (connection);
543
554
if (!cb) {
544
555
return BLE_ERROR_INVALID_PARAM;
@@ -576,6 +587,7 @@ ble_error_t GenericSecurityManager::getSigningKey(connection_handle_t connection
576
587
//
577
588
578
589
ble_error_t GenericSecurityManager::setPrivateAddressTimeout (uint16_t timeout_in_seconds) {
590
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
579
591
return _pal.set_private_address_timeout (timeout_in_seconds);
580
592
}
581
593
@@ -584,7 +596,7 @@ ble_error_t GenericSecurityManager::setPrivateAddressTimeout(uint16_t timeout_in
584
596
//
585
597
586
598
ble_error_t GenericSecurityManager::requestAuthentication (connection_handle_t connection) {
587
- MBED_ASSERT ( _db);
599
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
588
600
ControlBlock_t *cb = get_control_block (connection);
589
601
if (!cb) {
590
602
return BLE_ERROR_INVALID_PARAM;
@@ -619,6 +631,7 @@ ble_error_t GenericSecurityManager::requestAuthentication(connection_handle_t co
619
631
ble_error_t GenericSecurityManager::generateOOB (
620
632
const address_t *address
621
633
) {
634
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
622
635
/* legacy pairing */
623
636
ble_error_t status = get_random_data (_oob_temporary_key.data (), 16 );
624
637
@@ -658,6 +671,7 @@ ble_error_t GenericSecurityManager::setOOBDataUsage(
658
671
bool useOOB,
659
672
bool OOBProvidesMITM
660
673
) {
674
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
661
675
ControlBlock_t *cb = get_control_block (connection);
662
676
if (!cb) {
663
677
return BLE_ERROR_INVALID_PARAM;
@@ -677,13 +691,15 @@ ble_error_t GenericSecurityManager::confirmationEntered(
677
691
connection_handle_t connection,
678
692
bool confirmation
679
693
) {
694
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
680
695
return _pal.confirmation_entered (connection, confirmation);
681
696
}
682
697
683
698
ble_error_t GenericSecurityManager::passkeyEntered (
684
699
connection_handle_t connection,
685
700
Passkey_t passkey
686
701
) {
702
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
687
703
return _pal.passkey_request_reply (
688
704
connection,
689
705
PasskeyAscii::to_num (passkey)
@@ -694,14 +710,15 @@ ble_error_t GenericSecurityManager::sendKeypressNotification(
694
710
connection_handle_t connection,
695
711
Keypress_t keypress
696
712
) {
713
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
697
714
return _pal.send_keypress_notification (connection, keypress);
698
715
}
699
716
700
717
ble_error_t GenericSecurityManager::legacyPairingOobReceived (
701
718
const address_t *address,
702
719
const oob_tk_t *tk
703
720
) {
704
- MBED_ASSERT ( _db);
721
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
705
722
if (address && tk) {
706
723
ControlBlock_t *cb = get_control_block (*address);
707
724
if (!cb) {
@@ -736,6 +753,7 @@ ble_error_t GenericSecurityManager::oobReceived(
736
753
const oob_lesc_value_t *random,
737
754
const oob_confirm_t *confirm
738
755
) {
756
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
739
757
if (address && random && confirm) {
740
758
_oob_peer_address = *address;
741
759
_oob_peer_random = *random;
@@ -751,7 +769,7 @@ ble_error_t GenericSecurityManager::oobReceived(
751
769
//
752
770
753
771
ble_error_t GenericSecurityManager::init_signing () {
754
- MBED_ASSERT ( _db);
772
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
755
773
const csrk_t *pcsrk = _db->get_local_csrk ();
756
774
sign_count_t local_sign_counter = _db->get_local_sign_counter ();
757
775
@@ -791,6 +809,7 @@ ble_error_t GenericSecurityManager::get_random_data(uint8_t *buffer, size_t size
791
809
}
792
810
793
811
ble_error_t GenericSecurityManager::slave_security_request (connection_handle_t connection) {
812
+ if (!_db) return BLE_ERROR_INITIALIZATION_INCOMPLETE;
794
813
ControlBlock_t *cb = get_control_block (connection);
795
814
if (!cb) {
796
815
return BLE_ERROR_INVALID_PARAM;
@@ -801,7 +820,7 @@ ble_error_t GenericSecurityManager::slave_security_request(connection_handle_t c
801
820
}
802
821
803
822
ble_error_t GenericSecurityManager::enable_encryption (connection_handle_t connection) {
804
- MBED_ASSERT ( _db);
823
+ if (! _db) return BLE_ERROR_INITIALIZATION_INCOMPLETE ;
805
824
ControlBlock_t *cb = get_control_block (connection);
806
825
if (!cb) {
807
826
return BLE_ERROR_INVALID_PARAM;
0 commit comments