diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-09 17:28:41 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-09 17:28:41 +0100 |
commit | 26792d8db58b64b31c0b74d0711a479690615de7 (patch) | |
tree | fd22fed214e80aeeb9f2b0f91aa678f2d4d936bb /sys/src/9/pc/wifi.h | |
parent | 420efd93d728c937f88beeeb6ff80e4182dfe172 (diff) |
wifi: add experimental wpa / tkip encryption support
Diffstat (limited to 'sys/src/9/pc/wifi.h')
-rw-r--r-- | sys/src/9/pc/wifi.h | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/sys/src/9/pc/wifi.h b/sys/src/9/pc/wifi.h index 1b04933b6..6099f95dc 100644 --- a/sys/src/9/pc/wifi.h +++ b/sys/src/9/pc/wifi.h @@ -1,26 +1,35 @@ +typedef struct Wkey Wkey; typedef struct Wnode Wnode; typedef struct Wifi Wifi; - typedef struct Wifipkt Wifipkt; -struct Wifipkt -{ - uchar fc[2]; - uchar dur[2]; - uchar a1[Eaddrlen]; - uchar a2[Eaddrlen]; - uchar a3[Eaddrlen]; - uchar seq[2]; +enum { + Essidlen = 32, }; +/* cipher */ enum { - WIFIHDRSIZE = 2+2+3*6+2, + TKIP = 1, +}; + +struct Wkey +{ + int cipher; + int len; + uchar key[32]; + uvlong tsc; }; struct Wnode { uchar bssid[Eaddrlen]; - char ssid[32+2]; + char ssid[Essidlen+2]; + + int rsnelen; + uchar rsne[256]; + Wkey txkey[1]; + Wkey rxkey[5]; + int ival; int cap; int aid; @@ -37,15 +46,24 @@ struct Wifi Ref txseq; void (*transmit)(Wifi*, Wnode*, Block*); - char essid[32+2]; + char essid[Essidlen+2]; Wnode *bss; Wnode node[32]; }; +struct Wifipkt +{ + uchar fc[2]; + uchar dur[2]; + uchar a1[Eaddrlen]; + uchar a2[Eaddrlen]; + uchar a3[Eaddrlen]; + uchar seq[2]; +}; + Wifi *wifiattach(Ether *ether, void (*transmit)(Wifi*, Wnode*, Block*)); void wifiiq(Wifi*, Block*); long wifistat(Wifi*, void*, long, ulong); long wifictl(Wifi*, void*, long); - |