zephyr/samples/bluetooth/encrypted_advertising
Aleksander Wasaznik 8cfad44852 Bluetooth: Deprecate adv auto-resume
The host-based adv auto-resume function has both a problematic
implementation and disagreement in the community around how it should
behave. See the issue linked resolved below for details.

This patch makes the deprecation visible to the user. The user will be
better served by a auto-resume tailored their applications use case,
based on more primitive host API like `conn_cb.recycled`, which has
obvious behavior that is unlikely to change.

Resolves: https://github.com/zephyrproject-rtos/zephyr/issues/72567

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-10-08 16:57:01 +02:00
..
central zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY 2024-10-03 17:06:52 +01:00
include
peripheral Bluetooth: Deprecate adv auto-resume 2024-10-08 16:57:01 +02:00
README.rst

README.rst

.. zephyr:code-sample:: bluetooth_encrypted_advertising
   :name: Encrypted Advertising
   :relevant-api: bluetooth

   Use the Bluetooth LE encrypted advertising feature.

Overview
********

This sample demonstrates the use of the encrypted advertising feature, such as:

 - the exchange of the session key and the initialization vector using the Key
   Material characteristic,
 - the encryption of advertising payloads,
 - the decryption of those advertising payloads,
 - and the update of the Randomizer field whenever the RPA is changed.

To use the :c:func:`bt_ead_encrypt` and :c:func:`bt_ead_decrypt` functions, you must enable
the Kconfig symbol :kconfig:option:`CONFIG_BT_EAD`.

While this sample uses extended advertising, it is **not** mandatory when using
the encrypted advertising. The feature can be used with legacy advertising as
well.

Requirements
************

* Two boards with Bluetooth Low Energy support
* Two boards with a push button connected via a GPIO pin, see the :zephyr:code-sample:`button`
  sample for more details

Building and Running
********************

This sample can be found under
:zephyr_file:`samples/bluetooth/encrypted_advertising` in the Zephyr tree.

See :zephyr:code-sample-category:`bluetooth` samples for details.

This sample uses two applications, so two devices need to be setup.
Flash one device with the central application, and another device with the
peripheral application.

The two devices should automatically connect if they are close enough.

After the boards are connected, you will be asked to press the configured push
button on both boards to confirm the pairing request.

Here are the outputs you should get by default:

Peripheral:

.. code-block:: console

        *** Booting Zephyr OS build zephyr-v3.3.0-1872-g6fac3c7581dc ***
        <inf> ead_peripheral_sample: Advertising data size: 64
        Passkey for 46:04:2E:6F:80:12 (random): 059306
        Confirm passkey by pressing button at gpio@50000000 pin 11...
        Passkey confirmed.
        <inf> ead_peripheral_sample: Advertising data size: 64


Central:

.. code-block:: console

        *** Booting Zephyr OS build zephyr-v3.3.0-1872-g6fac3c7581dc ***
        Passkey for 6C:7F:67:C2:8B:29 (random): 059306
        Confirm passkey by pressing button at gpio@50000000 pin 11...
        Passkey confirmed.
        <inf> ead_central_sample: Received data size: 64
        <inf> ead_central_sample: len : 10
        <inf> ead_central_sample: type: 0x09
        <inf> ead_central_sample: data:
                                  45 41 44 20 53 61 6d 70  6c 65                   |EAD Samp le
        <inf> ead_central_sample: len : 8
        <inf> ead_central_sample: type: 0xff
        <inf> ead_central_sample: data:
                                  05 f1 5a 65 70 68 79 72                          |..Zephyr
        <inf> ead_central_sample: len : 7
        <inf> ead_central_sample: type: 0xff
        <inf> ead_central_sample: data:
                                  05 f1 49 d2 f4 55 76                             |..I..Uv
        <inf> ead_central_sample: len : 4
        <inf> ead_central_sample: type: 0xff
        <inf> ead_central_sample: data:
                                  05 f1 c1 25                                      |...%
        <inf> ead_central_sample: len : 3
        <inf> ead_central_sample: type: 0xff
        <inf> ead_central_sample: data:
                                  05 f1 17                                         |...