| c74113c4 |
shared/gatt: Cancel discovery requests in client
This patch fixes potential cases of invalid access if discovery and
MTU exchange procedure callbacks are invoked after cleaning up a
bt_gatt_client, by cancelling all pending discovery and exchange MTU
requests in bt_gatt_cancel_all. |
Arman Uguray |
10 years ago |
1 file, +85, -28 |
| eb5e4671 |
shared/gatt: Make discovery operations cancelable
This patch makes discovery operations cancelable by exposing the
internal discovery op structure as bt_gatt_async_req. This structure
keeps track of the ATT request ids of discovery procedures that occur
over multiple ATT protocol requests.
Users can cancel an ongoing request by calling bt_gatt_async_req_cancel.
Each discovery helper function returns a pointer to the structure with
one addition reference count assigned to the caller, so the caller is
responsible for cleaning up the memory by calling
bt_gatt_async_req_unref. |
Arman Uguray |
10 years ago |
2 files, +167, -122 |
| 0986ba25 |
shared/gatt: Return ATT id for exchange MTU
bt_gatt_exchange_mtu now returns the underlying ATT protocol id so that
the upper layer can cancel the operation if needed. |
Arman Uguray |
10 years ago |
2 files, +7, -8 |
| bc60ca0c |
android/gatt: Fix error message in signed_write_cmd |
Szymon Janc |
10 years ago |
1 file, +1, -1 |
| b48e72a9 |
android/gatt: Fix check if CSRK is authenticated |
Szymon Janc |
10 years ago |
1 file, +8, -2 |
| d117048f |
android/bluetooth: Add support for CSRK authetication level
This allows to get information if CSRK is authenticated or not.
For client it is don't care if CSRK is authenticated or not. |
Szymon Janc |
10 years ago |
3 files, +29, -26 |
| 38b280a6 |
android/bluetooth: Store if CSRK is authenticated
This adds support for storing information if CSRK is authenticated. |
Szymon Janc |
10 years ago |
1 file, +18, -0 |
| 82f925a5 |
android/gatt: Fix client signed write on encrypted link
As defined in Core Specification 4.2:
"If a connection is already encrypted with LE security mode 1, level 2
or level 3 as defined in [Vol 3] Part C, Section 10.2 then, a Write
Without Response as defined in Section 4.9.1 shall be used instead of
a Signed Write Without Response." |
Szymon Janc |
10 years ago |
1 file, +8, -8 |
| e6c4edbf |
shared: Work around when linux/if_alg.h header is not available |
Marcel Holtmann |
10 years ago |
1 file, +7, -1 |
| 2bc2cd6c |
build: Test for linux/types.h and linux/if_alg.h headers |
Marcel Holtmann |
10 years ago |
1 file, +2, -0 |
| 27296069 |
doc/test-coverage: Update Android tests count |
Szymon Janc |
10 years ago |
1 file, +2, -2 |
| 92218dc7 |
attrib/gatt: Improve robustness when searching for included services
Without this patch it is possible to enter infinite loop when
searching included services on remote device. This patch fixes that.
Issue happens when remote device replies with ending handle which is
lower than start handle we use for search |
Lukasz Rymanowski |
10 years ago |
1 file, +14, -1 |
| ba84f73c |
android/tester: Add robustness test for get included services |
Lukasz Rymanowski |
10 years ago |
1 file, +32, -0 |
| 028afb63 |
attrib/gatt: Improve robustness when searching for descriptors
Without this patch it is possible to enter infinite loop when
searching descriptors on remote device. This patch fixes that.
Issue happens when remote device replies with ending handle which is
lower than start handle we use for search. |
Lukasz Rymanowski |
10 years ago |
1 file, +14, -1 |
| beec19a7 |
attrib/gatt: Minor refactor in desc_discovered_cb
This is needed for next patch |
Lukasz Rymanowski |
10 years ago |
1 file, +6, -2 |
| 28499630 |
android/tester: Add robustness test for get descriptor |
Lukasz Rymanowski |
10 years ago |
1 file, +37, -0 |
| 2746cd4e |
android/gatt: Check status on get characteristic callback |
Lukasz Rymanowski |
10 years ago |
1 file, +8, -0 |
| 1998daa8 |
attrib/gatt: Improve robustness when searching for characteristics
Without this patch it is possible to enter infinite loop when searching
characteristics on remote device.
This patch fixes that.
Issue happens when remote device replies with ending handle which is
lower than start handle we use for search.
Found on robustness session on UPF50 |
Lukasz Rymanowski |
10 years ago |
1 file, +15, -2 |
| 746cc864 |
attrib/gatt: Minor refactor in char_discovered_cb
This will be needed by next patch |
Lukasz Rymanowski |
10 years ago |
1 file, +7, -2 |
| 7660fbd8 |
android/tester-gatt: Add robustness test for get characteristic
This test makes sure that BlueZ correctly handles incorrect response
from remote device on get characteristic. |
Lukasz Rymanowski |
10 years ago |
1 file, +32, -0 |
| 746663a2 |
attrib/gatt: Improve robustness on search primary services
Without this it is possible to put BlueZ into infinite loop when
doing primary service search on remote device.
Issue happens when remote device replies with ending handle which is
lower than start handle we use for search.
This patch fixes that
Found on robustness session on UPF50 |
Lukasz Rymanowski |
10 years ago |
1 file, +27, -2 |
| 6590e993 |
android/tester-gatt: Add robustness test for search services
This test verifies if BlueZ do not start infinitive service search
when remote device response with incorrect end handle in Read By
Group response |
Lukasz Rymanowski |
10 years ago |
1 file, +27, -0 |
| d00d1fa5 |
unit/test-gatt: Add TP/GAW/SR/BI-03-C test
Verify that a Generic Attribute Profile server can detect and
reject a Write Characteristic Value Request to a non-writeable
Characteristic Value and issue a Write Not Permitted Response. |
Bharat Panda |
10 years ago |
1 file, +6, -0 |
| 7b8f5250 |
unit/test-gatt: Add TP/GAW/SR/BI-02-C test
Verify that a Generic Attribute Profile server can detect a Write
Characteristic Value Request with an unsupported Characteristic
Value handle and issue an Invalid Handle Response. |
Bharat Panda |
10 years ago |
1 file, +6, -0 |
| fdca0c1d |
unit/test-gatt: Add TP/GAW/SR/BV-03-C test
Verify that a Generic Attribute Profile server can support writing
a Characteristic Value selected by handle. |
Gowtham Anandha Babu |
10 years ago |
1 file, +8, -1 |
| 56f7a061 |
TODO: Remove signed write task
This task has been completed. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +0, -6 |
| a46ef610 |
doc/gatt-api.txt: New ObjectManager requirements
After some discussion it was decided to require an ObjectManager
interface implementation on a per-service basis to reduce the
overhead of heaving to process and cache potentially many non-GATT
related objects. This patch updates the documentation to reflect this. |
Arman Uguray |
10 years ago |
1 file, +62, -12 |
| d8fdaf75 |
gdbus/client: Allow specifying ObjectManager path
GDBusClient currently hard-codes "/" as the remote ObjectManager path.
This is generally incorrect, as an application can choose to expose an
ObjectManager at any well-known path. This patch fixes this by allowing
the user to pass in the ObjectManager path by introducing a new
conctructor "g_dbus_client_new_full". |
Arman Uguray |
10 years ago |
2 files, +22, -6 |
| 16f61b27 |
gdbus/client: Don't GetManagedObjects w/o handlers
The client code currently issues GetManagedObjects if new handlers are
set via g_dbus_client_set_proxy_handlers. An application may set these
to NULL before unref'ing a client or to simply prevent further events.
Hence, there is no need to refresh objects or properties if all handlers
are NULL. |
Arman Uguray |
10 years ago |
1 file, +2, -1 |
| 731e9954 |
emulator/bthost: Fix calling RFCOMM callback for zero-length data |
Johan Hedberg |
10 years ago |
1 file, +14, -10 |
| 74aa69af |
tools/rfcomm-tester: Shorted unnecessarily long variable names |
Johan Hedberg |
10 years ago |
1 file, +47, -55 |
| 13b1c94c |
tools/rfcomm-tester: Add better logs |
Johan Hedberg |
10 years ago |
1 file, +13, -2 |
| 45ca5c4d |
shared/att: Emulate security level
This emulate security level for non-L2CAP transports so it can be
properly tested by unit test framework. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +7, -7 |
| 2dc64e6d |
unit/test-gatt: Add /TP/GAW/CL/BV-02-C/seclevel test
This add a test for signed write but with security level other than low
so we can verify the code use the write instead of signed write. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +30, -0 |
| 4250d2bf |
android/bluetooth: Fix not marking device as bonded
Any permanently stored key is indication of device being bonded. |
Szymon Janc |
10 years ago |
1 file, +19, -25 |
| 957999c4 |
core: Store 'Authenticated' property of CSRKs |
Johan Hedberg |
10 years ago |
1 file, +18, -3 |
| ca8bdb76 |
doc/settings-storage: Add 'Authenticated' value for CSRKs |
Johan Hedberg |
10 years ago |
1 file, +2, -0 |
| f2e7b6ae |
doc/settings-storage: Document signing key storage |
Johan Hedberg |
10 years ago |
1 file, +8, -0 |
| 6271215e |
mgmt: Update code to match updated New CSRK specification
The 'master' parameter was renamed to 'type' and now has two new
possible values. |
Johan Hedberg |
10 years ago |
4 files, +33, -12 |
| 60ba9a54 |
doc/mgmt-api: Add security level to new CSRK events
In order to distinguish between LE Security Mode 2 levels 1 and 2 we
need to know whether a CSRK is authenticated or unauthenticated. So far
this information wasn't available in the New CSRK event from the kernel.
This patch renames the Master parameter of the event to Type and adds
two new values to it. The two old values 0x00 and 0x01 still have the
same meaning as before from the local/remote CSRK perspective. Since we
so far have not known anything about the security level these values
must be assumed to be unauthenticated.
The consequence of this update is that authenticated keys with new
kernels will simply be ignored by existing code (which only accepts
values 0x00 and 0x01), however since we haven't really had any code
doing real signing so far this should be an acceptable compromise. |
Johan Hedberg |
10 years ago |
1 file, +12, -9 |
| 242993bf |
shared/gatt-client: Fix signed writes
Signed write should not be used if the transport is encrypted. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +12, -4 |
| 20574617 |
core/gatt-client: Add support for signed writes
This checks if the characteristic support authenticated-signed-writes
bit then proceed to use it. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +3, -3 |
| 7ccf113f |
core/device: Update storage if CSRK counter change
This makes sure the counter is stored so once the device is loaded again
it should contain the proper value. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +23, -0 |
| 072892bc |
core/device: Set Local/Remote CSRK
This set Local/Remote CSRK as keys to bt_att so it can use for signed
writes. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +32, -0 |
| 3e035891 |
core: Load CSRK from storage
This loads both Local and Remote CSRK information from storage so it
can be used later. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +47, -0 |
| cec14a60 |
core: Store signature counters
This stores signature counters in LocalSignatureCounter and
RemoteSignatureCounter entries so they can be reloaded later. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +3, -2 |
| 825fa14f |
tools/btgatt-server: Fix sign counter
The sing counter should be set with the counter received not
incremented by one since the check is for > the counter received may be
bigger than the increment making the counters go out of sync. |
Luiz Augusto von Dentz |
10 years ago |
1 file, +1, -1 |
| bcd94a8e |
android/pts: Update PIXIT for GAP |
Szymon Janc |
10 years ago |
1 file, +2, -1 |
| 10bfff8e |
android/pts: Update test results for HOGP |
Mariusz Skamra |
10 years ago |
1 file, +3, -3 |
| 88fb3bcc |
android/hog: Fix find included battery services
I deleted most of the code related to finding include services. This
method was used only in situation when HID service as primary service
was not found. However according to SPEC HID device shall implement
HID service as primary. Further HOG is called from hidhost's hog_conn_cb
when HID service was found and connection was established using LE. Now
searching for include services is performed because TC_HGDR_RH_BV_01_I
requires that.
I also added a queue of battery services because according to HOGP SPEC
there could be more than one battery services like in TC_HGDC_HH_BV_14_I
where there is only one HID service, and two battery services. So the
first found bas was overwritten by the second one and after reconnection
only one bas was attached. |
Mariusz Skamra |
10 years ago |
1 file, +27, -56 |