Commit Graph

885 Commits (51c1bd35a015590234924947bfac5facf211c822)

Author SHA1 Message Date
paul-szczepanek-arm 8e18e191fb new units 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm e04fd876f5 units 2018-11-26 10:24:32 +00:00
Vincent Coubard f136b0cb00 BLE: Rework Gap event handler.
Every user facing event handler accept a single parameter type; event that contains all the event fields.
That strategy allows us to extend the type later if required while we do not disrupt existing code.
2018-11-26 10:24:32 +00:00
Vincent Coubard 6a63948a7d BLE: Add phy in sync exstablished event. 2018-11-26 10:24:32 +00:00
Vincent Coubard 194e2cb4f8 BLE: Move common type from pal to ble namespace. 2018-11-26 10:24:32 +00:00
Vincent Coubard 74c2def5ef BLE: Fix mutability in ble::advertising_event_t 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 00da0e571a fix review comments 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 8733d52da9 event types fixed 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 9b77f9dcba default values and func names 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 68b5aad2ce ppm case 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 8cc580d986 only one connection event needed 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 2cdff44f2a cancel connection 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 365a6c8c4d set random address 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm c0f4b864ca clamp values 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 216dd6dcc7 we need clamping while we wait for c++17 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm a3820c89c5 removed impossible case 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 02d9b35bad assert added 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 32c303d7f3 missing return 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 87887cc9dd rename phy to index 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 565f1e0131 fix first element of array selection 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm fd880d1e6b fix swapping 2018-11-26 10:24:32 +00:00
paul-szczepanek-arm 62b38cfbc8 connection complete event 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 519f75587a ppm conversion 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm b98326150d fix names 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm bd8b7fa87f use set value on return 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 5e6c0c92f6 compilation errors 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 6fa7a8ffce fix type 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 9529974572 type already defined in ble types 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 4fe7d5ed90 small cleanup 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 8801ef570a fix types 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm b489e0957e pal call 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm a2f461c38e reference instead of pointer 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 32d3fa9aad shorten min max 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm edb645b492 handle creating contiguous arrays for the pal call 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 713b5c7e10 add ability to disable phy 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm d00a92d10f init param to false until user changes it 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm 4c4743db7b extended connection API 2018-11-26 10:24:31 +00:00
paul-szczepanek-arm afadc1d8c0 convert to correct time units 2018-11-26 10:24:31 +00:00
Vincent Coubard 2f8e336635 BLE: tag missing documentation block. 2018-11-26 10:24:31 +00:00
Vincent Coubard 651bf321db BLE: Use typedef in signature. 2018-11-26 10:24:31 +00:00
Vincent Coubard 5661bf6bbb BLE: remove dead code. 2018-11-26 10:24:31 +00:00
Vincent Coubard 3eebcc49ad BLE: Add more precondition check to GenericGap. 2018-11-26 10:24:31 +00:00
Vincent Coubard 24e6b89ade BLE: use uint32_t to describe ms interval in Gap::setPeriodicAdvertisingParameters 2018-11-26 10:24:31 +00:00
Vincent Coubard 01b0de2175 BLE: rename Gap:setPeriodicAdvertisingData into setPeriodicAdvertisingPayload. 2018-11-26 10:24:31 +00:00
Vincent Coubard b1c6914e34 BLE: Add periodic sync advertisement management. 2018-11-26 10:24:31 +00:00
Vincent Coubard 5236a70618 BLE: Add default minimiseFragmentationValue for Gap::setAdvertisingScanresponse. 2018-11-26 10:24:31 +00:00
Vincent Coubard 06b3ccd322 BLE: refactor parameters order of Gap::startAdvertising 2018-11-26 10:24:31 +00:00
Vincent Coubard b825ffc1f6 BLE: Handle setAdvertisingParameters on legacy controllers. 2018-11-26 10:24:31 +00:00
Vincent Coubard 413908d594 BLE: Renaming
GenericGap::is_extended_advertising_enabled become GenericGap::is_extended_advertising_available
2018-11-26 10:24:31 +00:00
Vincent Coubard df5e01bf45 BLE: wrap bitstream manipulation into a BitArray class. 2018-11-26 10:24:31 +00:00
Vincent Coubard 2e8389d4fd BLE: Create and destroy advertising sets in the controller. 2018-11-26 10:24:31 +00:00
Vincent Coubard d63c7bc948 BLE: use std::min where appropriate. 2018-11-26 10:24:31 +00:00
Vincent Coubard ad3f3c86a5 BLE: Move implementation to cpp file. 2018-11-26 10:24:31 +00:00
Vincent Coubard 87014b71b6 BLE: reorder declaration. 2018-11-26 10:24:31 +00:00
Vincent Coubard 6a55d65660 BLE: Create advertising payload builder.
This change set use a data buffer to set data and scan responses.
2018-11-26 10:24:31 +00:00
Vincent Coubard e24fcdd12a BLE: move extended advertising parameter in ble/gap folder 2018-11-26 10:24:31 +00:00
Vincent Coubard 7f9be995a2 BLE: Revert GapAdvertisingdata and create new type for extened Advertising data. 2018-11-26 10:24:31 +00:00
Vincent Coubard e4c27e5071 BLE: Introduce new type for extended advertising parameters. 2018-11-26 10:24:31 +00:00
Vincent Coubard 2c7cf2bbd9 BLE: revert GapScanningParams 2018-11-26 10:24:31 +00:00
Vincent Coubard 61536c3f64 BLE: revert non backward compatible changes.
This changeset includes order of function declaration in headers.
2018-11-26 10:24:31 +00:00
Vincent Coubard 24460de86f BLE: Implement new scan API in GenericGap 2018-11-26 10:24:30 +00:00
Vincent Coubard 4835a1afdc BLE: Add non legacy scan API. 2018-11-26 10:24:30 +00:00
Vincent Coubard 28ead51401 BLE: Add GapScanParameters type.
The new type covers what is required by extended and legacy scan parameters.
2018-11-26 10:24:30 +00:00
Vincent Coubard 27ea248863 BLE: Fix GapScanningParams includes. 2018-11-26 10:24:30 +00:00
Vincent Coubard 1a14453da1 BLE: Add mechanism to track use of non compatible scan API. 2018-11-26 10:24:30 +00:00
Vincent Coubard 962b5c34d4 BLE: Tag scanning filter policy mode with FIXME 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 2b00903a30 missing param 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm a1582bd3ac pointer to ref 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 6663171607 docs 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm b276e6edaf fix high duty cycle setting (reversed) 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 238f15b031 doc fixes 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm ca72f5a289 merged adv param types 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 8c253a3dfe proposed scan type changes 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 60fb78795b fix adv and scan types 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 5d077e6dbc new addr types for ext adv 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm c58099f0ee new scan call 2018-11-26 10:21:32 +00:00
Vincent Coubard 75c0b0ed90 BLE: Fix advertising_channel_map_t constructor. 2018-11-26 10:21:32 +00:00
Vincent Coubard 0c1e01952b Compilation fixes 2018-11-26 10:21:32 +00:00
Vincent Coubard fb804bf85a BLE: Fix GapExtendedAdvertisingParams visibility and constness. 2018-11-26 10:21:32 +00:00
Vincent Coubard e951fa15ff BLE: Fix GapExtendedAdvertisingParams::getPeerAddress return type. 2018-11-26 10:21:32 +00:00
Vincent Coubard 426de4a2d9 BLE: Fix GapAdvertisingData copy constructor. 2018-11-26 10:21:32 +00:00
Vincent Coubard 2f53ee896c BLE: Add setters to advertising_event_t and use it in GapExtendedAdvertisingParams. 2018-11-26 10:21:32 +00:00
Vincent Coubard d1e3800e79 BLE: Refactor AdvReportOptionalInformation and onAdvertisingReport 2018-11-26 10:21:32 +00:00
Vincent Coubard 5e707731f2 BLE: Wrap advertising data in a span. 2018-11-26 10:21:32 +00:00
Vincent Coubard dee48e71e3 BLE: Typedef ble::advertising_event_t into Gap::AdvertisingEventType_t 2018-11-26 10:21:32 +00:00
Vincent Coubard f930905947 BLE: Regactor Gap::EventHandler::onScanRequest signature. 2018-11-26 10:21:32 +00:00
Vincent Coubard 14b24d324c BLE: Move advertising_handle_t into ble namespace. 2018-11-26 10:21:32 +00:00
Vincent Coubard f83f32948a BLE: Fix typo in arguments name. 2018-11-26 10:21:32 +00:00
Vincent Coubard 44d8545dc8 BLE: Add ANONYMOUS in peer_advertising_type_t 2018-11-26 10:21:32 +00:00
Vincent Coubard e58928def1 Move advertising event and advertising event data status to ble. 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 78a4bdda8a type translation 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 8794c0b43b make packetisation common 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 87482b5530 compilation errors fixed 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm a5e1bdb97e missing parens 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 060d2f5216 advertising data only contains advertising data 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 52f54c032a compiilation errors 2018-11-26 10:21:32 +00:00
paul-szczepanek-arm 4a86b3dd10 typo in var name 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 019b0c2146 added constructor to use with deprecated data 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 93b0b9f6e2 fix getting value instead of address 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 944d867c79 fix comments and missing comma in constructor 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 9d83a8e134 non braking Advertising data deprecation 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 26f40e07f7 packetisation 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 834e6c4f9b Update mbed-os/features/FEATURE_BLE/ble/GapAdvertisingData.h 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 56146a44fb legacy support 2018-11-26 10:21:31 +00:00
Vincent Coubard 7de5d8c763 Merge pull request #4 from pan-/extended
Last bit of PAL extended advertising implementation.
2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 6ca5041f53 generic advertising 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm f35ebcc900 simplify params to avoid holding state 2018-11-26 10:21:31 +00:00
Vincent Coubard 8fa62ec719 BLE: Add count function to phy_set_t 2018-11-26 10:21:31 +00:00
Vincent Coubard ca68323930 Add explicit cast to bool. 2018-11-26 10:21:31 +00:00
Vincent Coubard 7d9c3d1432 Improve advertising_event_properties_t constructor. 2018-11-26 10:21:31 +00:00
Vincent Coubard d836841e0f Add missing pure qualifier to PAL GAP APIs. 2018-11-26 10:21:31 +00:00
Vincent Coubard 74cf305452 Add PAL declaration for extended and periodic advertising 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm ff68c94ec2 update state on disconnect fix 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 1f2ee0d873 missing include 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm 6932789453 extended advertising scanning and connecting API 2018-11-26 10:21:31 +00:00
paul-szczepanek-arm abfd647279 moved SimpleEventQueue 2018-09-27 13:56:38 +01:00
paul-szczepanek-arm 46d19d3732 check WsfBufAlloc 2018-09-27 13:45:36 +01:00
paul-szczepanek-arm 90be8d7807 replace malloc with cirdio buffer allocation 2018-09-27 12:20:00 +01:00
paul-szczepanek-arm a2c9781682 fix whitelist generation (set correct address type) 2018-09-05 16:46:01 +01:00
Cruz Monrreal 83e0e65a42
Merge pull request #7726 from SenRamakri/sen_BLE_ErrorUpdate
Update BLE error calls to use new error codes and mbed_error
2018-09-02 20:47:40 -05:00
Vincent Coubard 7a503ca1a2 BLE: Fix doxygen. 2018-08-30 09:25:50 +01:00
paul-szczepanek-arm db3d124516 moved the utility function into the pal since it's only useful below pal 2018-08-29 20:25:56 +01:00
paul-szczepanek-arm 03f44e7a29 accidental spare const removed 2018-08-29 20:25:56 +01:00
paul-szczepanek-arm 8ac6e2c30d added doxygen to constructors and const to getters 2018-08-29 20:25:56 +01:00
paul-szczepanek-arm 76624ad6ec provide stubs for events
use gap.h typedef for Phy_t for consistency
2018-08-29 20:21:04 +01:00
paul-szczepanek-arm 5598958c6d formatting for docs 2018-08-29 20:21:04 +01:00
paul-szczepanek-arm baaebb47dc fix typo in preferred 2018-08-29 20:21:04 +01:00
paul-szczepanek-arm d64479a2ee docuemnted PHY api 2018-08-29 20:21:04 +01:00
paul-szczepanek-arm 8090e7acd8 phy API implementation for cordio
phy set types added, nordic implementation updated
2018-08-29 20:21:04 +01:00
Paul Szczepanek d5c675e300 Merge pull request #6 from paul-szczepanek-arm/feature-support
support for controller features
2018-08-29 20:15:58 +01:00
Vincent Coubard 47ea39982f Merge pull request #2 from pan-/PHY_API
Phy api
2018-08-29 20:15:58 +01:00
Vincent Coubard 4deb64aed1 Merge pull request #1 from pan-/PHY_API
Phy api
2018-08-29 20:15:58 +01:00
Senthil Ramakrishnan 7803a40fbd Update BLE error calls to use new error codes and mbed_error 2018-08-17 22:52:50 -05:00
paul-szczepanek-arm 399191fc9c reuse existing call 2018-06-20 08:24:26 +01:00
paul-szczepanek-arm 4b1ce49ee1 use sets to apply limits 2018-06-19 15:18:11 +01:00
paul-szczepanek-arm 588e68bccf add setScanParams overload 2018-06-19 14:36:18 +01:00
paul-szczepanek-arm 265132c5a8 check that flags have the IRK stored before retrieving it 2018-06-05 15:15:19 +01:00
paul-szczepanek-arm 3a2dc69f11 fix not updating size of array 2018-06-01 15:57:22 +01:00
Paul Szczepanek f4b7f32793
Merge pull request #49 from pan-/fix-privacy-backward-compatibility
Fix privacy backward compatibility
2018-05-23 14:20:49 +01:00
Vincent Coubard b973a8a490 BLE: Add default constructor to peer_address_type_t 2018-05-21 15:29:54 +01:00
Vincent Coubard bdad5d6496 BLE Generic: Handle peer address type backward compatibility. 2018-05-21 13:29:06 +01:00
Vincent Coubard cbba6dd0d6 BLE PAL: Update connection event to support enhanced connection events. 2018-05-21 13:22:31 +01:00
paul-szczepanek-arm 62ba220100 doxygen fix 2018-05-21 11:42:32 +01:00
Vincent Coubard 28766bd873 BLE: Do not pass peer resolvable address in connection event handler 2018-05-21 10:17:44 +01:00
paul-szczepanek-arm 9da64e529e refactor into separate functions for readability and correctness of pal matching db 2018-05-18 13:46:55 +01:00
paul-szczepanek-arm 439d002f7d new API call to change db at runtime 2018-05-18 12:34:52 +01:00
Vincent Coubard d361960aa3 BLE: Use peer_address_type_t instead of the legacy address in security manager. 2018-05-18 10:04:27 +01:00
paul-szczepanek-arm a8ac925b4f privacy doxygen overview 2018-05-17 16:48:49 +01:00
paul-szczepanek-arm 7e69444458 security manager doxygen overview updated 2018-05-17 14:10:57 +01:00
Vincent Coubard a052afdd40 BLE: Update APIs to take advantage of ble::peer_address_type_t
Deprecation:

* Gap::AdvertisementCallback::addressType has been deprecated in favor of Gap::AdvertisementCallback::peerAddrType.
* Gap::ConnectionCallbackParams::peerAddrType has been deprecated in favor of Gap::ConnectionCallbackParams::peerAddressType.
* Gap::ConnectionCallbackParams::ownAddr has been deprecated in favor of nothing else as this information may be not available.

Overloads added to accept a peer_address_t:

* Gap::connect
* Gap::processConnectionEvent
* Gap::processAdvertisingReport
2018-05-17 13:27:15 +01:00
Vincent Coubard 7f05fc0e00 BLE: Define peer_address_type_t
This type model a peer address, unlike BLEProtocol::AddressType, it is compatible with privacy concepts.
2018-05-17 10:30:24 +01:00
Vincent Coubard e5d91932fd BLE: Revert address type changes.
The changes made to BLEProtocol::AddressType was not entirelly backward compatible as BLEProtocol::AddressType split random addresses in three category while the type RANDOM is a superset of these types.
2018-05-17 10:26:04 +01:00
paul-szczepanek-arm b845a9dc95 fixed doxygen 2018-05-16 17:24:17 +01:00
Donatien Garnier 3f7a7a4213 Merge 2018-05-16 12:44:36 +01:00
Donatien Garnier 1fdb57e82c Removed set_privacy() API and added is_privacy_supported() check to PAL + Generic GAP 2018-05-16 12:02:21 +01:00
paul-szczepanek-arm 1ae13bc80f don't reset db on security manager reset as the docs require 2018-05-16 11:46:36 +01:00
paul-szczepanek-arm bcca75973e reseting the security db 2018-05-16 11:23:17 +01:00
Vincent Coubard afcbdfc7dc Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into filedb 2018-05-16 08:43:52 +01:00
Donatien Garnier 288c3952d8 Address Paul's comments 2018-05-15 18:37:50 +01:00
paul-szczepanek-arm 5c598688e4 templates for reading and writing to avoid repetition 2018-05-15 16:35:54 +01:00
Vincent Coubard ee720f30bb BLE: Comment security requirement elevation for signed writes. 2018-05-15 12:17:59 +01:00
Vincent Coubard 2c7ed993ec BLE: Fix security requirements in GattCharacteristic. 2018-05-15 12:17:34 +01:00
paul-szczepanek-arm 49db7e2a2a restoring db file blanks file if set to not restore, allow reusing the db 2018-05-15 11:46:39 +01:00
Donatien Garnier 472d3de849 Give GenericGap access to the Security Manager's PAL 2018-05-14 13:36:02 +01:00
Donatien Garnier a3d9d6cebd Business logic for handling non-resolvable private addresses 2018-05-14 13:26:39 +01:00
paul-szczepanek-arm 579cb5e222 avoid setting flags twice 2018-05-14 10:26:44 +01:00
paul-szczepanek-arm f4f3a3c697 store ltk and csrk but not irk sent status
and missing asserts
2018-05-14 09:52:49 +01:00
paul-szczepanek-arm a7f8d54761 more doxygen 2018-05-13 23:54:44 +01:00
paul-szczepanek-arm d3524e2407 doxygen 2018-05-13 23:49:44 +01:00
paul-szczepanek-arm 23c6a69d66 key dist flags only in db now and not in control block of sec manager 2018-05-13 23:26:34 +01:00
paul-szczepanek-arm ab117737fa write back counter, sync entry by hand;e 2018-05-13 22:55:47 +01:00
Donatien Garnier 6a2ffaeac0 Update own address type generation in GenericGap 2018-05-13 22:16:08 +01:00
Donatien Garnier 1a623e6670 Added method to enable/disable privacy in GAP Pal with Cordio impl 2018-05-13 19:15:20 +01:00
Donatien Garnier 4c5e2a8094 Added method to update resolution settings in GenericGap 2018-05-13 19:14:56 +01:00
Donatien Garnier cf03d40909 Doc fix in PalGap.h 2018-05-13 18:54:11 +01:00
Donatien Garnier 5734fca195 Added set_address_resolution method in GAP Pal with Cordio implementation 2018-05-13 18:53:23 +01:00
Donatien Garnier 7b4a813aca Added stubs in GenericGap for privacy configuration methods 2018-05-13 18:52:54 +01:00
Donatien Garnier e9ad148db0 Added privacy-related methods overrides in GenericGap 2018-05-13 17:57:27 +01:00
paul-szczepanek-arm 3af4d0b50f get identity list function argument needs to have its own memory allocated 2018-05-11 19:52:12 +01:00
paul-szczepanek-arm a63f38e767 moved logic to security db and left storage in memory and file dbs
db created at init now
2018-05-11 19:41:33 +01:00
paul-szczepanek-arm 678d494c5a init _db pointer 2018-05-11 10:20:04 +01:00
paul-szczepanek-arm afa4bdcf1a pull common logic into secure db 2018-05-11 10:19:48 +01:00
Vincent Coubard 40a403e99b Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into fix-encryption-rejection 2018-05-10 12:05:36 +01:00
paul-szczepanek-arm 473482d204 move securitydb into generic 2018-05-10 11:08:31 +01:00
Paul Szczepanek 2b02148ab6
Merge branch 'master' into security-manager-dev 2018-05-09 11:23:28 +01:00
Paul Szczepanek 9a0a0865a6
Merge branch 'security-manager-dev' into sm-privacy-nordic 2018-05-08 18:01:41 +01:00
Paul Szczepanek 214656a9ee
fix case in #include 2018-05-08 17:56:38 +01:00
Paul Szczepanek 1a35f3e217
fixed case in name 2018-05-08 17:49:22 +01:00
Vincent Coubard b5e8d4eacb Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into fix-encryption-rejection 2018-05-03 09:26:36 +01:00
Vincent Coubard 4e5639f5ca BLE: Support encryption with secure connection key. 2018-05-02 17:51:48 +01:00
Donatien Garnier ba0f18c9ab Fix casing in MemorySecurityDb.h 2018-05-02 17:39:10 +01:00
Vincent Coubard 74bc214961 BLE - Security Manager PAL: Add a function to remove the peer csrk.
If the the upper layer has registered a peer csrk on the pal security manager then it must remove it once the connection is closed.

This API allows the upper layer to remove the peer csrk registered earlier.
2018-05-01 11:27:38 +01:00
Vincent Coubard 1e277bad50 BLE: Lookup for non identity addresses when a secure entry is opened.
A peer may not share a valid IRK and identity address during pairing (in that case the identity address received is all zeros). When this happens, the entry must be retrieved by looking at the address used by the peer during the connection.
2018-05-01 11:24:44 +01:00
Vincent Coubard c4b78ada0e BLE: Set default mac address to 00:00:00:00:00:00
Both mac addresses are invalid but the bluetooth specification prefers to use all 0 addresses to represent an invalid address.
2018-05-01 11:17:47 +01:00
Vincent Coubard 80941af0f6 BLE: Add : LESC authenticated encryption to the list of possible link encryption. 2018-05-01 11:16:41 +01:00
Vincent Coubard db565d38b3 BLE: remove useless flags in GattCharacteristic. 2018-04-26 19:00:43 +01:00
Vincent Coubard 486a3e020c BLE: Add fine grained security to GattCharacteristic.
This patch adds independent management of security requirement for read, write and update operatiosn of a GattCharacteristic.

Requirements are defined after ble::att_security_requirement_t that maps LE security mode 1 and LE security mode 2.

The functions requireSecurity and getRequiredSecurity are deprecated as SecurityManager::ScurityMode_t does not map well with LE security modes.
2018-04-26 18:55:42 +01:00
Vincent Coubard 1c18351885 BLE: Remove unwanted documentation block of GattCharacteristic. 2018-04-26 17:29:29 +01:00
Vincent Coubard 9258b9ddb6 BLE: Add security requement support into GattAttribute. 2018-04-26 17:26:15 +01:00
Vincent Coubard 7afd01d84d BLE: Add type describing ATT security requirements. 2018-04-26 17:22:21 +01:00
Vincent Coubard 27d36ba820 BLE: Add missing relational operator to SafeEnum. 2018-04-26 17:07:54 +01:00
Vincent Coubard cbb33ea938 BLE: Add comments to GenericSecurityManager::on_identity_list_retrieved. 2018-04-20 10:22:56 +01:00
Vincent Coubard 0b92397840 BLE: Fix flag IRK stored in Memory security DB. 2018-04-20 10:22:13 +01:00
paul-szczepanek-arm f56f57bf15 reorder enum to add new values at the end 2018-04-17 16:25:35 +01:00
Vincent Coubard 951a6be4c8 BLE: retrieve and fill resolving list at GenericSecurityManager startup. 2018-04-17 15:58:21 +01:00
Vincent Coubard ede3d43743 BLE: Add function to querry the list of identity addresses present in the SecureDB. 2018-04-17 15:57:30 +01:00
Vincent Coubard 77b1903634 BLE: Add bonded device to resolving list at the end of bonding. 2018-04-17 14:16:35 +01:00
Vincent Coubard ae8d5b4de1 BLE: Implement identity retrieval in secure DB. 2018-04-17 14:15:28 +01:00
Vincent Coubard f905d2a4d4 BLE: Improve DB entry lookup.
The DB entry lookup now looks at the identity address and/or connection address to find a DB entry associated to an address.

If the entry has not been found in the DB and a new entry is returned then the connection address is not stored for private addresses.
2018-04-17 14:14:53 +01:00
Vincent Coubard a3bb18d724 BLE: store identity address type in DB. 2018-04-17 14:11:05 +01:00
Vincent Coubard 06e0aa3440 BLE: flag that irk has been stored in the security entry. 2018-04-17 14:10:19 +01:00
Vincent Coubard 6fc74fbc44 BLE: Fix MemorySecurityDB constructor warning. 2018-04-17 14:09:00 +01:00
Vincent Coubard 15fa3bfd37 BLE: Add a function to retrieve a device identity. 2018-04-17 14:08:01 +01:00
Vincent Coubard e8041510a6 BLE: Add a flag that indicate if the identity address is public or not. 2018-04-17 14:07:19 +01:00
Vincent Coubard ab6821aab8 BLE: Add a flag indicating if irk is stored in the distribution flags. 2018-04-17 14:06:47 +01:00
Vincent Coubard 9643b57159 BLE: Remove flag SecurityDistributionFlags_t::local_address_is_public
This flag was not used and not useful.
2018-04-17 14:06:00 +01:00
Vincent Coubard dfbf383614 BLE: Fix const correctness of ::Gap::getRandomAddressType 2018-04-17 14:03:57 +01:00
Vincent Coubard 51e1c76b4a BLE: Set default mac address to all 00. 2018-04-17 14:03:20 +01:00
Vincent Coubard a7f2384e10 BLE: Add default privacy configuration 2018-04-16 18:18:04 +01:00
Vincent Coubard 90c85955ad BLE: Fix GAP privacy related signatures. 2018-04-12 11:04:44 +01:00
Vincent Coubard 2811e00868 BLE: Fix Gap privacy related documentation 2018-04-12 10:37:13 +01:00
Vincent Coubard 1f02913a2c BLE: Add Gap privacy interfaces.
This commit adds API to enable and configure the device privacy.
It deprecates address random types present in Gap::AddressType as these types are not appropriate for scan reports, connection initiation and the connection event. Now user should use the function Gap::getRandomAddressType to find the type of a random address.
The function gap::setAddress is deprecated as it is not portable and can colide with privacy.
2018-04-11 14:18:42 +01:00
Paul Szczepanek 6c900642e5
Merge pull request #28 from paul-szczepanek-arm/signing-counter
sign counter added
2018-04-10 17:06:14 +01:00
paul-szczepanek-arm deeb0ea7e0 redundant store for sign counter 2018-04-09 15:11:26 +01:00
paul-szczepanek-arm 637dcb9bc8 missing * 2018-04-09 15:10:25 +01:00
paul-szczepanek-arm 55d3423a5e typedef uint32_t 2018-04-09 13:35:17 +01:00
Vincent Coubard f53a0e4906 Merge branch 'security-manager-dev' of https://github.com/paul-szczepanek-arm/mbed-os into sc-nordic 2018-04-09 09:09:01 +01:00
paul-szczepanek-arm 57149b69e4 monitor for signing events and set local counter 2018-04-04 19:24:00 +01:00
paul-szczepanek-arm 1d74dfa1f9 redundant funcs removed 2018-04-04 18:02:16 +01:00
Vincent Coubard dcff810457 BLE: replace byte_array_t::buffer with byte_array_t::data 2018-04-04 17:20:08 +01:00
paul-szczepanek-arm 2e1c5fc123 completely redundant 2018-04-04 17:16:16 +01:00
paul-szczepanek-arm 539a11ee31 sign counter added 2018-04-04 15:59:10 +01:00
Vincent Coubard cd39406d20 BLE: Add conversion function from byte_array_t to ArrayView. 2018-04-04 15:28:52 +01:00
Vincent Coubard 5761caff00 BLE: Extend ArrayView to encode size in type.
With this change, it is possible to encode the size of the array viewed by an ArrayView into the type itself: ArrayView<T, Size>. Such objects are lighter than ArrayView of arbitrary size and allows verification of the size at compile time.

This change also fix operator== and bring new make_ArrayView overloads.
2018-04-04 15:28:17 +01:00
Vincent Coubard 9e1f0b34f8 BLE: Fix byte_array_t subscript operator 2018-04-04 15:22:15 +01:00
Vincent Coubard d8f3d9c5ef BLE: provide non const overload of byte_array_t::data member function. 2018-04-04 15:21:54 +01:00
Vincent Coubard bf41bb3164 BLE: Export byte_array_t size exploitable at compile time. 2018-04-04 15:21:05 +01:00
paul-szczepanek-arm cbf80e9da5 typos, style and other review fixes 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm f5fee68f99 fixed naming for sig failure count 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm 9283413c4c count failures, trigger reparing when verification fails 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm 780d8a4375 let the stack know whether csrk is authenticated 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm 8d966dbe8c invalid mic event 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm 5ae9cc3b53 set peer csrk on pal 2018-04-03 15:41:43 +01:00
paul-szczepanek-arm 26b047549c extra comments for api 2018-04-03 15:17:15 +01:00
paul-szczepanek-arm 0a494a0bbc all_zeros now free functions 2018-04-03 14:47:27 +01:00
paul-szczepanek-arm ba5b0f30d2 added comments about address for oob generation 2018-04-03 13:54:29 +01:00
paul-szczepanek-arm 3c1a5a4a56 incorrect retval usage fixed 2018-04-03 12:16:49 +01:00
Vincent Coubard 95cd37b491 BLE: Add const overload for byte_array_t subscribt operator. 2018-03-29 17:22:48 +01:00
Donatien Garnier 8b66c4bd28 [BLE] Fixed inconsistent casing issue for SecurityDb 2018-03-28 10:44:09 +01:00
paul-szczepanek-arm aa90f0df65 rely solely on random vlalue to know if already calculating
simplify by setting a fake random value at the start so that first run is the same as subsequent runs
2018-03-27 12:25:50 +01:00
paul-szczepanek-arm 02ba2848a8 avoid recalculating oob fi already calculating 2018-03-26 17:48:32 +01:00
Vincent Coubard db20ecbbde
Merge branch 'security-manager-dev' into oob-gen 2018-03-26 16:49:55 +01:00
paul-szczepanek-arm 98efb9da06 generate oob at will and without passing in connection handle 2018-03-23 18:31:27 +00:00
Vincent Coubard e25d5c9aa3 BLE: qualification of SecurityManager types 2018-03-23 12:06:08 +00:00
paul-szczepanek-arm 909f9513cf allow preloading legacy oob, generate tk 2018-03-22 12:01:34 +00:00
paul-szczepanek-arm 66867d4dd3 oob stored in generic and handed over to pal when requested 2018-03-16 14:48:04 +00:00
paul-szczepanek-arm 1521dee773 add doxygen comment about OOB deneration cause bu setOOBDataUsage 2018-03-09 18:06:56 +00:00
paul-szczepanek-arm 1f8c5c1231 fixed typos 2018-03-09 14:22:28 +00:00
paul-szczepanek-arm b8ba99a184 handling OOB data generation and verification now pushed down to PAL level 2018-03-05 11:29:13 +00:00
Donatien Garnier a3383c139b Addressed Vincent's comments 2018-03-01 20:32:37 +00:00
paul-szczepanek-arm ded1403399 security manager overview doc fixes 2018-03-01 19:55:44 +00:00
paul-szczepanek-arm 371f183a6a added one more sequence diagram 2018-03-01 18:49:43 +00:00
paul-szczepanek-arm 1f52e42bcf more detailed comment for confirmation request 2018-03-01 18:31:16 +00:00
paul-szczepanek-arm e706b41ccf removed redundant event for SC OOB request, fixed comments 2018-03-01 16:39:44 +00:00
Vincent Coubard f0405690b7 BLE: Resolve issue with address type in advertising report. 2018-03-01 15:48:21 +00:00
paul-szczepanek-arm 392ee6ec7c removed get encryption key size from API 2018-03-01 15:29:52 +00:00
Donatien Garnier 00df64b26c Fixed PasskeyAscii constructor 2018-03-01 15:16:47 +00:00
Vincent Coubard 1170b3132d BLE: Remove useless pal sm API 2018-03-01 14:46:12 +00:00
paul-szczepanek-arm f9a79bed15 fixed initiator distribution bug and setting LINK distribution field based on SC 2018-02-28 17:43:54 +00:00
paul-szczepanek-arm d20c4efbf3 documentation overview for securitymanager 2018-02-28 17:00:56 +00:00
paul-szczepanek-arm 701c18b428 missing documentation, removed privacy call from api 2018-02-28 13:49:51 +00:00
paul-szczepanek-arm c52d324dab pass in information about the mitm and sc quality of the ltk to the pal 2018-02-28 12:02:54 +00:00
paul-szczepanek-arm 975544f274 link key distribution decision made in generic security manager 2018-02-27 23:26:34 +00:00
paul-szczepanek-arm 96de1c2752 header guards renamed 2018-02-27 17:25:57 +00:00
paul-szczepanek-arm e186985b26 addressing PR review: added documentation, moved code and renamed vars 2018-02-27 17:22:13 +00:00
paul-szczepanek-arm fc01cff1b3 removed using statements from header 2018-02-27 12:25:01 +00:00
paul-szczepanek-arm d264512c8c remove virtual as per review request 2018-02-27 12:15:40 +00:00
Vincent Coubard 928dbcf325
BLE: Fix prefix of BLEProtocol::AddressType 2018-02-27 12:12:17 +00:00
paul-szczepanek-arm 957cee39fe Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os 2018-02-27 11:57:20 +00:00
paul-szczepanek-arm 0f1fd58c38 removed MIC related functions and events from the user API 2018-02-27 11:57:16 +00:00
Vincent Coubard 0b0d614787 Merge branch 'master' of https://github.com/paul-szczepanek-arm/mbed-os into pr-sm 2018-02-27 11:54:32 +00:00
paul-szczepanek-arm 62e9011525 public key renaned (added coord), also contains missing commit for oob_rand rename 2018-02-27 11:50:04 +00:00
Vincent Coubard 361ae8c7a3 BLE: fix references to oob_rand_t. 2018-02-27 11:48:21 +00:00
paul-szczepanek-arm 4010bade89 reanmed type as per review request 2018-02-27 11:43:46 +00:00
paul-szczepanek-arm 4fd29630b3 removed redundant type 2018-02-27 11:23:22 +00:00
paul-szczepanek-arm 8142cb5131 redundant call removed 2018-02-27 10:45:31 +00:00
paul-szczepanek-arm 5de1979f5c types renamed as per review requests 2018-02-27 10:33:35 +00:00
paul-szczepanek-arm 55106362f0 removed redundant type 2018-02-27 09:59:35 +00:00
paul-szczepanek-arm c9690c9f59 upate doxygen since passkey is no longer a pointer 2018-02-27 09:22:36 +00:00
Vincent Coubard 3554a63dc8
BLE: Add default addressType to processAdvertisementReport
This patch should be reverted once the ST shield library and mbed-os-cliapp have been updated to support this change in the porting API.
2018-02-26 09:59:17 +00:00
Vincent Coubard 1f4e2b1820
BLE: Fix Gap::processAdvertisementReport documentation 2018-02-23 17:32:22 +00:00
Vincent Coubard d586f7f9d2 BLE: update SecurityDB comments. 2018-02-23 13:54:41 +00:00
Vincent Coubard 1ded0d7198 BLE: Split security manager control block from the secure DB. 2018-02-23 11:15:08 +00:00
Vincent Coubard 2bb73fd8bb BLE: Cleanup includes of pal::ConnectionEventMonitor. 2018-02-23 11:13:42 +00:00
Vincent Coubard c5be493bb7 BLE: Add address type in AdvertisementCallbackParams_t. 2018-02-21 17:41:14 +00:00
Vincent Coubard e3d7f2bb05 BLE: Add address type in AdvertisementCallbackParams_t. 2018-02-21 14:14:31 +00:00
paul-szczepanek-arm c65419239f fixed compiler errors for pal after its update 2018-02-20 18:01:21 +00:00
Vincent Coubard 4ce0ed9c0c BLE: Remove dependency of GenericSecurityManager towards gap. 2018-02-19 17:46:41 +00:00
Vincent Coubard 28f2f46974 BLE: Hide event monitor inside pal. 2018-02-19 17:41:18 +00:00
Vincent Coubard bcea06fb32 BLE: Fix inclusion of mbed_error.h 2018-02-19 17:32:10 +00:00
Vincent Coubard cc896f1b52 BLE: Add mock for the security db. 2018-02-19 17:32:10 +00:00
paul-szczepanek-arm dd7bc50e4b Merge branch 'master' into palsm 2018-02-19 16:39:10 +00:00
paul-szczepanek-arm ecacbda507 compiler errors fixed after the merge 2018-02-19 16:28:01 +00:00
paul-szczepanek-arm 8cf7b3b06f Merge branch 'palsm' of https://github.com/paul-szczepanek-arm/mbed-os into palsm 2018-02-19 15:35:39 +00:00
paul-szczepanek-arm d9156a28e2 connection monitor 2018-02-19 15:32:07 +00:00
Vincent Coubard 15cfcba16a BLE: Move security DB into PAL. 2018-02-19 14:43:56 +00:00
Vincent Coubard 6529d677c1 BLE: Fix include prefixes. 2018-02-19 13:46:46 +00:00
paul-szczepanek-arm 2f1e211da1 set entry state on connect 2018-02-13 16:41:36 +00:00
paul-szczepanek-arm d44af8c40a don't handle event handler memory by the SM 2018-02-13 12:11:17 +00:00
paul-szczepanek-arm 55045010d6 fixed all the compilation errors and recent pal changes 2018-02-13 11:01:30 +00:00
paul-szczepanek-arm 35b4ae4bc7 typos 2018-02-12 14:42:31 +00:00
paul-szczepanek-arm 581b5755b8 removed duplicate event handler, removed redundant using statements 2018-02-12 13:40:04 +00:00
paul-szczepanek-arm 2c1fcc7235 style 2018-02-12 10:27:27 +00:00
paul-szczepanek-arm 90c30c9022 typo 2018-02-11 18:19:56 +00:00
paul-szczepanek-arm c93e800eea missing ref 2018-02-11 18:13:54 +00:00
paul-szczepanek-arm 934d8f9235 pointers changed to references for a consistent PAL 2018-02-11 18:08:21 +00:00
paul-szczepanek-arm 68db4dd52f avoiding compiler issues 2018-02-11 15:37:23 +00:00
Vincent Coubard 2e64b710a1 Ble: fix size function in advertising_data_t and address_t. 2018-02-09 16:43:29 +00:00
paul-szczepanek-arm e91ab466ea doxygen added 2018-02-09 16:39:01 +00:00
paul-szczepanek-arm 18062fc9de GAP integration for connection and disconnection events 2018-02-09 16:35:16 +00:00
paul-szczepanek-arm 769c97e32c random data generation 2018-02-09 13:55:33 +00:00
paul-szczepanek-arm fe9b558a2a init random number on local device for OOB data 2018-02-09 13:29:37 +00:00
paul-szczepanek-arm 564749674f cmac using the tls implementation 2018-02-09 12:54:08 +00:00
paul-szczepanek-arm 947c6ed239 implement oob data store in db 2018-02-09 11:11:35 +00:00
paul-szczepanek-arm 0806584e45 oob presence set correctly for legacy pairing 2018-02-09 10:52:39 +00:00
paul-szczepanek-arm a2cff3079e move oob to db, add cmac helper func 2018-02-08 21:48:43 +00:00
paul-szczepanek-arm 0a54ca39d0 move pairing under its own heading to match other parts 2018-02-08 18:41:35 +00:00
paul-szczepanek-arm 56530d4917 sc oob verification needs local random value 2018-02-08 18:35:02 +00:00
paul-szczepanek-arm d061c89e31 storing sc oob, checking for its presence 2018-02-08 18:23:23 +00:00
paul-szczepanek-arm cba77ad5d1 saving public keys 2018-02-08 16:36:06 +00:00
paul-szczepanek-arm 0b15798673 style and moved for clarity 2018-02-08 16:03:52 +00:00
paul-szczepanek-arm b5b86b72fe oob handling inside genric for secure connections 2018-02-08 15:17:12 +00:00
paul-szczepanek-arm 1b6a84d5a4 oob data propagated to pal 2018-02-07 10:16:44 +00:00
paul-szczepanek-arm 4c56f8980d removed redundancy in types 2018-02-06 23:08:32 +00:00
paul-szczepanek-arm 8cc36650df added OOB to interface, moved address type to common 2018-02-06 22:59:21 +00:00
paul-szczepanek-arm b6be4df162 doxygen 2018-02-06 22:01:54 +00:00
paul-szczepanek-arm 1446142b60 ltk for secure connections 2018-02-06 21:50:57 +00:00
paul-szczepanek-arm 3236eada5e multiple ltks single irk and csrk 2018-02-06 21:16:22 +00:00
paul-szczepanek-arm 7aa9ae7888 fix typos 2018-02-06 15:39:31 +00:00
paul-szczepanek-arm aba65d7fd5 added doxygen 2018-02-06 14:32:47 +00:00
paul-szczepanek-arm 9bc8c56df3 address types added, secure connectins oob added 2018-02-06 10:17:31 +00:00
paul-szczepanek-arm 32e91ac168 removed idenitty list as resolution will be done insite the db asynchronously 2018-02-01 10:00:10 -06:00
paul-szczepanek-arm f53359f60c doxygen 2018-01-31 16:42:35 -06:00
paul-szczepanek-arm 132b9e01bf fix encryption call to accept 16 octets 2018-01-31 16:23:45 -06:00
paul-szczepanek-arm 714069b965 deal with failed LTK retrieval, remove unused functionality, more doxygen 2018-01-31 14:16:56 -06:00
paul-szczepanek-arm 5498b79f55 doxygen, moved types to common 2018-01-31 12:06:01 -06:00
paul-szczepanek-arm 62502fe1c8 more doxygen and naming consistency 2018-01-31 11:27:32 -06:00
paul-szczepanek-arm 2060ad5df0 we don't need two event handler since now the generic security manager implements the interface 2018-01-30 17:01:30 -06:00
paul-szczepanek-arm e686eec048 missing implementation for whitelist from bond table and more doxygen 2018-01-30 16:49:35 -06:00
paul-szczepanek-arm 322ee90797 doxygen fixes 2018-01-30 14:00:21 -06:00