diff options
| author | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
|---|---|---|
| committer | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
| commit | 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch) | |
| tree | ad5f3ede5cbcd6b598677ce41bcf8318471bdd92 /network/wlan/WDI/COMMON/Wapi.h | |
| parent | 687b274aa38fd05c8c26e3068932121876d7f745 (diff) | |
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'network/wlan/WDI/COMMON/Wapi.h')
| -rw-r--r-- | network/wlan/WDI/COMMON/Wapi.h | 478 |
1 files changed, 0 insertions, 478 deletions
diff --git a/network/wlan/WDI/COMMON/Wapi.h b/network/wlan/WDI/COMMON/Wapi.h deleted file mode 100644 index bf45131d..00000000 --- a/network/wlan/WDI/COMMON/Wapi.h +++ /dev/null @@ -1,478 +0,0 @@ -#ifndef __INC_WAPI_H -#define __INC_WAPI_H - - //add by ylb for WAPI IHV Support 20111114 -#define DOT11_AUTH_ALGO_WAPI_PSK DOT11_AUTH_ALGO_IHV_START + 0x00000010L -#define DOT11_AUTH_ALGO_WAPI_CERTIFICATE DOT11_AUTH_ALGO_IHV_START + 0x00000011L -#define DOT11_CIPHER_ALGO_WAPI_SMS4 DOT11_CIPHER_ALGO_IHV_START + 0x00000010L - -#define WAPI_END NULL -typedef enum _RT_WAPI_CALLBACK_FUNC_DEF -{ - //One Param - WAPI_ENABLEWAPISUPPORT=0, - WAPI_INIT=1, - WAPI_RETURNALLCAMENTRY=2, - WAPI_RETURNALLSTAINFO=3, - WAPI_FREEALLSTAINFO=4, - WAPI_CONSTRUCTBEACON=5, - //Two Param - WAPI_CONSTRUCTASSOCIATEREQ=6, - WAPI_CONSTRUCTPROBERSP=7, - WAPI_ENABLEHWSECCONFIG=8, - WAPI_MLMEONASSOCOK=9, - WAPI_PRETRANSMITTCB=10, - WAPI_PROCESSRECEIVEDPACKET=11, - WAPI_DROPFORRXREORDER=12, - WAPI_DROPFORSECKEYABSENT= 13, - WAPI_RETURNONESTAINFO=14, - WAPI_RETURNONESTACAMENTRY=15, - WAPI_SECSWSMS4ENCRYPTION= 16, - WAPI_SECSWSMS4DECRYPTION=17, - //Three Param - WAPI_SECHEADERFILLIV = 18, - WAPI_SECISWAIPACKET = 19, - WAPI_SETAUTHENCRYPTSTATE = 20, - //four Param - WAPI_SETCAMENTRY = 21, - - WAPI_MAX =100, -}RT_WAPI_FUNC_E; - - -#if (WAPI_SUPPORT == 1) -#define WAPI_MAXARGS 3 -#define WAPI_QUERY 0 -#define WAPI_SET 1 -typedef enum _RT_WAPI_QUERYSET_VARIABLE -{ - WAPI_VAR_WAPISUPPORT, - WAPI_VAR_WAPIENABLE, - WAPI_VAR_WAPIIHVSUPPORT, - WAPI_VAR_ISCAMUSED, - WAPI_VAR_FIRSTAUTHENTIATEINPROGRESS, - WAPI_VAR_NOTSETENCMACHEADER, - WAPI_VAR_WAPIPSK, - - WAPI_VAR_MAX =255, -}RT_WAPI_QUERYSET_VARIABLE; - -typedef enum _WAPI_REQUEST_TYPE -{ - WAPI_REQUEST_QUERY, - WAPI_REQUEST_SET, - WAPI_REQUEST_METHOD, -} WAPI_REQUEST_TYPE, *PWAPI_REQUEST_TYPE; - - -typedef union _WAPI_REQUEST_DATA -{ - struct _WAPI_QUERY_INFO - { - ULONG Oid; - ULONG BytesWritten; - ULONG BytesNeeded; - ULONG InformationBufferLength; - UCHAR InformationBuffer[1]; - } WAPI_QUERY_INFO; - - struct _WAPI_SET_INFO - { - ULONG Oid; - ULONG BytesRead; - ULONG BytesNeeded; - ULONG InformationBufferLength; - UCHAR InformationBuffer[1]; - } WAPI_SET_INFO; - - struct _WAPI_METHOD_INFO - { - ULONG Oid; - ULONG BytesWritten; - ULONG BytesNeeded; - ULONG BytesRead; - ULONG InputBufferLength; - ULONG InformationBufferLength; - UCHAR InformationBuffer[1]; - } WAPI_METHOD_INFO; - -} WAPI_REQUEST_DATA, *PWAPI_REQUEST_DATA; - - -typedef struct _WAPI_REQUEST -{ - ULONG wapiRequestLen; // length of entire structure - UCHAR wapiRequestOUI[4]; // vendor specific OUI value - WAPI_REQUEST_TYPE wapiRequestType; - WAPI_REQUEST_DATA wapiRequestData; -} WAPI_REQUEST, *PWAPI_REQUEST; - - - //add by ylb for WAPI IHV Support 20111114 -#define DOT11_AUTH_ALGO_WAPI_PSK DOT11_AUTH_ALGO_IHV_START + 0x00000010L -#define DOT11_AUTH_ALGO_WAPI_CERTIFICATE DOT11_AUTH_ALGO_IHV_START + 0x00000011L -#define DOT11_CIPHER_ALGO_WAPI_SMS4 DOT11_CIPHER_ALGO_IHV_START + 0x00000010L - - -#define WAPI_LITTLE_ENDIAN -#define ENCRYPT 0 -#define DECRYPT 1 -typedef unsigned char muint8; -typedef unsigned short muint16; -typedef unsigned int muint32; - -static const muint8 Sbox_WAPI[256] = { -0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05, -0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99, -0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62, -0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6, -0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8, -0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35, -0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87, -0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e, -0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1, -0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3, -0x1d,0xf6,0xe2,0x2e,0x82,0x66,0xca,0x60,0xc0,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f, -0xd5,0xdb,0x37,0x45,0xde,0xfd,0x8e,0x2f,0x03,0xff,0x6a,0x72,0x6d,0x6c,0x5b,0x51, -0x8d,0x1b,0xaf,0x92,0xbb,0xdd,0xbc,0x7f,0x11,0xd9,0x5c,0x41,0x1f,0x10,0x5a,0xd8, -0x0a,0xc1,0x31,0x88,0xa5,0xcd,0x7b,0xbd,0x2d,0x74,0xd0,0x12,0xb8,0xe5,0xb4,0xb0, -0x89,0x69,0x97,0x4a,0x0c,0x96,0x77,0x7e,0x65,0xb9,0xf1,0x09,0xc5,0x6e,0xc6,0x84, -0x18,0xf0,0x7d,0xec,0x3a,0xdc,0x4d,0x20,0x79,0xee,0x5f,0x3e,0xd7,0xcb,0x39,0x48 -}; - -static const muint32 CK[32] = { - 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, - 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9, - 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, - 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9, - 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229, - 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299, - 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209, - 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 }; - -#define Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y)))) - -#define ByteSub(_A) (Sbox_WAPI[(_A) >> 24 & 0xFF] << 24 ^ \ - Sbox_WAPI[(_A) >> 16 & 0xFF] << 16 ^ \ - Sbox_WAPI[(_A) >> 8 & 0xFF] << 8 ^ \ - Sbox_WAPI[(_A) & 0xFF]) - -#define L1(_B) ((_B) ^ Rotl(_B, 2) ^ Rotl(_B, 10) ^ Rotl(_B, 18) ^ Rotl(_B, 24)) -#define L2(_B) ((_B) ^ Rotl(_B, 13) ^ Rotl(_B, 23)) - - -/*--------------------------------------------------------------------------- -WAPI Related OID ------------------------------------------------------------------------------*/ -#define OID_RT_WAPI_GET_INFO 0xFFEDC201 -#define OID_RT_WAPI_SET_KEY 0xFFEDC202 -#define OID_RT_WAPI_GET_PN 0xFFEDC203 -#define OID_RT_WAPI_RECEIVE_PACKET 0xFFEDC204 -#define OID_RT_WAPI_SET_DESTNATION_ADDRESS 0xFFEDC205 -#define OID_RT_WAPI_SEND_WAI_PACKET 0xFFEDC206 -#define OID_WAPI_ASUE_CREATE_THREAD 0xFFEDC207 -#define OID_WAPI_ASUE_SET_MUTICAST_PN 0xFFEDC208 -#define OID_RT_WAPI_SUPPORT 0xFFEDC209 -#define OID_RT_WAPI_AE_START 0xFFEDC20A -#define OID_RT_WAPI_IHV_SUPPORT 0xFFEDC20B //For WAPI IHV service support add by ylb 20111114 -#define OID_RT_WAPI_ENABLE 0xFFEDC20C //For WAPI Enbale. add by YJ, 20121112 - -#define WAPI_MAX_BKID_NUM 64 -#define WAPI_MAX_RECEIVE_NUM 128 -#define WAPI_MAX_OPTION_NUM 64 -#define WAPI_CAM_ENTRY_NUM 14 // 28/2=14 - -// -// 2011/01/11 MH Add for WAPI callback function table. -// -typedef struct tag_Wapi_Handler_Def -{ - //char *name; /* Wapi function string */ - //char *desc; /* Description */ - //char *usage; /* Usage of the command */ - //int directory; /* Directory */ - INT32 wapi_func_name; /* Use enum to define the function name. */ - RT_STATUS (*wapi_func1) - ( IN PADAPTER pAdapter); - RT_STATUS (*wapi_func2) - ( IN PADAPTER pAdapter, - IN PVOID pWapiParam); - RT_STATUS (*wapi_func3) - ( IN PADAPTER pAdapter, - IN PVOID pWapiParam1, - IN PVOID pWapiParam2); - RT_STATUS (*wapi_func4) - ( IN PADAPTER pAdapter, - IN PVOID pWapiParam1, - IN PVOID pWapiParam2, - IN PVOID pWapiParam3); - /* WAPI function pointer */ -}WAPI_T; - -// 2011/01/12 MH Define All the WAPI functio from the entry point -// typedef enum _RT_WAPI_CALLBACK_FUNC_DEF -// { -// //One Param -// WAPI_ENABLEWAPISUPPORT=0, -// WAPI_INIT=1, -// WAPI_RETURNALLCAMENTRY=2, -// WAPI_RETURNALLSTAINFO=3, -// WAPI_FREEALLSTAINFO=4, -// WAPI_CONSTRUCTBEACON=5, -// //Two Param -// WAPI_CONSTRUCTASSOCIATEREQ=6, -// WAPI_CONSTRUCTPROBERSP=7, -// WAPI_ENABLEHWSECCONFIG=8, -// WAPI_MLMEONASSOCOK=9, -// WAPI_PRETRANSMITTCB=10, -// WAPI_PROCESSRECEIVEDPACKET=11, -// WAPI_DROPFORRXREORDER=12, -// WAPI_DROPFORSECKEYABSENT= 13, -// WAPI_RETURNONESTAINFO=14, -// WAPI_RETURNONESTACAMENTRY=15, -// WAPI_SECSWSMS4ENCRYPTION= 16, -// WAPI_SECSWSMS4DECRYPTION=17, -// //Three Param -// WAPI_SECHEADERFILLIV = 18, -// WAPI_SECISWAIPACKET = 19, -// WAPI_SETAUTHENCRYPTSTATE = 20, -// //four Param -// WAPI_SETCAMENTRY = 21, -// -// WAPI_MAX =100, -// }RT_WAPI_FUNC_E; - - -typedef struct _RT_WAPI_BKID -{ - RT_LIST_ENTRY list; - u1Byte bkid[16]; -}RT_WAPI_BKID,*PRT_WAPI_BKID; - -typedef struct _RT_WAPI_KEY -{ - u1Byte dataKey[16]; - u1Byte micKey[16]; - u1Byte keyId; - BOOLEAN bSet; - BOOLEAN bTxEnable; - - //For recording the write-cam idx. - u1Byte CamIdx; -}RT_WAPI_KEY,*PRT_WAPI_KEY; - -typedef struct _RT_WAPI_RECEIVE -{ - RT_LIST_ENTRY list; - BOOLEAN bAuthenticator; - u1Byte recvBuff[1500]; - u2Byte recvBuffLength; - u1Byte destAddr[6]; -}RT_WAPI_RECEIVE,*PRT_WAPI_RECEIVE; - -typedef struct _RT_WAPI_OPTION -{ - RT_LIST_ENTRY list; - u1Byte option; - u1Byte macAddr[6]; -}RT_WAPI_OPTION,*PRT_WAPI_OPTION; - -typedef enum _RT_WAPI_AE_OPTION -{ - WAPI_AE_NONE=0, - WAPI_AE_RECV_WAI_PACKET=1, - WAPI_AE_UPDATE_BK=2, - WAPI_AE_UPDATE_USK=3, - WAPI_AE_UPDATE_MSK=4, - WAPI_AE_FIRST_AUTHENTICATOR=5, - WAPI_AE_DISCONNECT=6 -}RT_WAPI_AE_OPTION; - -typedef enum _RT_WAPI_ASUE_OPTION -{ - WAPI_ASUE_NONE=0, - WAPI_ASUE_RECV_WAI_PACKET=1, - WAPI_ASUE_UPDATE_BK=2, - WAPI_ASUE_UPDATE_USK=3, - WAPI_ASUE_DISCONNECT=4 -}RT_WAPI_ASUE_OPTION; - -typedef enum _RT_WAPI_PACKET_TYPE -{ - WAPI_NONE = 0, - WAPI_PREAUTHENTICATE=1, - WAPI_STAKEY_REQUEST=2, - WAPI_AUTHENTICATE_ACTIVE=3, - WAPI_ACCESS_AUTHENTICATE_REQUEST=4, - WAPI_ACCESS_AUTHENTICATE_RESPONSE=5, - WAPI_CERTIFICATE_AUTHENTICATE_REQUEST=6, - WAPI_CERTIFICATE_AUTHENTICATE_RESPONSE=7, - WAPI_USK_REQUEST=8, - WAPI_USK_RESPONSE=9, - WAPI_USK_CONFIRM=10, - WAPI_MSK_NOTIFICATION=11, - WAPI_MSK_RESPONSE=12 -}RT_WAPI_PACKET_TYPE; - -typedef struct _RT_WAPI_STA_INFO -{ - RT_LIST_ENTRY list; - u1Byte PeerMacAddr[6]; - RT_WAPI_KEY wapiUsk; - RT_WAPI_KEY wapiUskUpdate; - RT_WAPI_KEY wapiMsk; - RT_WAPI_KEY wapiMskUpdate; - u1Byte lastRxUnicastPN[16]; - u1Byte lastTxUnicastPN[16]; - u1Byte lastRxMulticastPN[16]; - u1Byte lastRxUnicastPNBEQueue[16]; - u1Byte lastRxUnicastPNBKQueue[16]; - u1Byte lastRxUnicastPNVIQueue[16]; - u1Byte lastRxUnicastPNVOQueue[16]; - BOOLEAN bSetkeyOk; - BOOLEAN bAuthenticateInProgress; - BOOLEAN bAuthenticatorInUpdata; - BOOLEAN bAESetkeyOk; -}RT_WAPI_STA_INFO,*PRT_WAPI_STA_INFO; - -//Added for HW wapi en/decryption -typedef struct _RT_WAPI_CAM_ENTRY{ - //RT_LIST_ENTRY list; - u1Byte IsUsed; - u1Byte entry_idx;//for cam entry - u1Byte keyidx; // 0 or 1,new or old key - u1Byte PeerMacAddr[6]; - u1Byte type; //should be 110,wapi -}RT_WAPI_CAM_ENTRY,*PRT_WAPI_CAM_ENTRY; - -typedef struct _RT_WAPI_T -{ -//WAPI IE - u1Byte assoReqWapiIE[256]; - u1Byte assoReqWapiIELength; - u1Byte assoRspWapiIE[256]; - u1Byte assoRspWapiIELength; - u1Byte sendbeaconWapiIE[256]; - u1Byte sendbeaconWapiIELength; -//BKID - RT_WAPI_BKID wapiBKID[WAPI_MAX_BKID_NUM]; - RT_LIST_ENTRY wapiBKIDIdleList; - RT_LIST_ENTRY wapiBKIDStoreList; -//Key for Tx Multicast/Broadcast - RT_WAPI_KEY wapiTxMsk; -// RT_WAPI_KEY wapiTxMskUpdate; - -//Option - RT_WAPI_OPTION wapiAEOption[WAPI_MAX_OPTION_NUM]; - RT_LIST_ENTRY wapiAEOptionIdleList; - RT_LIST_ENTRY wapiAEOptionUsedList; - RT_WAPI_OPTION wapiASUEOption[WAPI_MAX_OPTION_NUM]; - RT_LIST_ENTRY wapiASUEOptionIdleList; - RT_LIST_ENTRY wapiASUEOptionUsedList; -//Receive Packet - RT_WAPI_RECEIVE wapiRecvPacket[WAPI_MAX_RECEIVE_NUM]; - RT_LIST_ENTRY wapiRxIdleList; - RT_LIST_ENTRY wapiRxBusyList; - u1Byte wapiDestMacAddr[6]; - BOOLEAN bAuthenticator; -//sec related - u1Byte lastTxMulticastPN[16]; - RT_WAPI_STA_INFO wapiSta[WAPI_MAX_OPTION_NUM]; - RT_LIST_ENTRY wapiSTAIdleList; - RT_LIST_ENTRY wapiSTAUsedList; -// - BOOLEAN bWapiEnable; - BOOLEAN bUpdateUsk; - BOOLEAN bUpdateMsk; -//store WAPI IE - u1Byte wapiIE[256]; - u1Byte wapiIELength; - BOOLEAN bWapiNotSetEncMacHeader; - BOOLEAN bWapiPSK; - BOOLEAN bFirstAuthentiateInProgress; -//last sequece number for wai packet - u2Byte wapiSeqnumAndFragNum; - -//For HW wapi - RT_WAPI_CAM_ENTRY wapiCamEntry[WAPI_CAM_ENTRY_NUM]; - //RT_LIST_ENTRY wapiCamIdleList; - //RT_LIST_ENTRY wapiCamUsedList; - -// For WAPI IHV Support - u1Byte bIsWapiIHVSupport; - -}RT_WAPI_T,*PRT_WAPI_T; - - -typedef struct _WLAN_HEADER_WAPI_EXTENSION -{ - u1Byte KeyIdx; - u1Byte Reserved; - u1Byte PN[16]; - -} WLAN_HEADER_WAPI_EXTENSION, *PWLAN_HEADER_WAPI_EXTENSION; - -NDIS_STATUS -WAPI_EventQuerySetInformation( - IN PADAPTER pAdapter, - IN NDIS_OID Oid, - IN PVOID InformationBuffer, - IN ULONG InputBufferLength, - IN ULONG OutputBufferLength, - IN ULONG MethodId, - OUT PULONG BytesWritten, - OUT PULONG BytesRead, - OUT PULONG BytesNeeded - ); - -void -WAPI_OptionHandler( - PADAPTER Adapter, - pu1Byte DestAddr, - BOOLEAN bUpdateBK, - BOOLEAN bUpdateUSK, - BOOLEAN bUpdateMSK, - BOOLEAN bAERecvPacket, - BOOLEAN bASUERecvPacket, - BOOLEAN bDisconnect -); - -RT_STATUS -WAPI_SecFuncHandler( - IN UINT32 WapiFunc, - IN PVOID pWapiParam, - ... -); - -RT_STATUS -WAPI_OidHandler( - IN PADAPTER pAdapter, - IN u1Byte PlatformFlag, - IN u1Byte SetQuery, - IN NDIS_OID Oid, - IN PVOID InformationBuffer, - IN ULONG InformationBufferLength, - OUT PULONG BytesWrittenOrRead, - OUT PULONG BytesNeeded - ); - -u1Byte -WAPI_QuerySetVariable( - IN PADAPTER Adapter, - IN u1Byte QuerySet, - IN u1Byte VariableName, - IN u1Byte VariableParam - ); - -#else -#define WAPI_OptionHandler(Adapter, DestAddr, bUpdateBK, bUpdateUSK, bUpdateMSK, bAERecvPacket, bASUERecvPacket, bDisconnect) -#define WAPI_OidHandler(pAdapter,PlatformFlag,SetQuery,Oid,InformationBuffer,InformationBufferLength,BytesWrittenOrRead,BytesNeeded) NDIS_STATUS_NOT_RECOGNIZED -#define WAPI_EventQuerySetInformation(pAdapter,Oid,InformationBuffer,InputBufferLength,OutputBufferLength,MethodId,BytesWritten,BytesRead,BytesNeeded) NDIS_STATUS_INVALID_OID -#define WAPI_QuerySetVariable(pAdapter, QuerySet,VariableName,VariableParam) 0 - - -__inline RT_STATUS WAPI_SecFuncHandler(UINT32 WapiFunc, PVOID pWapiParam,...){ return RT_STATUS_NOT_SUPPORT;} - -#endif // #ifndef __INC_SUPPLICANT_H -#endif - |
