Direct-BT  2.3.1
Direct-BT - Direct Bluetooth Programming.
Public Member Functions | Protected Member Functions | List of all members
direct_bt::SMPPairPubKeyMsg Class Reference

Vol 3, Part H: 3.5.6 Pairing Public Key message. More...

#include <SMPTypes.hpp>

Inheritance diagram for direct_bt::SMPPairPubKeyMsg:
Collaboration diagram for direct_bt::SMPPairPubKeyMsg:

Public Member Functions

 SMPPairPubKeyMsg (const uint8_t *source, const jau::nsize_t length)
 
 SMPPairPubKeyMsg (const jau::uint256_t &pub_key_x, const jau::uint256_t &pub_key_y)
 
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::uint256_t getPubKeyX () const noexcept
 Returns the 256-bit Public Key X value (32 octets) More...
 
constexpr jau::uint256_t getPubKeyY () const noexcept
 Returns the 256-bit Public Key Y value (32 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 SMPPDUMsggetSpecialized (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...
 

Detailed Description

Vol 3, Part H: 3.5.6 Pairing Public Key message.

Vol 3 (Host), Part H (SM): 3 (SMP), 3.5.6 Pairing Public Key

Opcode::PAIRING_PUBLIC_KEY

[uint8_t opcode]
jau::uint256_t public_key_x_value
jau::uint256_t public_key_y_value

Message is used to transfer the device’s local public key (X and Y coordinates) to the remote device.
This message is used by both the initiator and responder.
This PDU is only used for LE Secure Connections.

Notable: No endian wise conversion shall occur on this data, since the encryption values are interpreted as a byte stream.

Definition at line 1264 of file SMPTypes.hpp.

Constructor & Destructor Documentation

◆ SMPPairPubKeyMsg() [1/2]

direct_bt::SMPPairPubKeyMsg::SMPPairPubKeyMsg ( const uint8_t *  source,
const jau::nsize_t  length 
)
inline

Definition at line 1267 of file SMPTypes.hpp.

Here is the call graph for this function:

◆ SMPPairPubKeyMsg() [2/2]

direct_bt::SMPPairPubKeyMsg::SMPPairPubKeyMsg ( const jau::uint256_t pub_key_x,
const jau::uint256_t pub_key_y 
)
inline

Definition at line 1273 of file SMPTypes.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ getDataSize()

constexpr_cxx20 jau::nsize_t direct_bt::SMPPairPubKeyMsg::getDataSize ( ) const
inlineoverridevirtualnoexcept

Returns the required data size according to the specified packet, which should be within 0-22 or 64 octets.

See also
SMPPDUMsg::getPDUParamSize()

Reimplemented from direct_bt::SMPPDUMsg.

Definition at line 1280 of file SMPTypes.hpp.

Here is the caller graph for this function:

◆ getName()

constexpr_cxx20 std::string direct_bt::SMPPairPubKeyMsg::getName ( ) const
inlineoverridevirtualnoexcept

Reimplemented from direct_bt::SMPPDUMsg.

Definition at line 1294 of file SMPTypes.hpp.

◆ getPubKeyX()

constexpr jau::uint256_t direct_bt::SMPPairPubKeyMsg::getPubKeyX ( ) const
inlineconstexprnoexcept

Returns the 256-bit Public Key X value (32 octets)

Definition at line 1287 of file SMPTypes.hpp.

Here is the call graph for this function:

◆ getPubKeyY()

constexpr jau::uint256_t direct_bt::SMPPairPubKeyMsg::getPubKeyY ( ) const
inlineconstexprnoexcept

Returns the 256-bit Public Key Y value (32 octets)

Definition at line 1292 of file SMPTypes.hpp.

Here is the call graph for this function:

◆ valueString()

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

Reimplemented from direct_bt::SMPPDUMsg.

Definition at line 1299 of file SMPTypes.hpp.

Here is the call graph for this function:

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