Direct-BT v3.3.0-1-gc2d430c
Direct-BT - Direct Bluetooth Programming.
Public Member Functions | Protected Member Functions | List of all members
direct_bt::HCILEEnableEncryptionCmd Class Reference

BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command. More...

#include <HCITypes.hpp>

Inheritance diagram for direct_bt::HCILEEnableEncryptionCmd:
Collaboration diagram for direct_bt::HCILEEnableEncryptionCmd:

Public Member Functions

 HCILEEnableEncryptionCmd (const uint16_t handle, const uint64_t rand, const uint16_t ediv, const jau::uint128dp_t ltk)
 
 HCILEEnableEncryptionCmd (const uint8_t *buffer, const jau::nsize_t buffer_len)
 
constexpr uint16_t getEDIV () const noexcept
 Returns the 16-bit EDIV value (2 octets) being distributed. More...
 
constexpr uint16_t getHandle () const noexcept
 
constexpr jau::uint128dp_t getLTK () const noexcept
 Returns the 128-bit Long Term Key (16 octets) More...
 
constexpr uint64_t getRand () const noexcept
 Returns the 64-bit Rand value (8 octets) being distributed. More...
 
- Public Member Functions inherited from direct_bt::HCICommand
 HCICommand (const HCIOpcode opc, const jau::nsize_t param_size)
 Enabling manual construction of command without given value. More...
 
 HCICommand (const HCIOpcode opc, const uint8_t *param, const jau::nsize_t param_size)
 Enabling manual construction of command with given value. More...
 
 HCICommand (const uint8_t *buffer, const jau::nsize_t buffer_len, const jau::nsize_t exp_param_size)
 Persistent memory, w/ ownership . More...
 
 ~HCICommand () noexcept override=default
 
HCIOpcode getOpcode () const noexcept
 
const uint8_t * getParam () const noexcept
 
jau::nsize_t getParamSize () const noexcept
 
void trimParamSize (const jau::nsize_t param_size)
 
- Public Member Functions inherited from direct_bt::HCIPacket
 HCIPacket (const HCIPacketType type, const jau::nsize_t total_packet_size)
 
 HCIPacket (const uint8_t *packet_data, const jau::nsize_t total_packet_size)
 Persistent memory, w/ ownership . More...
 
virtual ~HCIPacket () noexcept=default
 
HCIPacketType getPacketType () noexcept
 
jau::TROOctetsgetPDU () noexcept
 Return the underlying octets read only. More...
 
constexpr jau::nsize_t getTotalSize () const noexcept
 
std::string toString () const noexcept
 

Protected Member Functions

std::string nameString () const noexcept override
 
std::string valueString () const noexcept override
 
- Protected Member Functions inherited from direct_bt::HCICommand
std::string baseString () const noexcept override
 
std::string nameString () const noexcept override
 
std::string valueString () const noexcept override
 
virtual std::string baseString () const noexcept
 
virtual std::string nameString () const noexcept
 
virtual std::string valueString () const noexcept
 

Additional Inherited Members

- Static Public Member Functions inherited from direct_bt::HCICommand
static std::unique_ptr< HCICommandgetSpecialized (const uint8_t *buffer, jau::nsize_t const buffer_size) noexcept
 Return a newly created specialized instance pointer to base class. More...
 
- Static Public Member Functions inherited from direct_bt::HCIPacket
template<class T >
static T * clone (const T &source) noexcept
 Clone template for convenience, based on derived class's copy-constructor. More...
 
- Static Protected Member Functions inherited from direct_bt::HCICommand
static void checkOpcode (const HCIOpcode has, const HCIOpcode exp)
 
static void checkOpcode (const HCIOpcode has, const HCIOpcode min, const HCIOpcode max)
 
- Static Protected Member Functions inherited from direct_bt::HCIPacket
static void checkPacketType (const HCIPacketType type)
 
- Protected Attributes inherited from direct_bt::HCIPacket
jau::POctets pdu
 

Detailed Description

BT Core Spec v5.2: Vol 4, Part E HCI: 7.8.24 LE Enable Encryption command.

HCIPacket:

Controller replies to this command with HCI_Command_Status event to the Host.

This command shall only be used when the local device’s role is BTRole::Master (initiator).

Encryption key belongs to the remote device having role BTRole::Slave (responder).

The encryption key matches the LTK from SMP messaging in SC mode only!

Definition at line 774 of file HCITypes.hpp.

Constructor & Destructor Documentation

◆ HCILEEnableEncryptionCmd() [1/2]

direct_bt::HCILEEnableEncryptionCmd::HCILEEnableEncryptionCmd ( const uint8_t *  buffer,
const jau::nsize_t  buffer_len 
)
inline

Definition at line 788 of file HCITypes.hpp.

◆ HCILEEnableEncryptionCmd() [2/2]

direct_bt::HCILEEnableEncryptionCmd::HCILEEnableEncryptionCmd ( const uint16_t  handle,
const uint64_t  rand,
const uint16_t  ediv,
const jau::uint128dp_t  ltk 
)
inline

Definition at line 794 of file HCITypes.hpp.

Member Function Documentation

◆ nameString()

std::string direct_bt::HCILEEnableEncryptionCmd::nameString ( ) const
inlineoverrideprotectedvirtualnoexcept

Reimplemented from direct_bt::HCICommand.

Definition at line 777 of file HCITypes.hpp.

◆ valueString()

std::string direct_bt::HCILEEnableEncryptionCmd::valueString ( ) const
inlineoverrideprotectedvirtualnoexcept

Reimplemented from direct_bt::HCICommand.

Definition at line 779 of file HCITypes.hpp.

◆ getHandle()

constexpr uint16_t direct_bt::HCILEEnableEncryptionCmd::getHandle ( ) const
inlineconstexprnoexcept

Definition at line 803 of file HCITypes.hpp.

Here is the caller graph for this function:

◆ getRand()

constexpr uint64_t direct_bt::HCILEEnableEncryptionCmd::getRand ( ) const
inlineconstexprnoexcept

Returns the 64-bit Rand value (8 octets) being distributed.

See Vol 3, Part H, 2.4.2.3 SM - Generation of CSRK - LE legacy pairing - generation of LTK, EDIV and Rand.

Definition at line 811 of file HCITypes.hpp.

◆ getEDIV()

constexpr uint16_t direct_bt::HCILEEnableEncryptionCmd::getEDIV ( ) const
inlineconstexprnoexcept

Returns the 16-bit EDIV value (2 octets) being distributed.

See Vol 3, Part H, 2.4.2.3 SM - Generation of CSRK - LE legacy pairing - generation of LTK, EDIV and Rand.

Definition at line 819 of file HCITypes.hpp.

◆ getLTK()

constexpr jau::uint128dp_t direct_bt::HCILEEnableEncryptionCmd::getLTK ( ) const
inlineconstexprnoexcept

Returns the 128-bit Long Term Key (16 octets)

The generated LTK value being distributed, see Vol 3, Part H, 2.4.2.3 SM - LE legacy pairing - generation of LTK, EDIV and Rand.

Definition at line 828 of file HCITypes.hpp.


The documentation for this class was generated from the following file: