summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/COMMON/Wapi.h
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /network/wlan/WDI/COMMON/Wapi.h
parent687b274aa38fd05c8c26e3068932121876d7f745 (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.h478
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
-