Direct-BT
2.3.1
Direct-BT - Direct Bluetooth Programming.
|
Vol 3, Part H: 3.5.3 Pairing Confirm message. More...
#include <SMPTypes.hpp>
Public Member Functions | |
SMPPairConfirmMsg (const uint8_t *source, const jau::nsize_t length) | |
SMPPairConfirmMsg (const jau::uint128_t &confirm_value) | |
constexpr_cxx20 jau::nsize_t | getDataSize () const noexcept override |
Returns the required data size according to the specified packet, which should be within 0-22 or 64 octets. More... | |
constexpr jau::uint128_t | getConfirmValue () const noexcept |
Returns the 128-bit Confirm value (16 octets) More... | |
constexpr_cxx20 std::string | getName () const noexcept override |
Public Member Functions inherited from direct_bt::SMPEncKeyByteStream | |
SMPEncKeyByteStream (const uint8_t *source, const jau::nsize_t size) | |
Persistent memory, w/ ownership . More... | |
SMPEncKeyByteStream (const Opcode opc, const jau::nsize_t size) | |
Persistent memory, w/ ownership . More... | |
virtual | ~SMPEncKeyByteStream () noexcept |
Public Member Functions inherited from direct_bt::SMPPDUMsg | |
SMPPDUMsg (const uint8_t *source, const jau::nsize_t size) | |
Persistent memory, w/ ownership . More... | |
SMPPDUMsg (const Opcode opc, const jau::nsize_t size) | |
Persistent memory, w/ ownership . More... | |
virtual | ~SMPPDUMsg () noexcept |
constexpr uint64_t | getTimestamp () const noexcept |
constexpr Opcode | getOpcode () const noexcept |
SMP Command Codes Vol 3, Part H (SM): 3.3. More... | |
constexpr jau::nsize_t | getPDUParamSize () const noexcept |
Returns the actual PDU size less one octet for the opcode, which should result in 0-22 octets or 64 octets. More... | |
constexpr jau::nsize_t | getDataOffset () const noexcept |
Returns the octet offset to the data segment in this PDU including the mandatory opcode, i.e. More... | |
virtual std::string | toString () const noexcept |
Protected Member Functions | |
std::string | valueString () const noexcept override |
Protected Member Functions inherited from direct_bt::SMPPDUMsg | |
void | checkOpcode (const Opcode expected) const |
void | checkOpcode (const Opcode exp1, const Opcode exp2) const |
virtual std::string | baseString () const noexcept |
Additional Inherited Members | |
Public Types inherited from direct_bt::SMPPDUMsg | |
enum | Opcode : uint8_t { Opcode::UNDEFINED = 0x00, Opcode::PAIRING_REQUEST = 0x01, Opcode::PAIRING_RESPONSE = 0x02, Opcode::PAIRING_CONFIRM = 0x03, Opcode::PAIRING_RANDOM = 0x04, Opcode::PAIRING_FAILED = 0x05, Opcode::ENCRYPTION_INFORMATION = 0x06, Opcode::MASTER_IDENTIFICATION = 0x07, Opcode::IDENTITY_INFORMATION = 0x08, Opcode::IDENTITY_ADDRESS_INFORMATION = 0x09, Opcode::SIGNING_INFORMATION = 0x0A, Opcode::SECURITY_REQUEST = 0x0B, Opcode::PAIRING_PUBLIC_KEY = 0x0C, Opcode::PAIRING_DHKEY_CHECK = 0x0D, Opcode::PAIRING_KEYPRESS_NOTIFICATION = 0x0E } |
SMP Command Codes Vol 3, Part H (SM): 3.3. More... | |
Static Public Member Functions inherited from direct_bt::SMPPDUMsg | |
static constexpr uint8_t | number (const Opcode rhs) noexcept |
static std::string | getOpcodeString (const Opcode opc) noexcept |
static std::unique_ptr< const SMPPDUMsg > | getSpecialized (const uint8_t *buffer, jau::nsize_t const buffer_size) noexcept |
Return a newly created specialized instance pointer to base class. More... | |
template<class T > | |
static T * | clone (const T &source) noexcept |
Clone template for convenience, based on derived class's copy-constructor. More... | |
Protected Attributes inherited from direct_bt::SMPPDUMsg | |
POctets | pdu |
actual received PDU More... | |
uint64_t | ts_creation |
creation timestamp in milliseconds More... | |
Vol 3, Part H: 3.5.3 Pairing Confirm message.
Vol 3 (Host), Part H (SM): 3 (SMP), 3.5 Pairing Methods
[uint8_t opcode] jau::uint128_t confirm_value
Used following a successful Pairing Feature Exchange to start STK Generation for LE legacy pairing and LTK Generation for LE Secure Connections pairing.
Command is used by both devices to send the confirm value to the peer device,
see Vol 3, Part H, 2.3.5.5 SM - Pairing algo - LE legacy pairing phase 2 and
and Vol 3, Part H, 2.3.5.6 SM - Pairing algo - LE Secure Connections pairing phase 2.
The initiating device starts key generation by sending the Pairing Confirm command to the responding device.
If the initiating device wants to abort pairing it can transmit a Pairing Failed command instead.
The responding device sends the Pairing Confirm command after it has received a Pairing Confirm command from the initiating device.
Notable: No endian wise conversion shall occur on this data, since the encryption values are interpreted as a byte stream.
Definition at line 1035 of file SMPTypes.hpp.
|
inline |
|
inline |
|
inlineconstexprnoexcept |
Returns the 128-bit Confirm value (16 octets)
In LE legacy pairing, the initiating device sends Mconfirm and the responding device sends Sconfirm as defined in Vol 3, Part H, 2.3.5.5 SM - Pairing algo - LE legacy pairing phase 2
In LE Secure Connections, Ca and Cb are defined in Vol 3, Part H, Section 2.2.6 SM - Crypto Toolbox - LE Secure Connections confirm value generation function f4.
See Vol 3, Part H, 2.3.5.6 SM - Pairing algo - LE Secure Connections pairing phase 2.
Definition at line 1067 of file SMPTypes.hpp.
|
inlineoverridevirtualnoexcept |
Returns the required data size according to the specified packet, which should be within 0-22 or 64 octets.
Reimplemented from direct_bt::SMPPDUMsg.
Definition at line 1050 of file SMPTypes.hpp.
|
inlineoverridevirtualnoexcept |
Reimplemented from direct_bt::SMPPDUMsg.
Definition at line 1069 of file SMPTypes.hpp.
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from direct_bt::SMPPDUMsg.
Definition at line 1074 of file SMPTypes.hpp.