| libtins
    4.0
    | 
Represents the EAP encapsulation over LAN. More...
#include <eapol.h>
 
  
 | Classes | |
| struct | eapol_header | 
| Public Types | |
| enum | EAPOLTYPE { RC4 = 1, RSN, EAPOL_WPA = 254 } | 
|  Public Types inherited from Tins::PDU | |
| enum | endian_type { BE, LE } | 
| enum | PDUType { RAW, ETHERNET_II, IEEE802_3, DOT3 = IEEE802_3, RADIOTAP, DOT11, DOT11_ACK, DOT11_ASSOC_REQ, DOT11_ASSOC_RESP, DOT11_AUTH, DOT11_BEACON, DOT11_BLOCK_ACK, DOT11_BLOCK_ACK_REQ, DOT11_CF_END, DOT11_DATA, DOT11_CONTROL, DOT11_DEAUTH, DOT11_DIASSOC, DOT11_END_CF_ACK, DOT11_MANAGEMENT, DOT11_PROBE_REQ, DOT11_PROBE_RESP, DOT11_PS_POLL, DOT11_REASSOC_REQ, DOT11_REASSOC_RESP, DOT11_RTS, DOT11_QOS_DATA, LLC, SNAP, IP, ARP, TCP, UDP, ICMP, BOOTP, DHCP, EAPOL, RC4EAPOL, RSNEAPOL, DNS, LOOPBACK, IPv6, ICMPv6, SLL, DHCPv6, DOT1Q, PPPOE, STP, PPI, IPSEC_AH, IPSEC_ESP, PKTAP, MPLS, UNKNOWN = 999, USER_DEFINED_PDU = 1000 } | 
| Enum which identifies each type of PDU.  More... | |
| typedef byte_array | serialization_type | 
| Public Member Functions | |
| uint8_t | version () const | 
| Getter for the version field.  More... | |
| uint8_t | packet_type () const | 
| Getter for the packet type field.  More... | |
| uint16_t | length () const | 
| Getter for the length field.  More... | |
| uint8_t | type () const | 
| Getter for the type field.  More... | |
| void | version (uint8_t value) | 
| Sets the version field.  More... | |
| void | packet_type (uint8_t value) | 
| Sets the packet type field.  More... | |
| void | length (uint16_t value) | 
| Sets the length field.  More... | |
| void | type (uint8_t value) | 
| Sets the type field.  More... | |
| PDUType | pdu_type () const | 
| Getter for the PDU's type.  More... | |
|  Public Member Functions inherited from Tins::PDU | |
| PDU () | |
| Default constructor. | |
| PDU (PDU &&rhs) TINS_NOEXCEPT | |
| Move constructor.  More... | |
| PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT | 
| Move assignment operator.  More... | |
| virtual | ~PDU () | 
| PDU destructor.  More... | |
| virtual uint32_t | header_size () const =0 | 
| The header's size. | |
| virtual uint32_t | trailer_size () const | 
| Trailer's size.  More... | |
| uint32_t | size () const | 
| The whole chain of PDU's size, including this one.  More... | |
| PDU * | inner_pdu () const | 
| Getter for the inner PDU.  More... | |
| PDU * | parent_pdu () const | 
| PDU * | release_inner_pdu () | 
| Releases the inner PDU.  More... | |
| void | inner_pdu (PDU *next_pdu) | 
| Sets the child PDU.  More... | |
| void | inner_pdu (const PDU &next_pdu) | 
| Sets the child PDU.  More... | |
| serialization_type | serialize () | 
| Serializes the whole chain of PDU's, including this one.  More... | |
| template<typename T > | |
| T * | find_pdu (PDUType type=T::pdu_flag) | 
| Finds and returns the first PDU that matches the given flag.  More... | |
| template<typename T > | |
| const T * | find_pdu (PDUType type=T::pdu_flag) const | 
| Finds and returns the first PDU that matches the given flag.  More... | |
| template<typename T > | |
| T & | rfind_pdu (PDUType type=T::pdu_flag) | 
| Finds and returns the first PDU that matches the given flag.  More... | |
| template<typename T > | |
| const T & | rfind_pdu (PDUType type=T::pdu_flag) const | 
| Finds and returns the first PDU that matches the given flag.  More... | |
| virtual PDU * | clone () const =0 | 
| Clones this packet.  More... | |
| virtual void | send (PacketSender &sender, const NetworkInterface &iface) | 
| Send the stack of PDUs through a PacketSender.  More... | |
| virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) | 
| Receives a matching response for this packet.  More... | |
| virtual bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const | 
| Check whether ptr points to a valid response for this PDU.  More... | |
| virtual bool | matches_flag (PDUType flag) const | 
| Check whether this PDU matches the specified flag.  More... | |
| Static Public Member Functions | |
| static metadata | extract_metadata (const uint8_t *buffer, uint32_t total_sz) | 
| Extracts metadata for this protocol based on the buffer provided.  More... | |
| static EAPOL * | from_bytes (const uint8_t *buffer, uint32_t total_sz) | 
| Static method to instantiate the correct EAPOL subclass based on a raw buffer.  More... | |
| Static Public Attributes | |
| static const PDU::PDUType | pdu_flag = PDU::EAPOL | 
| This PDU's flag. | |
|  Static Public Attributes inherited from Tins::PDU | |
| static const endian_type | endianness = BE | 
| Protected Member Functions | |
| EAPOL (uint8_t packet_type, EAPOLTYPE type) | |
| Protected constructor that sets the packet_type and type fields. | |
| EAPOL (const uint8_t *buffer, uint32_t total_sz) | |
| Constructor which creates an EAPOL object from a buffer.  More... | |
| virtual void | write_body (Memory::OutputMemoryStream &stream)=0 | 
| Virtual method which should serialize the subclass specific body and save it in a byte array.  More... | |
|  Protected Member Functions inherited from Tins::PDU | |
| PDU (const PDU &other) | |
| Copy constructor. | |
| PDU & | operator= (const PDU &other) | 
| Copy assignment operator. | |
| void | copy_inner_pdu (const PDU &pdu) | 
| Copy other PDU's inner PDU(if any).  More... | |
| virtual void | prepare_for_serialize () | 
| Prepares this PDU for serialization.  More... | |
| void | serialize (uint8_t *buffer, uint32_t total_sz) | 
| Serializes this PDU and propagates this action to child PDUs.  More... | |
| Protected Attributes | |
| TINS_BEGIN_PACK struct Tins::EAPOL::eapol_header | TINS_END_PACK | 
Represents the EAP encapsulation over LAN.
The EAPOL type enum.
| 
 | protected | 
| 
 | static | 
Extracts metadata for this protocol based on the buffer provided.
| buffer | Pointer to a buffer | 
| total_sz | Size of the buffer pointed by buffer | 
| 
 | static | 
| 
 | inline | 
Getter for the length field.
| void Tins::EAPOL::length | ( | uint16_t | value | ) | 
Sets the length field.
| value | The new length to be set. | 
| 
 | inline | 
Getter for the packet type field.
| void Tins::EAPOL::packet_type | ( | uint8_t | value | ) | 
Sets the packet type field.
| value | The new packet type to be set. | 
| 
 | inlinevirtual | 
Getter for the PDU's type.
Implements Tins::PDU.
Reimplemented in Tins::RSNEAPOL, and Tins::RC4EAPOL.
| 
 | inline | 
Getter for the type field.
| void Tins::EAPOL::type | ( | uint8_t | value | ) | 
Sets the type field.
| value | The new type to be set. | 
| 
 | inline | 
Getter for the version field.
| void Tins::EAPOL::version | ( | uint8_t | value | ) | 
Sets the version field.
| value | The new version to be set. | 
| 
 | protectedpure virtual | 
Virtual method which should serialize the subclass specific body and save it in a byte array.
| buffer | The pointer in which to save the serialization. | 
| total_sz | The total size of the buffer. | 
 1.8.11
 1.8.11