PcapPlusPlus  Next
pcpp::WireGuardHandshakeInitiationLayer Class Reference

#include <WireGuardLayer.h>

Inheritance diagram for pcpp::WireGuardHandshakeInitiationLayer:
pcpp::WireGuardLayer pcpp::Layer pcpp::IDataContainer

Public Member Functions

 WireGuardHandshakeInitiationLayer (uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
 
 WireGuardHandshakeInitiationLayer (uint32_t senderIndex, const uint8_t initiatorEphemeral[32], const uint8_t encryptedInitiatorStatic[48], const uint8_t encryptedTimestamp[28], const uint8_t mac1[16], const uint8_t mac2[16])
 
uint32_t getSenderIndex () const
 
std::array< uint8_t, 32 > getInitiatorEphemeral () const
 
std::array< uint8_t, 48 > getEncryptedInitiatorStatic () const
 
std::array< uint8_t, 28 > getEncryptedTimestamp () const
 
std::array< uint8_t, 16 > getMac1 () const
 
std::array< uint8_t, 16 > getMac2 () const
 
void setSenderIndex (uint32_t senderIndex)
 
void setInitiatorEphemeral (const std::array< uint8_t, 32 > &initiatorEphemeral)
 
void setEncryptedInitiatorStatic (const std::array< uint8_t, 48 > &encryptedInitiatorStatic)
 
void setEncryptedTimestamp (const std::array< uint8_t, 28 > &encryptedTimestamp)
 
void setMac1 (const std::array< uint8_t, 16 > &mac1)
 
void setMac2 (const std::array< uint8_t, 16 > &mac2)
 
WireGuardMessageType getWireGuardMessageType () const override
 
- Public Member Functions inherited from pcpp::WireGuardLayer
 WireGuardLayer (uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
 
std::string getMessageTypeAsString () const
 
uint8_t getMessageType () const
 
uint32_t getReserved () const
 
void setReserved (const std::array< uint8_t, 3 > &reserved)
 
void parseNextLayer () override
 
size_t getHeaderLen () const override
 
void computeCalculateFields () override
 
std::string toString () const override
 
OsiModelLayer getOsiModelLayer () const override
 
- Public Member Functions inherited from pcpp::Layer
 ~Layer () override
 
LayergetNextLayer () const
 
LayergetPrevLayer () const
 
ProtocolType getProtocol () const
 
bool isMemberOfProtocolFamily (ProtocolTypeFamily protocolTypeFamily) const
 
uint8_t * getData () const
 
size_t getDataLen () const
 
uint8_t * getLayerPayload () const
 
size_t getLayerPayloadSize () const
 
bool isAllocatedToPacket () const
 
void copyData (uint8_t *toArr) const
 
uint8_t * getDataPtr (size_t offset=0) const override
 

Additional Inherited Members

- Public Types inherited from pcpp::WireGuardLayer
enum class  WireGuardMessageType {
  Unknown = 0 , HandshakeInitiation = 1 , HandshakeResponse = 2 , CookieReply = 3 ,
  TransportData = 4
}
 
- Static Public Member Functions inherited from pcpp::WireGuardLayer
static bool isWireGuardPorts (uint16_t portSrc, uint16_t portDst)
 
static bool isDataValid (const uint8_t *data, size_t dataLen)
 
static WireGuardLayerparseWireGuardLayer (uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
 

Detailed Description

Represents the Handshake Initiation message layer

Constructor & Destructor Documentation

◆ WireGuardHandshakeInitiationLayer() [1/2]

pcpp::WireGuardHandshakeInitiationLayer::WireGuardHandshakeInitiationLayer ( uint8_t *  data,
size_t  dataLen,
Layer prevLayer,
Packet packet 
)
inline

A constructor that creates the layer from an existing packet raw data

Parameters
[in]dataA pointer to the raw data
[in]dataLenSize of the data in bytes
[in]prevLayerA pointer to the previous layer
[in]packetA pointer to the Packet instance where layer will be stored in

◆ WireGuardHandshakeInitiationLayer() [2/2]

pcpp::WireGuardHandshakeInitiationLayer::WireGuardHandshakeInitiationLayer ( uint32_t  senderIndex,
const uint8_t  initiatorEphemeral[32],
const uint8_t  encryptedInitiatorStatic[48],
const uint8_t  encryptedTimestamp[28],
const uint8_t  mac1[16],
const uint8_t  mac2[16] 
)

A constructor that creates a new Handshake Initiation message

Parameters
[in]senderIndexThe sender's index
[in]initiatorEphemeralThe initiator's ephemeral public key
[in]encryptedInitiatorStaticThe encrypted initiator's static key
[in]encryptedTimestampThe encrypted timestamp
[in]mac1The MAC1 field
[in]mac2The MAC2 field

Member Function Documentation

◆ getEncryptedInitiatorStatic()

std::array<uint8_t, 48> pcpp::WireGuardHandshakeInitiationLayer::getEncryptedInitiatorStatic ( ) const
Returns
An array containing the encrypted initiator's static key.

◆ getEncryptedTimestamp()

std::array<uint8_t, 28> pcpp::WireGuardHandshakeInitiationLayer::getEncryptedTimestamp ( ) const
Returns
An array containing the encrypted timestamp.

◆ getInitiatorEphemeral()

std::array<uint8_t, 32> pcpp::WireGuardHandshakeInitiationLayer::getInitiatorEphemeral ( ) const
Returns
An array containing the initiator's ephemeral public key.

◆ getMac1()

std::array<uint8_t, 16> pcpp::WireGuardHandshakeInitiationLayer::getMac1 ( ) const
Returns
An array containing the MAC1 field.

◆ getMac2()

std::array<uint8_t, 16> pcpp::WireGuardHandshakeInitiationLayer::getMac2 ( ) const
Returns
An array containing the MAC2 field.

◆ getSenderIndex()

uint32_t pcpp::WireGuardHandshakeInitiationLayer::getSenderIndex ( ) const
Returns
The sender index as a 32-bit integer.

◆ getWireGuardMessageType()

WireGuardMessageType pcpp::WireGuardHandshakeInitiationLayer::getWireGuardMessageType ( ) const
inlineoverridevirtual
Returns
WireGuardMessageType enum value indicating HandshakeInitiation.

Reimplemented from pcpp::WireGuardLayer.

◆ setEncryptedInitiatorStatic()

void pcpp::WireGuardHandshakeInitiationLayer::setEncryptedInitiatorStatic ( const std::array< uint8_t, 48 > &  encryptedInitiatorStatic)
Parameters
encryptedInitiatorStaticAn array containing the 48-byte encrypted initiator's static key.

◆ setEncryptedTimestamp()

void pcpp::WireGuardHandshakeInitiationLayer::setEncryptedTimestamp ( const std::array< uint8_t, 28 > &  encryptedTimestamp)
Parameters
encryptedTimestampAn array containing the 28-byte encrypted timestamp.

◆ setInitiatorEphemeral()

void pcpp::WireGuardHandshakeInitiationLayer::setInitiatorEphemeral ( const std::array< uint8_t, 32 > &  initiatorEphemeral)
Parameters
initiatorEphemeralAn array containing the 32-byte initiator ephemeral public key.

◆ setMac1()

void pcpp::WireGuardHandshakeInitiationLayer::setMac1 ( const std::array< uint8_t, 16 > &  mac1)
Parameters
mac1An array containing the 16-byte MAC1 field.

◆ setMac2()

void pcpp::WireGuardHandshakeInitiationLayer::setMac2 ( const std::array< uint8_t, 16 > &  mac2)
Parameters
mac2An array containing the 16-byte MAC2 field.

◆ setSenderIndex()

void pcpp::WireGuardHandshakeInitiationLayer::setSenderIndex ( uint32_t  senderIndex)
Parameters
senderIndexA 32-bit integer representing the sender index.