• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
5 **| All rights reserved.                                                  |**
6 **|                                                                       |**
7 **| Redistribution and use in source and binary forms, with or without    |**
8 **| modification, are permitted provided that the following conditions    |**
9 **| are met:                                                              |**
10 **|                                                                       |**
11 **|  * Redistributions of source code must retain the above copyright     |**
12 **|    notice, this list of conditions and the following disclaimer.      |**
13 **|  * Redistributions in binary form must reproduce the above copyright  |**
14 **|    notice, this list of conditions and the following disclaimer in    |**
15 **|    the documentation and/or other materials provided with the         |**
16 **|    distribution.                                                      |**
17 **|  * Neither the name Texas Instruments nor the names of its            |**
18 **|    contributors may be used to endorse or promote products derived    |**
19 **|    from this software without specific prior written permission.      |**
20 **|                                                                       |**
21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
32 **|                                                                       |**
33 **+-----------------------------------------------------------------------+**
34 ****************************************************************************/
35 
36 #include "whalCommon.h"
37 #include "whalCtrl_api.h"
38 #include "whalCtrl.h"
39 #include "whalSecurity.h"
40 
41 
42 /*
43  * ----------------------------------------------------------------------------
44  * Function : whalWep_Create
45  *
46  * Input    :
47  * Output   :
48  * Process  :
49  * Note(s)  :
50  * -----------------------------------------------------------------------------
51  */
whalWep_Create(TI_HANDLE hOs,TI_HANDLE hWhalCtrl)52 TI_HANDLE whalWep_Create (TI_HANDLE hOs, TI_HANDLE hWhalCtrl)
53 {
54 	WHAL_WEP* pWhalWep;
55 
56 	pWhalWep = (WHAL_WEP *)os_memoryAlloc (hOs, sizeof(WHAL_WEP));
57 	if (pWhalWep == NULL)
58 		return NULL;
59 
60 	os_memoryZero (hOs, (void *)pWhalWep, sizeof(WHAL_WEP));
61 
62 	pWhalWep->pWhalCtrl = (WHAL_CTRL *)hWhalCtrl;
63 	pWhalWep->hOs = hOs;
64 
65 	return((TI_HANDLE)pWhalWep);
66 }
67 
68 /*
69  * ----------------------------------------------------------------------------
70  * Function : whalWep_Config
71  *
72  * Input    :
73  * Output   :
74  * Process  :
75  * Note(s)  :
76  * -----------------------------------------------------------------------------
77  */
whalWep_Config(TI_HANDLE hWhalWep,whalWep_config_t * pWhalWepCfg)78 int whalWep_Config (TI_HANDLE hWhalWep, whalWep_config_t* pWhalWepCfg)
79 {
80 	WHAL_WEP* pWhalWep = (WHAL_WEP *)hWhalWep;
81 
82 	pWhalWep->hMemMgr = pWhalWepCfg->hMemMgr;
83 	pWhalWep->hReport = pWhalWepCfg->hReport;
84 
85 	/* YV - need to move here, the settings of ACXWEPOptions IE configuration!!*/
86 	/* which set the number of keys for which to reseve space in the WEP cache*/
87 
88 	return (OK);
89 }
90 
91 /*
92  * ----------------------------------------------------------------------------
93  * Function : whalWep_KeyAdd
94  *
95  * Input    :
96  * Output   :
97  * Process  :
98  * Note(s)  :
99  * -----------------------------------------------------------------------------
100  */
whalWep_KeyAdd(TI_HANDLE hWhalWep,securityKeys_t * pKey,void * CB_Func,TI_HANDLE CB_handle)101 int whalWep_KeyAdd (TI_HANDLE hWhalWep, securityKeys_t* pKey, void *CB_Func, TI_HANDLE CB_handle)
102 {
103 	WHAL_WEP* pWhalWep = (WHAL_WEP *)hWhalWep;
104 
105 	/* Non WEP keys are trashed*/
106 	if (pKey->keyType != WEP_KEY)
107 		return (NOK);
108 
109     /* Check for mapping key or default key */
110     if ( MAC_NULL(&pKey->macAddress) )
111     {
112         /* Configure the encKeys to the HW - default keys cache*/
113         return (whal_hwCtrl_WepDefaultKeyAdd (pWhalWep->pWhalCtrl->pHwCtrl, pKey, CB_Func, CB_handle));
114     }
115     else /* Use key mapping */
116     {
117         return (whal_hwCtrl_WepMappingKeyAdd (pWhalWep->pWhalCtrl->pHwCtrl, pKey, CB_Func, CB_handle));
118     }
119 }
120 
121 /*
122  * ----------------------------------------------------------------------------
123  * Function : whalWep_KeyRemove
124  *
125  * Input    :
126  * Output   :
127  * Process  :
128  * Note(s)  :
129  * -----------------------------------------------------------------------------
130  */
whalWep_KeyRemove(TI_HANDLE hWhalWep,securityKeys_t * pKey,void * CB_Func,TI_HANDLE CB_handle)131 int whalWep_KeyRemove (TI_HANDLE hWhalWep, securityKeys_t* pKey, void *CB_Func, TI_HANDLE CB_handle)
132 {
133 	WHAL_WEP* pWhalWep = (WHAL_WEP *)hWhalWep;
134 
135 	/* Non WEP keys are trashed*/
136 	if (pKey->keyType != WEP_KEY)
137 		return (NOK);
138 
139     /* Check for mapping key or default key */
140     if ( MAC_NULL(&pKey->macAddress) )
141     {
142 	    return (whal_hwCtrl_WepDefaultKeyRemove (pWhalWep->pWhalCtrl->pHwCtrl, pKey, CB_Func, CB_handle));
143     }
144     else
145     {
146         return (whal_hwCtrl_WepMappingKeyRemove (pWhalWep->pWhalCtrl->pHwCtrl, pKey, CB_Func, CB_handle));
147     }
148 }
149 
150 /*
151  * ----------------------------------------------------------------------------
152  * Function : whalWep_DefaultKeyIdSet
153  *
154  * Input    :
155  * Output   :
156  * Process  :
157  * Note(s)  :
158  * -----------------------------------------------------------------------------
159  */
whalWep_DefaultKeyIdSet(TI_HANDLE hWhalWep,UINT8 aKeyId,void * CB_Func,TI_HANDLE CB_handle)160 int whalWep_DefaultKeyIdSet (TI_HANDLE hWhalWep, UINT8 aKeyId, void *CB_Func, TI_HANDLE CB_handle)
161 {
162 	WHAL_WEP *pWhalWep = (WHAL_WEP *)hWhalWep;
163 
164 	/* Configure the default key id to the HW*/
165 	return (whal_hwCtrl_DefaultKeyIdSet (pWhalWep->pWhalCtrl->pHwCtrl, aKeyId, CB_Func, CB_handle));
166 }
167 
168 /*
169  * ----------------------------------------------------------------------------
170  * Function : whalWep_Destroy
171  *
172  * Input    :
173  * Output   :
174  * Process  :
175  * Note(s)  :
176  * -----------------------------------------------------------------------------
177  */
whalWep_Destroy(TI_HANDLE hWhalWep)178 int whalWep_Destroy (TI_HANDLE hWhalWep)
179 {
180 	WHAL_WEP *pWhalWep = (WHAL_WEP *)hWhalWep;
181 
182 	if (pWhalWep)
183 		os_memoryFree (pWhalWep->hOs, pWhalWep, sizeof(WHAL_WEP));
184 
185 	return (OK);
186 }
187 
188