Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of nRF51822 by
Revision 599:3e66e1eb264d, committed 2016-01-11
- Comitter:
- vcoubard
- Date:
- Mon Jan 11 10:19:36 2016 +0000
- Parent:
- 598:814c1ce92947
- Child:
- 600:0978b5626451
- Commit message:
- Synchronized with git rev 2ebbcb08
Author: Andres Amaya Garcia
Add documentation and fix style of SecurityManager
Changed in this revision
--- a/source/btle/btle_security.cpp Mon Jan 11 10:19:35 2016 +0000
+++ b/source/btle/btle_security.cpp Mon Jan 11 10:19:36 2016 +0000
@@ -45,19 +45,8 @@
}, /**< Key distribution bitmap: keys that the peripheral device will distribute. */
};
-ble_error_t btle_createWhitelistFromBondTable(ble_gap_whitelist_t *p_whitelist)
-{
- ret_code_t err = dm_whitelist_create(&applicationInstance, p_whitelist);
- if (err == NRF_SUCCESS) {
- return BLE_ERROR_NONE;
- } else if (err == NRF_ERROR_NULL) {
- return BLE_ERROR_PARAM_OUT_OF_RANGE;
- } else {
- return BLE_ERROR_INVALID_STATE;
- }
-}
-
-bool btle_hasInitializedSecurity(void)
+bool
+btle_hasInitializedSecurity(void)
{
return initialized;
}
@@ -281,7 +270,26 @@
return NRF_SUCCESS;
}
-bool btle_matchAddressAndIrk(ble_gap_addr_t const * p_addr, ble_gap_irk_t const * p_irk)
+ble_error_t
+btle_createWhitelistFromBondTable(ble_gap_whitelist_t *p_whitelist)
{
+ ret_code_t err = dm_whitelist_create(&applicationInstance, p_whitelist);
+ if (err == NRF_SUCCESS) {
+ return BLE_ERROR_NONE;
+ } else if (err == NRF_ERROR_NULL) {
+ return BLE_ERROR_PARAM_OUT_OF_RANGE;
+ } else {
+ return BLE_ERROR_INVALID_STATE;
+ }
+}
+
+
+bool
+btle_matchAddressAndIrk(ble_gap_addr_t const * p_addr, ble_gap_irk_t const * p_irk)
+{
+ /*
+ * Use a helper function from the Nordic SDK to test whether the BLE
+ * address can be generated using the IRK.
+ */
return im_address_resolve(p_addr, p_irk);
}
\ No newline at end of file
--- a/source/btle/btle_security.h Mon Jan 11 10:19:35 2016 +0000 +++ b/source/btle/btle_security.h Mon Jan 11 10:19:36 2016 +0000 @@ -77,8 +77,25 @@ */ ble_error_t btle_purgeAllBondingState(void); +/** + * Function to test whether the SecurityManager has been initialized. + * Possible by a call to @ref btle_initializeSecurity(). + * + * @return True if the SecurityManager was previously initialized, false + * otherwise. + */ bool btle_hasInitializedSecurity(void); +/** + * Function to test whether a BLE address is generated using an IRK. + * + * @param[in] p_addr + * Pointer to a BLE address. + * @param[in] p_irk + * Pointer to an IRK. + * + * @return True if p_addr can be generated using p_irk, false otherwise. + */ bool btle_matchAddressAndIrk(ble_gap_addr_t const * p_addr, ble_gap_irk_t const * p_irk); #endif /* _BTLE_SECURITY_H_ */ \ No newline at end of file
--- a/source/nRF5xSecurityManager.h Mon Jan 11 10:19:35 2016 +0000
+++ b/source/nRF5xSecurityManager.h Mon Jan 11 10:19:36 2016 +0000
@@ -79,13 +79,28 @@
nRF5xSecurityManager(const nRF5xSecurityManager &);
const nRF5xSecurityManager& operator=(const nRF5xSecurityManager &);
+ /*
+ * Expose an interface that allows us to query the SoftDevice bond table
+ * and extract a whitelist.
+ */
ble_error_t createWhitelistFromBondTable(ble_gap_whitelist_t &whitelistFromBondTable) const {
return btle_createWhitelistFromBondTable(&whitelistFromBondTable);
}
+ /*
+ * Given a BLE address and a IRK this function check whether the address
+ * can be generated from the IRK. To do so, this function uses the hash
+ * function and algorithm described in the Bluetooth low Energy
+ * Specification. Internally, Nordic SDK functions are used.
+ */
bool matchAddressAndIrk(ble_gap_addr_t *address, ble_gap_irk_t *irk) const {
return btle_matchAddressAndIrk(address, irk);
}
+
+ /*
+ * Give nRF5xGap access to createWhitelistFromBondTable() and
+ * matchAddressAndIrk()
+ */
friend class nRF5xGap;
};
