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);
115 static std::vector<FieldDescriptor>
all()
119 std::copy(extra.begin(), extra.end(), std::back_inserter(result));
153 :
Layer(data, dataLen, prevLayer, packet,
ESP)
158 return reinterpret_cast<ipsec_esp*
>(m_Data);
171 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen);
201 static std::vector<FieldDescriptor>
all()
205 std::copy(extra.begin(), extra.end(), std::back_inserter(result));
232 size_t payloadLen = 4 * (data[1] + 2);
241 return data && dataLen >=
sizeof(
ipsec_esp);
Definition: IPSecLayer.h:145
std::string toString() const override
ESPLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: IPSecLayer.h:152
OsiModelLayer getOsiModelLayer() const override
Definition: IPSecLayer.h:190
uint32_t getSequenceNumber() const
size_t getHeaderLen() const override
Definition: IPSecLayer.h:176
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: IPSecLayer.h:239
void parseNextLayer() override
The payload of an ESP layer is encrypted, hence the next layer is always a generic payload (PayloadLa...
void serializeLayer(ObjectScope &serializer) const override
void computeCalculateFields() override
Does nothing for this layer.
Definition: IPSecLayer.h:185
Definition: Serializers.h:230
const ProtocolType ESP
IPSec Encapsulating Security Payload (ESP) protocol.
Definition: ProtocolType.h:177
const ProtocolType AuthenticationHeader
IPSec Authentication Header (AH) protocol.
Definition: ProtocolType.h:174
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:425
@ OsiModelTransportLayer
Transport layer (layer 4)
Definition: ProtocolType.h:433
@ OsiModelNetworkLayer
Network layer (layer 3)
Definition: ProtocolType.h:431
Definition: IPSecLayer.h:199
static const FieldDescriptor SPI
Field descriptor for the Security Parameters Index (SPI), written as a hex value.
Definition: IPSecLayer.h:210
static std::vector< FieldDescriptor > all()
Definition: IPSecLayer.h:201
static const FieldDescriptor SequenceNumber
Field descriptor for the sequence number, written as a number.
Definition: IPSecLayer.h:213
Definition: Serializers.h:18
static std::vector< FieldDescriptor > all()
Definition: Layer.h:214
Definition: IPSecLayer.h:34
uint32_t sequenceNumber
Sequence Number.
Definition: IPSecLayer.h:38
uint32_t spi
Security Parameters Index.
Definition: IPSecLayer.h:36