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 131:b21411170d00, committed 2015-05-08
- Comitter:
- rgrover1
- Date:
- Fri May 08 15:33:55 2015 +0100
- Parent:
- 130:ec760bb91020
- Child:
- 132:5f44d6c28625
- Commit message:
- Synchronized with git rev 488de5cd
Author: Rohit Grover
allow for security modes to be set for characteristics.
Changed in this revision
--- a/btle/custom/custom_helper.cpp Fri May 08 15:33:55 2015 +0100
+++ b/btle/custom/custom_helper.cpp Fri May 08 15:33:55 2015 +0100
@@ -200,6 +200,7 @@
error_t custom_add_in_characteristic(uint16_t service_handle,
ble_uuid_t *p_uuid,
uint8_t properties,
+ GattCharacteristic::ble_gatt_char_required_security_t requiredSecurity,
uint8_t *p_data,
uint16_t min_length,
uint16_t max_length,
@@ -244,11 +245,43 @@
attr_md.vlen = (min_length == max_length) ? 0 : 1;
if (char_props.read || char_props.notify || char_props.indicate) {
- BLE_GAP_CONN_SEC_MODE_SET_OPEN(&attr_md.read_perm);
+ switch (requiredSecurity) {
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_OPEN_LINK :
+ BLE_GAP_CONN_SEC_MODE_SET_OPEN(&attr_md.read_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_NO_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&attr_md.read_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_WITH_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(&attr_md.read_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_SIGNED_NO_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(&attr_md.read_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_SIGNED_WITH_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(&attr_md.read_perm);
+ break;
+ };
}
if (char_props.write || char_props.write_wo_resp) {
- BLE_GAP_CONN_SEC_MODE_SET_OPEN(&attr_md.write_perm);
+ switch (requiredSecurity) {
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_OPEN_LINK :
+ BLE_GAP_CONN_SEC_MODE_SET_OPEN(&attr_md.write_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_NO_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&attr_md.write_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_ENCRYPTION_WITH_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(&attr_md.write_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_SIGNED_NO_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(&attr_md.write_perm);
+ break;
+ case GattCharacteristic::SECURITY_MODE_SIGNED_WITH_MITM :
+ BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(&attr_md.write_perm);
+ break;
+ };
}
ble_gatts_attr_t attr_char_value = {0};
--- a/btle/custom/custom_helper.h Fri May 08 15:33:55 2015 +0100
+++ b/btle/custom/custom_helper.h Fri May 08 15:33:55 2015 +0100
@@ -20,6 +20,7 @@
#include "common/common.h"
#include "ble.h"
#include "UUID.h"
+#include "GattCharacteristic.h"
#ifdef __cplusplus
extern "C" {
@@ -33,6 +34,7 @@
error_t custom_add_in_characteristic(uint16_t service_handle,
ble_uuid_t *p_uuid,
uint8_t properties,
+ GattCharacteristic::ble_gatt_char_required_security_t requiredSecurity,
uint8_t *p_data,
uint16_t min_length,
uint16_t max_length,
--- a/nRF51GattServer.cpp Fri May 08 15:33:55 2015 +0100
+++ b/nRF51GattServer.cpp Fri May 08 15:33:55 2015 +0100
@@ -86,6 +86,7 @@
custom_add_in_characteristic(BLE_GATT_HANDLE_INVALID,
&nordicUUID,
p_char->getProperties(),
+ p_char->getRequiredSecurity(),
p_char->getValueAttribute().getValuePtr(),
p_char->getValueAttribute().getInitialLength(),
p_char->getValueAttribute().getMaxLength(),
