enum
{
STACK = 16*2048,
Pktlen = 1514,
Npkt = 3,
Nbuf = 9600,
Nrbuf = 3,
Blen = 256,
ETHERMINTU=60,
ETHERMAXTU=1514,
};
enum {
ETEAPOL = 0x888e,
EapolTpEap = 0,
EapolTpStart = 1,
EapolTpLogoff = 2,
EapolTpKey = 3,
EapolTpAsf = 4,
EapolVersion = 2,
EapRequest = 1,
EapResponse = 2,
EapSuccess = 3,
EapFailure = 4,
EapTpIdentity = 1,
EapTpNotification = 2,
EapTpNak = 3,
EapTpMd5 = 4,
EapTpOtp = 5, // one time password
EapTpGtc = 6, // generic token card
EapTpTtls = 21,
EapTpExtp = 254, // expanded types
EapTpExus = 255, // experimental use
};
typedef struct Ether
{
uchar d[6];
uchar s[6];
uchar t[2];
uchar data[1];
} Ether;
enum {
ETHERHDR = 14,
};
typedef struct Eapol
{
uchar ver;
uchar tp;
uchar ln[2];
uchar data[1];
} Eapol;
enum {
EAPOLHDR = 4,
};
typedef struct Eap
{
uchar code;
uchar id;
uchar ln[2];
uchar data[1];
} Eap;
enum {
EAPHDR = 4,
};
typedef struct KeyDesc
{
uchar tp;
uchar data[1]; // min 1016
} KeyDesc;
enum
{
KeyDescHlen = 1,
KeyTpRC4 = 1,
};
typedef struct RC4KeyDesc
{
uchar ln[2];
uchar rpc[8];
uchar iv[16];
uchar idx;
uchar md[16];
uchar data[1];
} RC4KeyDesc;
enum
{
RC4KeyDescHlen = 43,
RC4KeyUnicast = 1<<7,
RC4KeyIdx = (~0^1<<7),
};
typedef struct Buf {
int n;
uchar b[Nbuf];
} Buf;
typedef struct Packet {
int n;
uchar b[Pktlen];
} Packet;
uchar theSessionKey[64];
char *myId;
char *myPasswd;
int debug;
int debugTLS;
char *logname;
|