Changeset 145

Show
Ignore:
Timestamp:
05/07/07 12:36:46 (20 months ago)
Author:
jwright
Message:

Added lcpf functions for deauth, associate request, associate response, authenticate request, authenticate response

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/lorcon_forge.c

    r129 r145  
    191191} 
    192192 
     193void lcpf_deauth(struct lcpa_metapack *pack, uint8_t *src, uint8_t *dst, 
     194                                   uint8_t *bssid, int framecontrol,  
     195                                   int duration, int fragment, 
     196                                   int sequence, int reasoncode) { 
     197        uint8_t chunk[2]; 
     198        uint16_t *ch16 = (uint16_t *) chunk; 
     199 
     200        lcpf_80211headers(pack, 0, 12, framecontrol, duration, 
     201                                          dst, src, bssid, NULL, fragment, sequence); 
     202 
     203        *ch16 = reasoncode; 
     204        lcpa_append_copy(pack, "REASONCODE", 2, chunk); 
     205} 
     206 
    193207void lcpf_disassoc(struct lcpa_metapack *pack, uint8_t *src, uint8_t *dst, 
    194208                                   uint8_t *bssid, int framecontrol, int duration, int fragment, 
     
    243257        pack = lcpa_append_copy(pack, "TRANSMITTERMAC", 6, transmac); 
    244258} 
     259 
     260void lcpf_authreq(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     261                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     262                int sequence, uint16_t authalgo, uint16_t auth_seq, 
     263                uint16_t auth_status) 
     264{ 
     265        uint8_t chunk[2]; 
     266        uint16_t *sixptr = (uint16_t *) chunk; 
     267         
     268        lcpf_80211headers(pack, 0, 11, framecontrol, duration, 
     269                                          dst, src, bssid, NULL, 
     270                                          fragment, sequence); 
     271 
     272        *sixptr = authalgo; 
     273        pack = lcpa_append_copy(pack, "AUTHALGO", 2, chunk); 
     274        *sixptr = auth_seq; 
     275        pack = lcpa_append_copy(pack, "AUTHSEQ", 2, chunk); 
     276        *sixptr = auth_status; 
     277        pack = lcpa_append_copy(pack, "AUTHSTATUS", 2, chunk); 
     278 
     279} 
     280 
     281/* Authentication response is the same for open networks, with IE tags */ 
     282void lcpf_authresq(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     283                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     284                int sequence, uint16_t authalgo, uint16_t auth_seq, 
     285                uint16_t auth_status) 
     286{ 
     287        lcpf_authreq(pack, dst, src, bssid, framecontrol, duration, fragment, 
     288                        sequence, authalgo, auth_seq, auth_status); 
     289} 
     290 
     291void lcpf_assocreq(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     292                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     293                int sequence, uint16_t capabilities, uint16_t listenint) 
     294{ 
     295        uint8_t chunk[2]; 
     296        uint16_t *sixptr = (uint16_t *) chunk; 
     297 
     298        lcpf_80211headers(pack, 0, 5, framecontrol, duration, 
     299                                          dst, src, bssid, NULL, 
     300                                          fragment, sequence); 
     301 
     302        *sixptr = capabilities; 
     303        pack = lcpa_append_copy(pack, "ASSOCREQCAPAB", 2, chunk); 
     304        *sixptr = listenint; 
     305        pack = lcpa_append_copy(pack, "ASSOCREQLI", 2, chunk); 
     306} 
     307 
     308void lcpf_assocresp(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     309                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     310                int sequence, uint16_t capabilities, uint16_t status,  
     311                uint16_t aid) 
     312{ 
     313        uint8_t chunk[2]; 
     314        uint16_t *sixptr = (uint16_t *) chunk; 
     315 
     316        lcpf_80211headers(pack, 0, 5, framecontrol, duration, 
     317                                          dst, src, bssid, NULL, 
     318                                          fragment, sequence); 
     319 
     320        *sixptr = capabilities; 
     321        pack = lcpa_append_copy(pack, "ASSOCRESPCAPAB", 2, chunk); 
     322        *sixptr = status; 
     323        pack = lcpa_append_copy(pack, "ASSOCRESPSTAT", 2, chunk); 
     324        *sixptr = aid; 
     325        pack = lcpa_append_copy(pack, "ASSOCRESPID", 2, chunk); 
     326} 
     327 
  • trunk/lorcon_forge.h

    r129 r145  
    109109void lcpf_rts(struct lcpa_metapack *pack, uint8_t *recvmac, uint8_t *transmac,  
    110110                int framecontrol, int duration); 
     111 
     112/* Deauthenticate frame */ 
     113void lcpf_deauth(struct lcpa_metapack *pack, uint8_t *src, uint8_t *dst, 
     114                                   uint8_t *bssid, int framecontrol,  
     115                                   int duration, int fragment, 
     116                                   int sequence, int reasoncode);  
     117 
     118/* Authenticate request */ 
     119void lcpf_authreq(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     120                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     121                int sequence, uint16_t authalgo, uint16_t auth_seq, 
     122                uint16_t auth_status); 
     123 
     124/* Authenticate response */ 
     125void lcpf_authresp(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     126                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     127                int sequence, uint16_t authalgo, uint16_t auth_seq, 
     128                uint16_t auth_status); 
     129 
     130/* Associate request */ 
     131void lcpf_assocreq(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     132                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     133                int sequence, uint16_t capabilities, uint16_t listenint); 
     134 
     135/* Associate response */ 
     136void lcpf_assocresp(struct lcpa_metapack *pack, uint8_t *dst, uint8_t *src,  
     137                uint8_t *bssid, int framecontrol, int duration, int fragment, 
     138                int sequence, uint16_t capabilities, uint16_t status,  
     139                uint16_t aid); 
    111140#endif