1/*
2 * mainSecNull.c
3 *
4 * Copyright(c) 1998 - 2009 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/** \file mainSecSm.c
35 *  \brief 802.1X finite state machine header file
36 *
37 *  \see mainSecSm.h
38 */
39
40
41/***************************************************************************/
42/*																		   */
43/*		MODULE:	mainSecSm.c											   	   */
44/*    PURPOSE:	Main Security State Machine API					   		   */
45/*																	 	   */
46/***************************************************************************/
47
48#define __FILE_ID__  FILE_ID_38
49#include "osApi.h"
50#include "paramOut.h"
51#include "report.h"
52#include "DataCtrl_Api.h"
53#include "smeApi.h"
54#include "rsn.h"
55#include "rsnApi.h"
56#include "mainSecSm.h"
57#include "mainSecNull.h"
58
59/* Constants */
60
61/* Enumerations */
62
63/* Typedefs */
64
65/* Structures */
66
67/* External data definitions */
68
69/* External functions definitions */
70
71/* Global variables */
72
73/* Local function prototypes */
74
75/* functions */
76
77/**
78*
79* rsn_mainSecSmFullInit
80*
81* \b Description:
82*
83* Init main security state machine state machine
84*
85* \b ARGS:
86*
87*  none
88*
89* \b RETURNS:
90*
91*  TI_OK on success, TI_NOK otherwise.
92*
93* \sa
94*/
95TI_STATUS mainSecSmNull_config(mainSec_t *pMainSec,
96                            TRsnPaeConfig *pPaeConfig)
97{
98    pMainSec->start = (mainSecSmStart_t)mainSecSmNull_start;
99	pMainSec->stop = mainSecSmNull_stop;
100	pMainSec->reportAuthStatus = NULL;
101	pMainSec->reportKeysStatus = mainSecNull_reportKeysStatus;
102	pMainSec->reportReAuthenticate = NULL;
103	pMainSec->getAuthIdentity  = NULL;
104	pMainSec->setAuthIdentity  = (mainSecSm_getAuthIdentity_t)mainSecNull_setAuthIdentity;
105    pMainSec->getAuthState = mainSecNull_getAuthState;
106    pMainSec->reportAuthFailure  = (mainSecSm_reportAuthFailure_t)mainSecNull_reportAuthFailure;
107    return TI_OK;
108}
109
110/**
111*
112* mainSecSmNull_Start
113*
114* \b Description:
115*
116* Start the NULL main security SM. Reports success to the rsn module immediately.
117*
118* \b ARGS:
119*
120*  none
121*
122* \b RETURNS:
123*
124*  TI_OK on success, TI_NOK otherwise.
125*
126* \sa
127*/
128TI_STATUS mainSecSmNull_start(mainSec_t *pMainSec)
129{
130    TI_STATUS status;
131
132    status = rsn_reportStatus(pMainSec->pParent, TI_OK);
133
134    return status;
135}
136
137/**
138*
139* mainSecSmNull_Stop
140*
141* \b Description:
142*
143* Start the NULL main security SM. Reports success to the rsn module immediately.
144*
145* \b ARGS:
146*
147*  none
148*
149* \b RETURNS:
150*
151*  TI_OK on success, TI_NOK otherwise.
152*
153* \sa
154*/
155TI_STATUS mainSecSmNull_stop(mainSec_t *pMainSec)
156{
157    return TI_OK;
158}
159
160/**
161*
162* mainSecNull_reportKeysStatus
163*
164* \b Description:
165*
166* Start the NULL main security SM. Reports success to the rsn module immediately.
167*
168* \b ARGS:
169*
170*  none
171*
172* \b RETURNS:
173*
174*  TI_OK on success, TI_NOK otherwise.
175*
176* \sa
177*/
178TI_STATUS mainSecNull_reportKeysStatus(mainSec_t *pMainSec, TI_STATUS keysStatus)
179{
180
181	return TI_OK;
182}
183/**
184*
185* mainSecKeysOnly_getAuthState:  \n
186*
187* \b Description:
188*
189* Get authentication state from supp1x SM.
190*
191* \b ARGS:
192*
193*  I   - pMainSec - pMainSec SM context  \n
194*  I   - authIdentity - pointer to authentication state \n
195*
196* \b RETURNS:
197*
198*  TI_OK if successful, TI_NOK otherwise.
199*
200* \sa
201*/
202
203TI_STATUS mainSecNull_getAuthState(mainSec_t *pMainSec, TIWLN_SECURITY_STATE *secState)
204{
205	*secState = eSecurityStateHalted;
206	return TI_OK;
207
208} /*mainSecKeysOnly_getAuthState*/
209
210
211TI_STATUS mainSecSmNull_nop(mainSec_t *pMainSec)
212{
213	return TI_OK;
214
215} /*mainSecKeysOnly_getAuthState*/
216
217
218TI_STATUS mainSecNull_reportAuthFailure(mainSec_t *pMainSec, EAuthStatus authStatus)
219{
220    return TI_OK;
221}
222
223
224TI_STATUS mainSecNull_setAuthIdentity(mainSec_t *pMainSec, authIdentity_t *authIdentity)
225{
226
227	return TI_OK;
228}
229