mirror

package
v0.0.1-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MsgTypeEAPRequest  byte = 0x01 // B->A: forward EAP request from real server
	MsgTypeEAPResponse byte = 0x02 // A->B: forward EAP response from supplicant
	MsgTypeEAPSuccess  byte = 0x03 // A->B: EAP success
	MsgTypeEAPFailure  byte = 0x04 // A->B: EAP failure
)

Message types for TCP communication

Variables

This section is empty.

Functions

func BuildEAPOLStart

func BuildEAPOLStart(srcMAC net.HardwareAddr) []byte

BuildEAPOLStart builds an EAPOL-Start packet

func BuildEAPRequest

func BuildEAPRequest(srcMAC, dstMAC net.HardwareAddr, id uint8, eapType layers.EAPType, typeData []byte) []byte

BuildEAPRequest builds an EAP Request packet (for server to trigger supplicant)

func BuildEAPResponse

func BuildEAPResponse(srcMAC, dstMAC net.HardwareAddr, id uint8, eapType layers.EAPType, typeData []byte) []byte

BuildEAPResponse builds an EAP Response packet

func OpenInterface

func OpenInterface(ifaceName string) (*pcap.Handle, error)

OpenInterface opens a network interface for packet capture

func SerializeEAPPacket

func SerializeEAPPacket(pkt *EAPPacket) []byte

SerializeEAPPacket serializes EAP packet info back to raw bytes

func SetEAPFilter

func SetEAPFilter(handle *pcap.Handle, macFilter string) error

SetEAPFilter sets BPF filter for EAP packets

func WriteMessage

func WriteMessage(conn net.Conn, msg *Message) error

WriteMessage writes a message to the connection

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client runs on machine B (without EAP supplicant)

func NewClient

func NewClient(serverAddr, ifaceName, localMAC string) (*Client, error)

NewClient creates a new mirror client

func (*Client) Run

func (c *Client) Run() error

Run starts the client

type EAPPacket

type EAPPacket struct {
	SrcMAC   net.HardwareAddr
	DstMAC   net.HardwareAddr
	Code     layers.EAPCode
	Id       uint8
	Type     layers.EAPType
	TypeData []byte
	RawData  []byte // Original packet data for forwarding
}

EAPPacket contains parsed EAP packet information

func ParseEAPPacket

func ParseEAPPacket(data []byte) *EAPPacket

ParseEAPPacket parses an Ethernet frame containing EAP

type Message

type Message struct {
	Type    byte
	Payload []byte
}

Message represents a TCP message between client and server Format: [Length:2bytes][Type:1byte][Payload:variable]

func ReadMessage

func ReadMessage(conn net.Conn) (*Message, error)

ReadMessage reads a message from the connection

type Server

type Server struct {
	// contains filtered or unexported fields
}

Server runs on machine A (with EAP supplicant)

func NewServer

func NewServer(listenAddr, ifaceName, supplicantMAC string) (*Server, error)

NewServer creates a new mirror server

func (*Server) Run

func (s *Server) Run() error

Run starts the server

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL