summaryrefslogtreecommitdiff
path: root/wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h
diff options
context:
space:
mode:
Diffstat (limited to 'wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h')
-rw-r--r--wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h190
1 files changed, 190 insertions, 0 deletions
diff --git a/wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h b/wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h
new file mode 100644
index 0000000..b8fa03d
--- /dev/null
+++ b/wilink_6_1/stad/src/Connection_Managment/admCtrlWpa2.h
@@ -0,0 +1,190 @@
+/*
+ * admCtrlWpa2.h
+ *
+ * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Texas Instruments nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** \file admCtrlWpa2.h
+ * \brief Admission control header file for WPA2
+ *
+ * \see admCtrl.c and admCtrlWpa2.c
+ */
+
+/****************************************************************************
+ * *
+ * MODULE: Admission Control *
+ * PURPOSE: Admission Control Header file for WPA2 *
+ * *
+ ****************************************************************************/
+
+#ifndef _ADM_CTRL_WPA2_H_
+#define _ADM_CTRL_WPA2_H_
+
+
+/* Constants */
+
+/* Enumerations */
+
+/* Typedefs */
+
+/* WPA2 configuration parameters: */
+/* defined here only for debugging purposes; should be moved from here */
+
+#define WPA2_PRE_AUTHENTICATION_SUPPORT 1
+#define WPA2_PMKID_CACHE_SIZE 32
+#define WPA2_CANDIDATE_LIST_MAX_SIZE 16
+
+/* RSN admission control prototypes */
+
+
+/* Structures */
+
+
+
+#define MAX_WPA2_UNICAST_SUITES (TWD_CIPHER_WEP104+1)
+#define MAX_WPA2_KEY_MNG_SUITES (RSN_KEY_MNG_XCC+1)
+
+/* Cipher suites for group key sent in RSN IE are: WEP40, WEP104, TKIP, CCCMP */
+#define GRP_CIPHER_MAXNO_IN_RSNIE 4
+
+/* Cipher suites for unicast key sent in RSN IE are TKIP, CCMP, "use Group key"*/
+#define UNICAST_CIPHER_MAXNO_IN_RSNIE 3
+
+/* OUIs for cipher suites and appropriated values of cipherSuite_e (paramout.h file)
+ *
+ * 00-0F-AC-0 Use group cipher suite RSN_CIPHER_NONE
+ * 00-0F-AC-1 WEP-40 RSN_CIPHER_WEP
+ * 00-0F-AC-2 TKIP RSN_CIPHER_TKIP
+ * 00-0F-AC-3 Reserved RSN_CIPHER_WRAP not used for WPA2
+ * 00-0F-AC-4 4 RSN_CIPHER_CCMP
+ * 00-0F-AC-5 WEP-104 RSN_CIPHER_WEP104
+ * 00-0F-AC 6 reserved 6 to 255 RSN_CIPHER_CKIP - not used for WPA2
+ *
+ */
+
+/* Key management suites (Authentication and Key Management Protocol - AKMP) */
+/* received in RSN IE */
+#define KEY_MGMT_SUITE_MAXNO_IN_RSN_IE 2
+
+/* OUIs for key management
+*
+* 00-0F-AC-00 Reserved
+* 00-0F-AC-01 802.1X
+* 00-0F-AC-02 PSK
+* 00-0F-AC-03 reserved from 3 to 255
+*/
+
+/* WPA2 key management suites */
+#define WPA2_IE_KEY_MNG_NONE 0
+#define WPA2_IE_KEY_MNG_801_1X 1
+#define WPA2_IE_KEY_MNG_PSK_801_1X 2
+#define WPA2_IE_KEY_MNG_CCKM 3
+#define WPA2_IE_KEY_MNG_NA 4
+
+
+#define WPA2_OUI_MAX_VERSION 0x1
+#define WPA2_OUI_DEF_TYPE 0x1
+#define WPA2_OUI_MAX_TYPE 0x2
+
+#define WPA2_PRE_AUTH_CAPABILITY_MASK 0x0001 /* bit 0 */
+#define WPA2_PRE_AUTH_CAPABILITY_SHIFT 0
+#define WPA2_GROUP_4_UNICAST_CAPABILITY_MASK 0x0002 /* bit 1 No Pairwise */
+#define WPA2_GROUP_4_UNICAST_CAPABILITY_SHIFT 1
+#define WPA2_PTK_REPLAY_COUNTERS_CAPABILITY_MASK 0x000c /* bit 2 and 3 */
+#define WPA2_PTK_REPLAY_COUNTERS_CAPABILITY_SHIFT 2
+#define WPA2_GTK_REPLAY_COUNTERS_CAPABILITY_MASK 0x0030 /* bit 4 and 5 */
+#define WPA2_GTK_REPLAY_COUNTERS_CAPABILITY_SHIFT 4
+ /* bit 6 - 15 - reserved */
+#define WPA2_IE_MIN_LENGTH 4
+#define WPA2_IE_GROUP_SUITE_LENGTH 8
+#define WPA2_IE_MIN_PAIRWISE_SUITE_LENGTH 14
+#define WPA2_IE_MIN_DEFAULT_LENGTH 24
+#define WPA2_IE_MIN_KEY_MNG_SUITE_LENGTH(pairwiseCnt) (10+4*pairwiseCnt)
+
+
+
+
+/* WPA2 IE (RSN IE) packet structure */
+/* This structure is used for outgoing packets, i.e. for association request */
+/* For incoming packets (Beacon and Probe response from an AP) stucture of */
+/* dot11_RSN_t type is used as more common stucture */
+typedef struct
+{
+
+ TI_UINT8 elementid; /* WPA2 IE (RSN IE) id is 0x30 */
+ TI_UINT8 length;
+ TI_UINT16 version;
+ TI_UINT8 groupSuite[4]; /* OUI for broadcast suite */
+ TI_UINT16 pairwiseSuiteCnt;
+ TI_UINT8 pairwiseSuite[4]; /* OUI for 1 unicast suite */
+ TI_UINT16 authKeyMngSuiteCnt;
+ TI_UINT8 authKeyMngSuite[4]; /* OUI for 1 key mgmt suite */
+ TI_UINT16 capabilities;
+ TI_UINT16 pmkIdCnt; /* only one PMKID is supported per AP */
+ TI_UINT8 pmkId[PMKID_VALUE_SIZE];
+} wpa2IePacket_t;
+
+
+/* WPA2 data parsed from RSN info element */
+typedef struct
+{
+
+ ECipherSuite broadcastSuite;
+ TI_UINT16 unicastSuiteCnt;
+ ECipherSuite unicastSuite[MAX_WPA2_UNICAST_SUITES];
+ TI_UINT16 KeyMngSuiteCnt;
+ TI_UINT8 KeyMngSuite[MAX_WPA2_KEY_MNG_SUITES];
+ TI_UINT8 preAuthentication;
+ TI_UINT8 bcastForUnicatst;
+ TI_UINT8 ptkReplayCounters;
+ TI_UINT8 gtkReplayCounters;
+ TI_UINT16 pmkIdCnt;
+ TI_UINT8 pmkId[PMKID_VALUE_SIZE];
+} wpa2IeData_t;
+
+
+
+/* External data definitions */
+
+/* External functions definitions */
+
+/* Function prototypes */
+
+TI_STATUS admCtrlWpa2_config(admCtrl_t *pAdmCtrl);
+
+TI_STATUS admCtrlWpa2_getInfoElement(admCtrl_t *pAdmCtrl, TI_UINT8 *pIe, TI_UINT32 *pLength);
+
+TI_STATUS admCtrlWpa2_setSite(admCtrl_t *pAdmCtrl, TRsnData *pRsnData, TI_UINT8 *pAssocIe, TI_UINT8 *pAssocIeLen);
+
+TI_STATUS admCtrlWpa2_evalSite(admCtrl_t *pAdmCtrl, TRsnData *pRsnData, TRsnSiteParams *pRsnSiteParams, TI_UINT32 *pEvaluation);
+
+void admCtrlWpa2_preAuthTimerExpire(TI_HANDLE hadmCtrl, TI_BOOL bTwdInitOccured);
+
+#endif /* _ADM_CTRL_WPA_H_*/