This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2650: How is LTK generated?

Part Number: CC2650

Hi all,

I'm trying to analyze Legacy Paring in deept. I got the source code from: C:\ti\simplelink\ble_sdk_2_02_02_25. Following CC26XX Developer Guide and Core Bluetooth Specification 5.0, i found this recommended NIST Article (here), where is mentioned that once the link is encrypted using the STK, the two devices distribute secret key LTK. Two options are specified for key generation prior to distribution:

1) A device may simply generate random 128-bit values and store them in a local database (called “Database Lookup” in the specification). 

2) To use a single 128-bit static but random value called Encryption Root (ER) along with a 16-bit Diversifier (DIV) unique to each trusted device to generate the keys. This option is called “Key Hierarchy” in the specification.

Until now, have been impossible to me to find in source code the Database Lookup, or Key Hierarchy.

I really, appreciate any leads on this.

Best regards,

Santiago.

  • Hi,

    The has been taking care in our BLE STACK source code which we are not releasing to the public and won't release to the public.
    However, you can still follow the Bluetooth specification to know how the LTK is generated.
  • Hello,

    When you download BLE STACK you already have source codes under C:\Texas Instruments\simplelink\ble_sdk_2_02_02_25\src. So what do you mean by "BLE STACK source code which we are not releasing to the public and won't release to the public"?
    And also, what do you mean from this sentence "The has been taking care in our BLE STACK source code"? The one who takes care about BLE STACK in TI or did you refer to the stack? Could you please elaborate on your response? It is not clear from my aspect?
  • You have the source code for the application but the link layer(scheduler) and more are given as library file.

    You can find the following sentence in our software developer's guide, section 5:
    "Most of the Bluetooth low energy protocol stack is object code in a single library file (TI does not provide
    the protocol stack source code as a matter of policy). A developer must understand the functionality of the
    various protocol stack layers and how they interact with the application and profiles. This section explains
    these layers."

    TI's BLE STACK takes care of the LTK generation and make sure the distribution follows the Bluetooth Specification. Users do not need to worry about the LTK generation while using pairing and bonding feature in our BLE STACK.