Home | History | Annotate | Download | only in Connection_Managment

Lines Matching refs:pRsn

93 TI_STATUS rsn_sendKeysNotSet(rsn_t *pRsn);
125 rsn_t *pRsn;
128 pRsn = (rsn_t*)os_memoryAlloc (hOs, sizeof(rsn_t));
129 if (pRsn == NULL)
134 os_memoryZero (hOs, pRsn, sizeof(rsn_t));
137 pRsn->pAdmCtrl = admCtrl_create (hOs);
138 if (pRsn->pAdmCtrl == NULL)
140 os_memoryFree (hOs, pRsn, sizeof(rsn_t));
145 pRsn->pMainSecSm = mainSec_create (hOs);
146 if (pRsn->pMainSecSm == NULL)
148 admCtrl_unload (pRsn->pAdmCtrl);
149 os_memoryFree (hOs, pRsn, sizeof(rsn_t));
153 pRsn->pKeyParser = pRsn->pMainSecSm->pKeyParser;
155 pRsn->hOs = hOs;
157 return pRsn;
181 rsn_t *pRsn;
189 pRsn = (rsn_t*)hRsn;
191 if (pRsn->hMicFailureReportWaitTimer)
193 tmr_DestroyTimer (pRsn->hMicFailureReportWaitTimer);
195 if (pRsn->hMicFailureGroupReKeyTimer)
197 tmr_DestroyTimer (pRsn->hMicFailureGroupReKeyTimer);
199 if (pRsn->hMicFailurePairwiseReKeyTimer)
201 tmr_DestroyTimer (pRsn->hMicFailurePairwiseReKeyTimer);
204 status = admCtrl_unload (pRsn->pAdmCtrl);
205 status = mainSec_unload (pRsn->pMainSecSm);
207 os_memoryFree (pRsn->hOs, hRsn, sizeof(rsn_t));
229 rsn_t *pRsn = (rsn_t*)(pStadHandles->hRsn);
231 pRsn->eGroupKeyUpdate = GROUP_KEY_UPDATE_FALSE;
232 pRsn->ePairwiseKeyUpdate = PAIRWISE_KEY_UPDATE_FALSE;
233 pRsn->PrivacyOptionImplemented = TI_TRUE;
235 pRsn->hTxCtrl = pStadHandles->hTxCtrl;
236 pRsn->hRx = pStadHandles->hRxData;
237 pRsn->hConn = pStadHandles->hConn;
238 pRsn->hTWD = pStadHandles->hTWD;
239 pRsn->hCtrlData = pStadHandles->hCtrlData;
240 pRsn->hSiteMgr = pStadHandles->hSiteMgr;
241 pRsn->hReport = pStadHandles->hReport;
242 pRsn->hOs = pStadHandles->hOs;
243 pRsn->hXCCMngr = pStadHandles->hXCCMngr;
244 pRsn->hEvHandler= pStadHandles->hEvHandler;
245 pRsn->hSmeSm = pStadHandles->hSme;
246 pRsn->hAPConn = pStadHandles->hAPConnection;
247 pRsn->hMlme = pStadHandles->hMlmeSm;
248 pRsn->hPowerMgr = pStadHandles->hPowerMgr;
249 pRsn->hTimer = pStadHandles->hTimer;
250 pRsn->hCurrBss = pStadHandles->hCurrBss;
252 pRsn->setPaeConfig = rsn_setPaeConfig;
253 pRsn->getNetworkMode = rsn_getNetworkMode;
254 pRsn->setKey = rsn_setKey;
255 pRsn->removeKey = rsn_removeKey;
256 pRsn->reportStatus = rsn_reportStatus;
257 pRsn->setDefaultKeyId = rsn_setDefaultKeyId;
258 pRsn->getPortStatus = rsn_getPortStatus;
259 pRsn->setPortStatus = rsn_setPortStatus;
261 pRsn->defaultKeysOn = TI_TRUE;
262 pRsn->eapType = OS_EAP_TYPE_NONE;
263 pRsn->numOfBannedSites = 0;
264 pRsn->genericIE.length = 0;
270 rsn_t *pRsn = (rsn_t*)hRsn;
275 pRsn->hMicFailureReportWaitTimer = tmr_CreateTimer (pRsn->hTimer);
276 if (pRsn->hMicFailureReportWaitTimer == NULL)
278 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "rsn_SetDefaults(): Failed to create hMicFailureReportWaitTimer!\n");
281 pRsn->hMicFailureGroupReKeyTimer = tmr_CreateTimer (pRsn->hTimer);
282 if (pRsn->hMicFailureGroupReKeyTimer == NULL)
284 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "rsn_SetDefaults(): Failed to create hMicFailureGroupReKeyTimer!\n");
289 pRsn->bRsnExternalMode = 0;
292 pRsn->hMicFailurePairwiseReKeyTimer = tmr_CreateTimer (pRsn->hTimer);
293 if (pRsn->hMicFailurePairwiseReKeyTimer == NULL)
295 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "rsn_SetDefaults(): Failed to create hMicFailurePairwiseReKeyTimer!\n");
299 pRsn->bPairwiseMicFailureFilter = pInitParam->bPairwiseMicFailureFilter;
302 status = admCtrl_config (pRsn->pAdmCtrl,
303 pRsn->hMlme,
304 pRsn->hRx,
305 pRsn->hReport,
306 pRsn->hOs,
307 pRsn,
308 pRsn->hXCCMngr,
309 pRsn->hPowerMgr,
310 pRsn->hEvHandler,
311 pRsn->hTimer,
312 pRsn->hCurrBss,
323 pRsn->wepStaticKey = TI_TRUE;
326 pRsn->defaultKeyId = pInitParam->defaultKeyId;
329 os_memoryCopy (pRsn->hOs, &pRsn->keys[keyIndex], &pInitParam->keys[keyIndex], sizeof(TSecurityKeys));
330 if (pRsn->keys[keyIndex].keyType != KEY_NULL)
332 pRsn->wepDefaultKeys[keyIndex] = TI_TRUE;
334 pRsn->keys_en [keyIndex] = TI_FALSE;
361 rsn_t *pRsn = (rsn_t *)hRsn;
366 pRsn->keys_en [keyIndex] = TI_FALSE;
390 TI_STATUS rsn_setDefaultKeys(rsn_t *pRsn)
399 if (pRsn->wepDefaultKeys[keyIndex] /*pRsn->keys[keyIndex].encLen>0*/)
402 pRsn->keys[keyIndex].keyType = KEY_WEP;
404 status = pRsn->pMainSecSm->setKey (pRsn->pMainSecSm, &pRsn->keys[keyIndex]);
408 TRACE1(pRsn->hReport, REPORT_SEVERITY_ERROR, "RSN: Setting key #%d failed \n", keyIndex);
415 if (pRsn->defaultKeyId < MAX_KEYS_NUM)
418 tTwdParam.content.configureCmdCBParams.pCb = &pRsn->defaultKeyId;
421 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
423 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: default key ID =%d \n", pRsn->defaultKeyId);
451 rsn_t *pRsn;
456 pRsn = (rsn_t*)hRsn;
458 if (pRsn == NULL)
463 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_start ...\n");
464 pRsn->rsnStartedTs = os_timeStampMs (pRsn->hOs);
466 status = pRsn->pMainSecSm->start (pRsn->pMainSecSm);
468 pRsn->defaultKeysOn = TI_FALSE;
469 pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &suite);
470 pRsn->pAdmCtrl->getExtAuthMode (pRsn->pAdmCtrl, &extAuthMode);
472 if (pRsn->wepStaticKey && ( (suite == TWD_CIPHER_WEP) || (suite == TWD_CIPHER_CKIP) ) )
474 status = rsn_sendKeysNotSet (pRsn);
475 pRsn->eapType = OS_EAP_TYPE_NONE;
479 pRsn->wepStaticKey = TI_FALSE;
480 status = rsn_removedDefKeys (pRsn);
485 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
490 pRsn->eapType = OS_EAP_TYPE_NONE;
497 TI_STATUS rsn_sendKeysNotSet(rsn_t *pRsn)
505 if (pRsn->wepDefaultKeys[keyIndex])
507 rsnOsKey.KeyIndex = pRsn->keys[keyIndex].keyIndex;
508 rsnOsKey.KeyLength = pRsn->keys[keyIndex].encLen;
512 pRsn->keys[keyIndex].keyType = KEY_WEP;
514 MAC_COPY (rsnOsKey.BSSID, pRsn->keys[keyIndex].macAddress);
515 os_memoryCopy (pRsn->hOs, &rsnOsKey.KeyRSC,
516 (void *)pRsn->keys[keyIndex].keyRsc,
518 os_memoryCopy (pRsn->hOs, rsnOsKey.KeyMaterial,
519 (void *)pRsn->keys[keyIndex].encKey,
520 MAX_KEY_LEN /*pRsn->keys[keyIndex].encLen*/);
523 if (keyIndex == pRsn->defaultKeyId)
528 status = pRsn->pKeyParser->recv (pRsn->pKeyParser, (TI_UINT8*)&rsnOsKey, sizeof(rsnOsKey));
539 rsn_t *pRsn = (rsn_t*)hRsn;
541 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_removedDefKeys Enter \n");
547 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_removedDefKeys, Remove keyId=%d\n", keyIndex);
549 pRsn->wepDefaultKeys[keyIndex] = TI_FALSE;
550 os_memoryCopy (pRsn->hOs, &key, &pRsn->keys[keyIndex], sizeof(TSecurityKeys));
551 pRsn->removeKey (pRsn, &key);
554 if (keyIndex == pRsn->defaultKeyId)
556 pRsn->defaultKeyId = 0;
585 rsn_t *pRsn;
589 pRsn = (rsn_t*)hRsn;
591 if (pRsn == NULL)
596 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: calling STOP... removeKeys=%d\n", removeKeys);
600 os_memoryCopy (pRsn->hOs, &key, &pRsn->keys[keyIndex], sizeof(TSecurityKeys));
603 if (!pRsn->wepDefaultKeys[keyIndex])
605 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_stop, Remove keyIndex=%d, key.keyIndex=%d\n",keyIndex, key.keyIndex);
607 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)key.macAddress, 6);
609 pRsn->removeKey (pRsn, &key);
614 tmr_StopTimer (pRsn->hMicFailureReportWaitTimer);
617 tmr_StopTimer (pRsn->pAdmCtrl->hPreAuthTimerWpa2);
619 status = pRsn->pMainSecSm->stop (pRsn->pMainSecSm);
621 pRsn->eGroupKeyUpdate = GROUP_KEY_UPDATE_FALSE;
622 pRsn->ePairwiseKeyUpdate = PAIRWISE_KEY_UPDATE_FALSE;
623 pRsn->defaultKeysOn = TI_TRUE;
626 pRsn->pAdmCtrl->networkEapMode = OS_XCC_NETWORK_EAP_OFF;
631 pRsn->pAdmCtrl->resetPmkidList (pRsn->pAdmCtrl);
633 pRsn->pAdmCtrl->unicastSuite = TWD_CIPHER_NONE;
634 pRsn->pAdmCtrl->broadcastSuite = TWD_CIPHER_NONE;
642 rsn_t *pRsn = (rsn_t *)hRsn;
645 if ( (NULL == pRsn) || (NULL == rsnStatus) )
649 status = pRsn->pAdmCtrl->getCipherSuite(pRsn->pAdmCtrl, rsnStatus);
674 rsn_t *pRsn = (rsn_t *)hRsn;
678 if ( (NULL == pRsn) || (NULL == pParam) )
690 pParam->content.pRsnKey = &pRsn->keys[pParam->content.pRsnKey->keyIndex];
691 if (pParam->content.pRsnKey->keyIndex == pRsn->defaultKeyId)
694 TRACE1(pRsn->hReport, REPORT_SEVERITY_WARNING, "default Key: %d\n", pRsn->defaultKeyId);
699 status = pRsn->pMainSecSm->getAuthState (pRsn->pMainSecSm, (TIWLN_SECURITY_STATE*)&(pParam->content.rsnAuthState));
703 status = pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &pParam->content.rsnEncryptionStatus);
707 status = pRsn->pAdmCtrl->getExtAuthMode (pRsn->pAdmCtrl, &pParam->content.rsnExtAuthneticationMode);
711 status = pRsn->pAdmCtrl->getMixedMode (pRsn->pAdmCtrl, &pParam->content.rsnMixedMode);
715 status = pRsn->pAdmCtrl->getAuthEncrCap(pRsn->pAdmCtrl, pParam->content.pRsnAuthEncrCapability);
720 status = pRsn->pAdmCtrl->getPmkidList (pRsn->pAdmCtrl, &pParam->content.rsnPMKIDList);
728 pParam->content.rsnPreAuthStatus = pRsn->pAdmCtrl->getPreAuthStatus (pRsn->pAdmCtrl, &pParam->content.rsnApMac, &cacheIndex);
733 status = pRsn->pAdmCtrl->getWPAMixedModeSupport (pRsn->pAdmCtrl, &pParam->content.rsnWPAMixedModeSupport);
734 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get WPA Mixed MODE support %d \n",pParam->content.rsnWPAMixedModeSupport);
738 status = pRsn->pAdmCtrl->getPromoteFlags (pRsn->pAdmCtrl,
740 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get WPA promote flags %d \n",pParam->content.rsnWPAPromoteFlags);
746 status = pRsn->pAdmCtrl->getNetworkEap (pRsn->pAdmCtrl, &pParam->content.networkEap);
750 pParam->content.eapType = pRsn->eapType;
751 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get RSN_EAP_TYPE eapType %d \n", pParam->content.eapType);
756 status = pRsn->pAdmCtrl->get802_1x_AkmExists(pRsn->pAdmCtrl, &pParam->content.wpa_802_1x_AkmExists);
757 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get WPA_801_1X_AKM_EXISTS %d \n", pParam->content.wpa_802_1x_AkmExists);
761 pParam->content.rsnDefaultKeyID = pRsn->defaultKeyId;
762 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get RSN_DEFAULT_KEY_ID %d \n", pParam->content.rsnDefaultKeyID);
766 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get Port Status\n" );
768 if (pRsn->bRsnExternalMode) {
769 pParam->content.rsnPortStatus = pRsn->getPortStatus( pRsn );
776 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Get External Mode\n" );
778 pParam->content.rsnExternalMode = pRsn->bRsnExternalMode;
810 rsn_t *pRsn;
815 pRsn = (rsn_t*)hRsn;
817 if ( (NULL == pRsn) || (NULL == pParam) )
822 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set rsn_setParam %X \n", pParam->paramType);
835 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "RSN: Error - the value of the default Key Id is incorrect \n");
842 pRsn->keys[i].keyIndex &= 0x7FFFFFFF;
846 pRsn->defaultKeyId = defKeyId;
850 tTwdParam.content.configureCmdCBParams.pCb = &pRsn->defaultKeyId;
853 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
855 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: default key ID =%d \n", pRsn->defaultKeyId);
857 sme_Restart (pRsn->hSmeSm);
866 status = pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &cipherSuite);
872 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_ADD_KEY_PARAM KeyIndex %x , keyLength=%d\n", pParam->content.rsnOsKey.KeyIndex,pParam->content.rsnOsKey.KeyLength);
879 status = pRsn->pKeyParser->recv (pRsn->pKeyParser, (TI_UINT8*)&pParam->content.rsnOsKey, sizeof(pParam->content.rsnOsKey));
883 TRACE1(pRsn->hReport, REPORT_SEVERITY_WARNING, ": pRsn->pKeyParser->recv satus returned with status=%x. returning with NOK\n", status);
891 if (pRsn->wepDefaultKeys[keyIndex] == TI_TRUE)
893 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "Set RSN_ADD_KEY_PARAM KeyIndex %x\n", keyIndex);
894 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "Set RSN_ADD_KEY_PARAM wepDefaultKeys=%d\n", pRsn->wepDefaultKeys[keyIndex]);
896 pRsn->wepDefaultKeys[keyIndex] = TI_FALSE;
900 pRsn->keys[keyIndex].keyIndex = pParam->content.rsnOsKey.KeyIndex;
901 pRsn->keys[keyIndex].encLen = pParam->content.rsnOsKey.KeyLength;
902 MAC_COPY (pRsn->keys[keyIndex].macAddress, pParam->content.rsnOsKey.BSSID);
903 os_memoryCopy (pRsn->hOs, (void *)pRsn->keys[keyIndex].keyRsc, (TI_UINT8*)&(pParam->content.rsnOsKey.KeyRSC), KEY_RSC_LEN);
904 os_memoryCopy (pRsn->hOs, (void *)pRsn->keys[keyIndex].encKey, pParam->content.rsnOsKey.KeyMaterial, MAX_KEY_LEN);
912 pRsn->defaultKeyId = keyIndex;
918 pRsn->keys[i].keyIndex &= 0x7FFFFFFF;
923 if (pRsn->defaultKeysOn)
925 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN_ADD_KEY_PARAM, Default key configured - keyIndex=%d-TI_TRUE\n", keyIndex);
927 pRsn->wepDefaultKeys[keyIndex] = TI_TRUE;
928 pRsn->wepStaticKey = TI_TRUE;
938 status = pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &cipherSuite);
945 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "RSN: Error Remove Wep/Key when no encryption \n");
949 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_REMOVE_KEY_PARAM KeyIndex %x \n", pParam->content.rsnOsKey.KeyIndex);
956 status = pRsn->pKeyParser->remove (pRsn->pKeyParser,
962 pRsn->keys[keyIndex].keyType = KEY_NULL;
963 pRsn->keys[keyIndex].keyIndex &= 0x000000FF;
973 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_ENCRYPTION_STATUS_PARAM rsnEncryptionStatus %d \n", pParam->content.rsnEncryptionStatus);
975 pRsn->pAdmCtrl->getCipherSuite (pRsn->pAdmCtrl, &cipherSuite);
978 status = pRsn->pAdmCtrl->setUcastSuite (pRsn->pAdmCtrl, pParam->content.rsnEncryptionStatus);
979 status = pRsn->pAdmCtrl->setBcastSuite (pRsn->pAdmCtrl, pParam->content.rsnEncryptionStatus);
980 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, " status = %d \n", status);
982 pRsn->defaultKeysOn = TI_TRUE;
990 pRsn->pAdmCtrl->getExtAuthMode (pRsn->pAdmCtrl, &extAuthMode);
993 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_EXT_AUTHENTICATION_MODE rsnExtAuthneticationMode %d \n", pParam->content.rsnExtAuthneticationMode);
996 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: remove all Keys\n");
1000 os_memoryCopy(pRsn->hOs, &key, &pRsn->keys[keyIndex], sizeof(TSecurityKeys));
1001 pRsn->removeKey(pRsn, &key);
1005 status = pRsn->pAdmCtrl->setExtAuthMode (pRsn->pAdmCtrl, pParam->content.rsnExtAuthneticationMode);
1007 pRsn->defaultKeysOn = TI_TRUE;
1016 pRsn->pAdmCtrl->getNetworkEap (pRsn->pAdmCtrl, &networkEap);
1019 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_XCC_NETWORK_EAP networkEap %d \n", pParam->content.networkEap);
1021 status = pRsn->pAdmCtrl->setNetworkEap (pRsn->pAdmCtrl, pParam->content.networkEap);
1034 pRsn->pAdmCtrl->getMixedMode (pRsn->pAdmCtrl, &mixedMode);
1037 status = pRsn->pAdmCtrl->setMixedMode (pRsn->pAdmCtrl, pParam->content.rsnMixedMode);
1039 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_MIXED_MODE mixedMode %d, status=%d \n", pParam->content.rsnMixedMode, status);
1045 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_PMKID_LIST \n");
1047 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8*)&pParam->content.rsnPMKIDList ,sizeof(OS_802_11_PMKID));
1048 status = pRsn->pAdmCtrl->setPmkidList (pRsn->pAdmCtrl,
1052 TRACE1(pRsn
1056 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_PMKID_LIST failure");
1061 status = pRsn->pAdmCtrl->setPromoteFlags (pRsn->pAdmCtrl,
1065 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set WPA promote options: %d \n", pParam->content.rsnWPAPromoteFlags);
1069 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set WPA promote options failure");
1074 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set RSN_EAP_TYPE eapType %d \n", pParam->content.eapType);
1076 pRsn->eapType = pParam->content.eapType;
1077 pRsn->defaultKeysOn = TI_TRUE;
1086 TRACE2(pRsn->hReport,REPORT_SEVERITY_INFORMATION,"RSN:Set RSN_SET_KEY_PARAM KeyIndex %x,keyLength=%d\n",pSecurityKey->keyIndex,pSecurityKey->encLen);
1099 status = rsn_removeKey( pRsn, pSecurityKey );
1104 status = rsn_setKey (pRsn, pSecurityKey); /* send key to FW*/
1108 //os_memoryCopy(pKeyDerive->hOs,&pRsn->pKeyParser->pUcastKey/pBcastKey, pEncodedKey, sizeof(encodedKeyMaterial_t));
1115 pRsn->keys[keyIndex].keyIndex = pSecurityKey->keyIndex;
1116 pRsn->keys[keyIndex].encLen = pSecurityKey->encLen;
1117 MAC_COPY (pRsn->keys[keyIndex].macAddress, pSecurityKey->macAddress);
1118 os_memoryCopy(pRsn->hOs,(void*)pRsn->keys[keyIndex].keyRsc, (TI_UINT8*)&(pSecurityKey->keyRsc), KEY_RSC_LEN);
1119 os_memoryCopy (pRsn->hOs, (void *)pRsn->keys[keyIndex].encKey, (void*)pSecurityKey->encKey, MAX_KEY_LEN);
1127 pRsn->defaultKeyId = keyIndex;
1133 pRsn->keys[j].keyIndex &= 0x7FFFFFFF;
1138 if (pRsn->defaultKeysOn)
1140 TRACE1(pRsn->hReport,REPORT_SEVERITY_INFORMATION, "RSN_SET_KEY_PARAM, Default key configured-keyIndex=%d-TI_TRUE\n", keyIndex);
1142 pRsn->wepDefaultKeys[keyIndex] = TI_TRUE;
1143 pRsn->wepStaticKey = TI_TRUE;
1153 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set Port Status %d \n", pParam->content.rsnPortStatus);
1155 if (pRsn->bRsnExternalMode) {
1156 status = pRsn->setPortStatus( hRsn, pParam->content.rsnPortStatus );
1163 TRACE4(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set Generic IE: length=%d, IE=%02x%02x%02x... \n",
1173 pRsn->genericIE.length = pParam->content.rsnGenericIE.length;
1174 os_memoryCopy(pRsn->hOs,(void*)pRsn->genericIE.data, (TI_UINT8*)pParam->content.rsnGenericIE.data, pParam->content.rsnGenericIE.length);
1177 pRsn->genericIE.length = pParam->content.rsnGenericIE.length;
1179 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "RSN: Set Generic IE: FAILED sanity checks \n" );
1185 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Set External Mode\n" );
1187 pRsn->bRsnExternalMode = pParam->content.rsnExternalMode;
1217 TI_STATUS rsn_reportStatus (rsn_t *pRsn, TI_STATUS rsnStatus)
1223 if (pRsn == NULL)
1231 pRsn->rsnCompletedTs = os_timeStampMs (pRsn->hOs);
1233 status = pRsn->pAdmCtrl->getExtAuthMode (pRsn->pAdmCtrl, &extAuthMode);
1240 txCtrlParams_setEapolEncryptionStatus (pRsn->hTxCtrl, TI_TRUE);
1242 txCtrlParams_setEapolEncryptionStatus (pRsn->hTxCtrl, TI_FALSE);
1245 switch (pRsn->paeConfig.unicastSuite)
1256 if (pRsn->bRsnExternalMode) {
1258 txCtrlParams_setEapolEncryptionStatus (pRsn->hTxCtrl, TI_FALSE);
1261 txCtrlParams_setCurrentPrivacyInvokedMode(pRsn->hTxCtrl, param.content.txDataCurrentPrivacyInvokedMode);
1264 rxData_setParam (pRsn->hRx, &param);
1267 if (pRsn->pAdmCtrl->mixedMode)
1271 rxData_setParam (pRsn->hRx, &param);
1277 status = conn_reportRsnStatus (pRsn->hConn, (mgmtStatus_e)rsnStatus);
1286 EvHandlerSendEvent (pRsn->hEvHandler, IPC_EVENT_AUTH_SUCC, NULL, 0);
1289 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: rsn_reportStatus \n");
1314 TI_STATUS rsn_setPaeConfig(rsn_t *pRsn, TRsnPaeConfig *pPaeConfig)
1319 if ( (NULL == pRsn) || (NULL == pPaeConfig) )
1324 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: Calling set PAE config..., unicastSuite = %d, broadcastSuite = %d \n", pPaeConfig->unicastSuite, pPaeConfig->broadcastSuite);
1326 os_memoryCopy(pRsn->hOs, &pRsn->paeConfig, pPaeConfig, sizeof(TRsnPaeConfig));
1328 initData.pPaeConfig = &pRsn->paeConfig;
1330 status = mainSec_config (pRsn->pMainSecSm,
1332 pRsn,
1333 pRsn->hReport,
1334 pRsn->hOs,
1335 pRsn->hCtrlData,
1336 pRsn->hEvHandler,
1337 pRsn->hConn,
1338 pRsn->hTimer);
1363 TI_STATUS rsn_getNetworkMode(rsn_t *pRsn, ERsnNetworkMode *pNetMode)
1370 status = ctrlData_getParam (pRsn->hCtrlData, &param);
1414 rsn_t *pRsn;
1423 pRsn = (rsn_t*)hRsn;
1428 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site is banned!\n");
1432 if ( pRsn->bRsnExternalMode ) {
1436 status = pRsn->pAdmCtrl->evalSite (pRsn->pAdmCtrl, pRsnData, pRsnSiteParams, pMetric);
1439 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": pMetric=%d status=%d\n", *pMetric, status);
1467 rsn_t *pRsn;
1476 pRsn = (rsn_t*)hRsn;
1478 if (!pRsn->bRsnExternalMode)
1481 status = pRsn->pAdmCtrl->getInfoElement (pRsn->pAdmCtrl, pRsnIe, &ie_len);
1483 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_getInfoElement pRsnIeLen= %d\n",*pRsnIeLen);
1524 rsn_t *pRsn;
1532 pRsn = (rsn_t*)hRsn;
1534 status = admCtrlXCC_getInfoElement (pRsn->pAdmCtrl, pRsnIe, pRsnIeLen);
1536 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_getXCCExtendedInfoElement pRsnIeLen= %d\n",*pRsnIeLen);
1564 rsn_t *pRsn;
1573 pRsn = (rsn_t*)hRsn;
1575 status = pRsn->pAdmCtrl->setSite (pRsn->pAdmCtrl, pRsnData, pAssocIe, pAssocIeLen);
1577 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_setSite ieLen= %d\n",pRsnData->ieLen);
1582 TI_STATUS rsn_setKey (rsn_t *pRsn, TSecurityKeys *pKey)
1589 if (pRsn == NULL || pKey == NULL)
1604 if (pRsn->bRsnExternalMode) {
1617 status = pRsn->pAdmCtrl->setUcastSuite (pRsn->pAdmCtrl, TWD_CIPHER_GEM);
1618 status = pRsn->pAdmCtrl->setBcastSuite (pRsn->pAdmCtrl, TWD_CIPHER_GEM);
1630 status = TWD_SetParam(pRsn->hTWD, &tTwdParam);
1645 txCtrlParams_setEncryptionFieldSizes (pRsn->hTxCtrl, IV_FIELD_SIZE);
1648 txCtrlParams_setEncryptionFieldSizes (pRsn->hTxCtrl, AES_AFTER_HEADER_FIELD_SIZE);
1657 txCtrlParams_setEncryptionFieldSizes (pRsn->hTxCtrl, 0);
1663 pRsn->keys[keyIndex].keyType = pKey->keyType;
1664 pRsn->keys[keyIndex].keyIndex = keyIndex;
1666 if (!pRsn->bRsnExternalMode) {
1669 if ((pRsn->keys[keyIndex].keyType != KEY_NULL )&&
1670 macIsBroadcast && !MAC_BROADCAST((pRsn->keys[keyIndex].macAddress)))
1673 rsn_removeKey(pRsn, &pRsn->keys[keyIndex]);
1678 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: rsn_setKey, Group ReKey timer started\n");
1679 tmr_StopTimer (pRsn->hMicFailureGroupReKeyTimer);
1680 tmr_StartTimer (pRsn->hMicFailureGroupReKeyTimer,
1682 (TI_HANDLE)pRsn,
1685 pRsn->eGroupKeyUpdate = GROUP_KEY_UPDATE_TRUE;
1689 if (pRsn->bPairwiseMicFailureFilter) /* the value of this flag is taken from registry */
1691 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: rsn_setKey, Pairwise ReKey timer started\n");
1692 tmr_StopTimer (pRsn->hMicFailurePairwiseReKeyTimer);
1693 tmr_StartTimer (pRsn->hMicFailurePairwiseReKeyTimer,
1695 (TI_HANDLE)pRsn,
1698 pRsn->ePairwiseKeyUpdate = PAIRWISE_KEY_UPDATE_TRUE;
1704 pRsn->keys_en [keyIndex] = TI_TRUE;
1710 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
1711 TRACE3(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: rsn_setKey, KeyType=%d, KeyId = 0x%lx,encLen=0x%x\n", pKey->keyType,pKey->keyIndex, pKey->encLen);
1713 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "\nEncKey = ");
1715 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)pKey->encKey, pKey->encLen);
1719 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "\nMac address = ");
1720 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)pKey->macAddress, MAC_ADDR_LEN);
1721 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "\nRSC = ");
1722 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)pKey->keyRsc, KEY_RSC_LEN);
1723 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "\nMic RX = ");
1724 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)pKey->micRxKey, MAX_KEY_LEN);
1725 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "\nMic TX = ");
1726 TRACE_INFO_HEX(pRsn->hReport, (TI_UINT8 *)pKey->micTxKey, MAX_KEY_LEN);
1734 TI_STATUS rsn_removeKey (rsn_t *pRsn, TSecurityKeys *pKey)
1740 if (pRsn == NULL || pKey == NULL)
1751 TRACE2(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_removeKey Entry, keyType=%d, keyIndex=0x%lx\n",pKey->keyType, keyIndex);
1754 if (pRsn->keys_en[keyIndex])
1757 /*os_memoryCopy(pRsn->hOs, &tTwdParam.content.rsnKey, pKey, sizeof(TSecurityKeys));*/
1764 pKey->keyType = pRsn->keys[keyIndex].keyType;
1784 os_memoryZero(pRsn->hOs,(void*)pKey->macAddress,sizeof(TMacAddr));
1789 pRsn->keys_en[keyIndex] = TI_FALSE;
1791 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
1793 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_removeKey in whal, status =%d\n", status);
1796 pRsn->keys[keyIndex].keyIndex &= 0x000000FF;
1797 pRsn->keys[keyIndex].keyType = KEY_NULL;
1798 pRsn->keys[keyIndex].encLen = 0;
1799 pRsn->wepDefaultKeys[keyIndex] = TI_FALSE;
1806 TI_STATUS rsn_setDefaultKeyId(rsn_t *pRsn, TI_UINT8 keyId)
1811 if (pRsn == NULL)
1815 pRsn->defaultKeyId = keyId;
1821 status = TWD_SetParam (pRsn->hTWD, &tTwdParam);
1823 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "RSN: rsn_setDefaultKeyId, KeyId = 0x%lx\n", keyId);
1831 rsn_t *pRsn;
1839 pRsn = (rsn_t*)hRsn;
1843 status = ctrlData_getParam(pRsn->hCtrlData, &param);
1846 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, "rsn_reportAuthFailure, unable to retrieve BSSID \n");
1850 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "current station is banned from the roaming candidates list for %d Ms\n", RSN_AUTH_FAILURE_TIMEOUT);
1857 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "CALLING rougeAP, status= %d \n",authStatus);
1858 status = XCCMngr_rogueApDetected (pRsn->hXCCMngr, authStatus);
1860 TI_VOIDCAST(pRsn);
1870 rsn_t *pRsn = (rsn_t *) hRsn;
1879 if (((pRsn->paeConfig.unicastSuite == TWD_CIPHER_TKIP) && (failureType == KEY_TKIP_MIC_PAIRWISE)) ||
1880 ((pRsn->paeConfig.broadcastSuite == TWD_CIPHER_TKIP) && (failureType == KEY_TKIP_MIC_GROUP)))
1885 (pRsn->eGroupKeyUpdate == GROUP_KEY_UPDATE_TRUE))
1887 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Group MIC failure ignored, key update was performed within the last 3 seconds.\n");
1894 (pRsn->ePairwiseKeyUpdate == PAIRWISE_KEY_UPDATE_TRUE))
1896 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Pairwise MIC failure ignored, key update was performed within the last 3 seconds.\n");
1905 if (ctrlData_getParam (pRsn->hCtrlData, &param) != TI_OK)
1924 EvHandlerSendEvent (pRsn->hEvHandler,
1929 if ( pRsn->bRsnExternalMode ) {
1938 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Second MIC failure, closing Rx port...\n");
1942 rxData_setParam(pRsn->hRx, &param);
1945 tmr_StopTimer (pRsn->hMicFailureReportWaitTimer);
1946 apConn_setDeauthPacketReasonCode(pRsn->hAPConn, STATUS_MIC_FAILURE);
1947 tmr_StartTimer (pRsn->hMicFailureReportWaitTimer,
1949 (TI_HANDLE)pRsn,
1956 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": First MIC failure, business as usual for now...\n");
1966 rsn_t *pRsn;
1968 pRsn = (rsn_t*)hRsn;
1970 if (pRsn == NULL)
1975 pRsn->eGroupKeyUpdate = GROUP_KEY_UPDATE_FALSE;
1981 rsn_t *pRsn;
1983 pRsn = (rsn_t*)hRsn;
1985 if (pRsn == NULL)
1990 pRsn->ePairwiseKeyUpdate = PAIRWISE_KEY_UPDATE_FALSE;
1995 rsn_t *pRsn;
1997 pRsn = (rsn_t*)hRsn;
1999 if (pRsn == NULL)
2004 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": MIC failure reported, disassociating...\n");
2006 apConn_reportRoamingEvent (pRsn->hAPConn, ROAMING_TRIGGER_SECURITY_ATTACK, NULL);
2029 rsn_t *pRsn = (rsn_t*)hRsn;
2031 if (!pRsn)
2034 return (pRsn->pAdmCtrl->resetPmkidList (pRsn->pAdmCtrl));
2040 rsn_t *pRsn;
2046 pRsn = (rsn_t*)hRsn;
2048 WLAN_OS_REPORT(("rsnStartedTs, ts = %d\n", pRsn->rsnStartedTs));
2049 WLAN_OS_REPORT(("rsnCompletedTs, ts = %d\n", pRsn->rsnCompletedTs));
2074 rsn_t *pRsn;
2082 pRsn = (rsn_t*)hRsn;
2084 status = pRsn->pAdmCtrl->startPreAuth (pRsn->pAdmCtrl, pBssidList);
2086 TRACE0(pRsn->hReport, REPORT_SEVERITY_INFORMATION, "rsn_startPreAuth \n");
2112 rsn_t * pRsn = (rsn_t *) hRsn;
2121 TRACE7(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site %02X-%02X-%02X-%02X-%02X-%02X found with ban level %d...\n", siteBssid[0], siteBssid[1], siteBssid[2], siteBssid[3], siteBssid[4], siteBssid[5], entry->banLevel);
2147 rsn_t *pRsn = (rsn_t *)hRsn;
2150 pExtSec = pRsn->pMainSecSm->pExternalSec;
2153 pRsn->reportStatus( pRsn, TI_OK );
2183 rsn_t * pRsn = (rsn_t *) hRsn;
2190 TRACE6(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site %02X-%02X-%02X-%02X-%02X-%02X found and has been set to ban level full!\n", siteBssid[0], siteBssid[1], siteBssid[2], siteBssid[3], siteBssid[4], siteBssid[5]);
2197 TRACE7(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site %02X-%02X-%02X-%02X-%02X-%02X added with ban level %d!\n", siteBssid[0], siteBssid[1], siteBssid[2], siteBssid[3], siteBssid[4], siteBssid[5], banLevel);
2204 pRsn->numOfBannedSites++;
2207 entry->banStartedMs = os_timeStampMs (pRsn->hOs);
2233 rsn_t * pRsn = (rsn_t *) hRsn;
2236 if (pRsn->numOfBannedSites == RSN_MAX_NUMBER_OF_BANNED_SITES)
2238 TRACE0(pRsn->hReport, REPORT_SEVERITY_ERROR, ": No room left to insert new banned site, overwriting old one!\n");
2240 return &(pRsn->bannedSites[0]);
2243 return &(pRsn->bannedSites[pRsn->numOfBannedSites]);
2272 rsn_t * pRsn = (rsn_t *) hRsn;
2275 for (iter = 0; iter < pRsn->numOfBannedSites; iter++)
2278 if (os_timeStampMs(pRsn->hOs) - pRsn->bannedSites[iter].banStartedMs >= pRsn->bannedSites[iter].banDurationMs)
2280 TRACE1(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Found expired entry at index %d, cleaning it up...\n", iter);
2283 pRsn->bannedSites[iter] = pRsn->bannedSites[pRsn->numOfBannedSites - 1];
2284 pRsn->numOfBannedSites--;
2293 if (MAC_EQUAL (siteBssid, pRsn->bannedSites[iter].siteBssid))
2295 TRACE7(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site %02X-%02X-%02X-%02X-%02X-%02X found at index %d!\n", siteBssid[0], siteBssid[1], siteBssid[2], siteBssid[3], siteBssid[4], siteBssid[5], iter);
2297 return &pRsn->bannedSites[iter];
2302 TRACE6(pRsn->hReport, REPORT_SEVERITY_INFORMATION, ": Site %02X-%02X-%02X-%02X-%02X-%02X not found...\n", siteBssid[0], siteBssid[1], siteBssid[2], siteBssid[3], siteBssid[4], siteBssid[5]);
2317 * pRsn - pointer to RSN module context \n
2324 TI_BOOL rsn_getPortStatus(rsn_t *pRsn)
2328 pExtSec = pRsn->pMainSecSm->pExternalSec;
2342 * I pRsn - pointer to RSN module context \n
2351 TI_STATUS rsn_getGenInfoElement(rsn_t *pRsn, TI_UINT8 *out_buff, TI_UINT32 *out_buf_length)
2353 if ( !(pRsn && out_buff && out_buf_length) ) {
2357 *out_buf_length = pRsn->genericIE.length;
2358 if (pRsn->genericIE.length > 0) {
2359 os_memoryCopy(pRsn->hOs, out_buff, pRsn->genericIE.data, pRsn->genericIE.length);
2375 * I pRsn - pointer to RSN module context \n
2378 void rsn_clearGenInfoElement(rsn_t *pRsn )
2380 os_memoryZero(pRsn->hOs, &pRsn->genericIE, sizeof(pRsn->genericIE));
2426 rsn_t *pRsn;
2428 pRsn = (rsn_t*)hRsn;
2430 if (pRsn == NULL)
2435 if (rxData_IsReAuthInProgress(pRsn->hRx))
2437 rxData_SetReAuthInProgress(pRsn->hRx, TI_FALSE);
2438 rxData_StopReAuthActiveTimer(pRsn->hRx);
2439 rxData_ReauthDisablePriority(pRsn->hRx);
2440 EvHandlerSendEvent(pRsn->hEvHandler, IPC_EVENT_RE_AUTH_COMPLETED, NULL, 0);