41 static_assert(
sizeof(
ipsec_esp) == 8,
"ipsec_esp size is not 8 bytes");
84 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen);
126 :
Layer(data, dataLen, prevLayer, packet,
ESP)
131 return reinterpret_cast<ipsec_esp*
>(m_Data);
144 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen);
181 size_t payloadLen = 4 * (data[1] + 2);
190 return data && dataLen >=
sizeof(
ipsec_esp);
Definition: IPSecLayer.h:118
std::string toString() const override
ESPLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IPSecLayer.h:125
OsiModelLayer getOsiModelLayer() const override
Definition: IPSecLayer.h:163
uint32_t getSequenceNumber() const
size_t getHeaderLen() const override
Definition: IPSecLayer.h:149
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: IPSecLayer.h:188
void parseNextLayer() override
The payload of an ESP layer is encrypted, hence the next layer is always a generic payload (PayloadLa...
void computeCalculateFields() override
Does nothing for this layer.
Definition: IPSecLayer.h:158
The main namespace for the PcapPlusPlus lib.
const ProtocolType ESP
IPSec Encapsulating Security Payload (ESP) protocol.
Definition: ProtocolType.h:152
const ProtocolType AuthenticationHeader
IPSec Authentication Header (AH) protocol.
Definition: ProtocolType.h:149
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelTransportLayer
Transport layer (layer 4)
Definition: ProtocolType.h:233
@ OsiModelNetworkLayer
Network layer (layer 3)
Definition: ProtocolType.h:231
Definition: IPSecLayer.h:34
uint32_t sequenceNumber
Sequence Number.
Definition: IPSecLayer.h:38
uint32_t spi
Security Parameters Index.
Definition: IPSecLayer.h:36