Patched version of nrf51822 FOTA compatible driver, with GPTIO disabled, as it clashed with the mbed definitions...
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(),