14 * Description: EAP and WLAN authentication protocols. |
14 * Description: EAP and WLAN authentication protocols. |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 /* |
18 /* |
19 * %version: 19.1.2 % |
19 * %version: 36 % |
20 */ |
20 */ |
21 |
21 |
22 // This is enumeration of EAPOL source code. |
22 // This is enumeration of EAPOL source code. |
23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES) |
23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES) |
24 #undef EAP_FILE_NUMBER_ENUM |
24 #undef EAP_FILE_NUMBER_ENUM |
25 #define EAP_FILE_NUMBER_ENUM 60 |
25 #define EAP_FILE_NUMBER_ENUM 731 |
26 #undef EAP_FILE_NUMBER_DATE |
26 #undef EAP_FILE_NUMBER_DATE |
27 #define EAP_FILE_NUMBER_DATE 1127594498 |
27 #define EAP_FILE_NUMBER_DATE 1127594498 |
28 #endif //#if defined(USE_EAP_MINIMUM_RELEASE_TRACES) |
28 #endif //#if defined(USE_EAP_MINIMUM_RELEASE_TRACES) |
29 |
29 |
30 |
30 |
68 #endif |
68 #endif |
69 |
69 |
70 // |
70 // |
71 EAP_FUNC_EXPORT eap_session_core_c::eap_session_core_c( |
71 EAP_FUNC_EXPORT eap_session_core_c::eap_session_core_c( |
72 abs_eap_am_tools_c * const tools, |
72 abs_eap_am_tools_c * const tools, |
73 abs_eap_core_c * const partner, |
73 abs_eap_session_core_c * const partner, |
74 const bool is_client_when_true) |
74 const bool is_client_when_true) |
75 : m_partner(partner) |
75 : m_partner(partner) |
76 , m_am_tools(tools) |
76 , m_am_tools(tools) |
77 , m_session_map(tools, this) |
77 , m_session_map(tools, this) |
78 , m_remove_session_timeout(EAP_SESSION_CORE_REMOVE_SESSION_TIMEOUT) |
78 , m_remove_session_timeout(EAP_SESSION_CORE_REMOVE_SESSION_TIMEOUT) |
248 } |
248 } |
249 |
249 |
250 EAP_TRACE_DATA_DEBUG( |
250 EAP_TRACE_DATA_DEBUG( |
251 m_am_tools, |
251 m_am_tools, |
252 TRACE_FLAGS_DEFAULT, |
252 TRACE_FLAGS_DEFAULT, |
253 (EAPL("create_new_session() EAP-session"), |
253 (EAPL("eap_session_core_c::create_new_session() EAP-session"), |
254 selector.get_data(selector.get_data_length()), |
254 selector.get_data(selector.get_data_length()), |
255 selector.get_data_length())); |
255 selector.get_data_length())); |
256 |
256 |
257 status = m_session_map.add_handler(&selector, session); |
257 status = m_session_map.add_handler(&selector, session); |
258 if (status != eap_status_ok) |
258 if (status != eap_status_ok) |
274 eap_core_c ** const session, |
274 eap_core_c ** const session, |
275 const eap_network_id_selector_c * const selector, |
275 const eap_network_id_selector_c * const selector, |
276 const bool reset_immediately) |
276 const bool reset_immediately) |
277 { |
277 { |
278 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
278 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
|
279 |
|
280 EAP_TRACE_DEBUG( |
|
281 m_am_tools, |
|
282 TRACE_FLAGS_DEFAULT, |
|
283 (EAPL("eap_session_core_c::reset_or_remove_session(): %s.\n"), |
|
284 (m_is_client == true) ? "client": "server")); |
|
285 |
|
286 EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_session_core_c::reset_or_remove_session()"); |
279 |
287 |
280 eap_status_e status(eap_status_process_general_error); |
288 eap_status_e status(eap_status_process_general_error); |
281 |
289 |
282 if (session == 0 |
290 if (session == 0 |
283 || *session == 0 |
291 || *session == 0 |
457 } |
465 } |
458 |
466 |
459 EAP_TRACE_DATA_DEBUG( |
467 EAP_TRACE_DATA_DEBUG( |
460 m_am_tools, |
468 m_am_tools, |
461 TRACE_FLAGS_DEFAULT, |
469 TRACE_FLAGS_DEFAULT, |
462 (EAPL("packet_process() EAP-session"), |
470 (EAPL("eap_session_core_c::packet_process() EAP-session"), |
463 selector.get_data(selector.get_data_length()), |
471 selector.get_data(selector.get_data_length()), |
464 selector.get_data_length())); |
472 selector.get_data_length())); |
465 |
473 |
466 eap_core_c *session = m_session_map.get_handler(&selector); |
474 eap_core_c *session = m_session_map.get_handler(&selector); |
467 |
475 |
468 if (session == 0) |
476 if (session == 0) |
469 { |
477 { |
470 |
|
471 #if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE) |
|
472 |
|
473 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
|
474 return EAP_STATUS_RETURN(m_am_tools, eap_status_handler_does_not_exists_error); |
|
475 |
|
476 #else |
|
477 // Create a new session. |
478 // Create a new session. |
478 session = create_new_session(receive_network_id); |
479 session = create_new_session(receive_network_id); |
479 |
|
480 #endif //#if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE) |
|
481 |
|
482 } |
480 } |
483 |
481 |
484 if (session != 0) |
482 if (session != 0) |
485 { |
483 { |
486 status = session->packet_process( |
484 status = session->packet_process( |
712 } |
710 } |
713 |
711 |
714 EAP_TRACE_DATA_DEBUG( |
712 EAP_TRACE_DATA_DEBUG( |
715 m_am_tools, |
713 m_am_tools, |
716 TRACE_FLAGS_DEFAULT, |
714 TRACE_FLAGS_DEFAULT, |
717 (EAPL("eap_acknowledge() EAP-session"), |
715 (EAPL("eap_session_core_c::eap_acknowledge() EAP-session"), |
718 selector.get_data(selector.get_data_length()), |
716 selector.get_data(selector.get_data_length()), |
719 selector.get_data_length())); |
717 selector.get_data_length())); |
720 |
718 |
721 eap_core_c *session = m_session_map.get_handler(&selector); |
719 eap_core_c *session = m_session_map.get_handler(&selector); |
722 |
720 |
759 } |
757 } |
760 |
758 |
761 EAP_TRACE_DATA_DEBUG( |
759 EAP_TRACE_DATA_DEBUG( |
762 m_am_tools, |
760 m_am_tools, |
763 TRACE_FLAGS_DEFAULT, |
761 TRACE_FLAGS_DEFAULT, |
764 (EAPL("restart_authentication() EAP-session"), |
762 (EAPL("eap_session_core_c::restart_authentication() EAP-session"), |
765 selector.get_data(selector.get_data_length()), |
763 selector.get_data(selector.get_data_length()), |
766 selector.get_data_length())); |
764 selector.get_data_length())); |
767 |
765 |
768 eap_core_c *session = m_session_map.get_handler(&selector); |
766 eap_core_c *session = m_session_map.get_handler(&selector); |
769 |
767 |
812 } |
810 } |
813 |
811 |
814 EAP_TRACE_DATA_DEBUG( |
812 EAP_TRACE_DATA_DEBUG( |
815 m_am_tools, |
813 m_am_tools, |
816 TRACE_FLAGS_DEFAULT, |
814 TRACE_FLAGS_DEFAULT, |
817 (EAPL("restart_authentication() EAP-session"), |
815 (EAPL("eap_session_core_c::restart_authentication() EAP-session"), |
818 selector.get_data(selector.get_data_length()), |
816 selector.get_data(selector.get_data_length()), |
819 selector.get_data_length())); |
817 selector.get_data_length())); |
820 |
818 |
821 eap_core_c *session = m_session_map.get_handler(&selector); |
819 eap_core_c *session = m_session_map.get_handler(&selector); |
822 |
820 |
880 } |
878 } |
881 |
879 |
882 EAP_TRACE_DATA_DEBUG( |
880 EAP_TRACE_DATA_DEBUG( |
883 m_am_tools, |
881 m_am_tools, |
884 TRACE_FLAGS_DEFAULT, |
882 TRACE_FLAGS_DEFAULT, |
885 (EAPL("send_eap_identity_request() EAP-session"), |
883 (EAPL("eap_session_core_c::send_eap_identity_request() EAP-session"), |
886 selector.get_data(selector.get_data_length()), |
884 selector.get_data(selector.get_data_length()), |
887 selector.get_data_length())); |
885 selector.get_data_length())); |
888 |
886 |
889 eap_core_c *session = m_session_map.get_handler(&selector); |
887 eap_core_c *session = m_session_map.get_handler(&selector); |
890 |
888 |
992 } |
990 } |
993 |
991 |
994 EAP_TRACE_DATA_DEBUG( |
992 EAP_TRACE_DATA_DEBUG( |
995 m_am_tools, |
993 m_am_tools, |
996 TRACE_FLAGS_DEFAULT, |
994 TRACE_FLAGS_DEFAULT, |
997 (EAPL("timer_expired() EAP-session"), |
995 (EAPL("eap_session_core_c::timer_expired() EAP-session"), |
998 selector->get_data(selector->get_data_length()), |
996 selector->get_data(selector->get_data_length()), |
999 selector->get_data_length())); |
997 selector->get_data_length())); |
1000 |
998 |
1001 eap_core_c *session = m_session_map.get_handler(selector); |
999 eap_core_c *session = m_session_map.get_handler(selector); |
1002 |
1000 |
1076 return EAP_STATUS_RETURN(m_am_tools, eap_status_ok); |
1074 return EAP_STATUS_RETURN(m_am_tools, eap_status_ok); |
1077 } |
1075 } |
1078 |
1076 |
1079 //-------------------------------------------------- |
1077 //-------------------------------------------------- |
1080 |
1078 |
1081 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::synchronous_cancel_all_eap_sessions() |
1079 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::cancel_all_eap_sessions() |
1082 { |
1080 { |
1083 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1081 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1084 |
1082 |
1085 EAP_TRACE_DEBUG( |
1083 EAP_TRACE_DEBUG( |
1086 m_am_tools, |
1084 m_am_tools, |
1087 TRACE_FLAGS_DEFAULT, |
1085 TRACE_FLAGS_DEFAULT, |
1088 (EAPL("eap_session_core_c::synchronous_cancel_all_eap_sessions(): this = 0x%08x => 0x%08x.\n"), |
1086 (EAPL("eap_session_core_c::cancel_all_eap_sessions(): this = 0x%08x => 0x%08x.\n"), |
1089 this, |
1087 this, |
1090 dynamic_cast<abs_eap_base_timer_c *>(this))); |
1088 dynamic_cast<abs_eap_base_timer_c *>(this))); |
1091 |
1089 |
1092 eap_status_e status = reset(); |
1090 eap_status_e status = reset(); |
1093 |
1091 |
1095 return EAP_STATUS_RETURN(m_am_tools, status); |
1093 return EAP_STATUS_RETURN(m_am_tools, status); |
1096 } |
1094 } |
1097 |
1095 |
1098 //-------------------------------------------------- |
1096 //-------------------------------------------------- |
1099 |
1097 |
1100 #if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE) |
1098 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::create_eap_session( |
1101 |
|
1102 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::synchronous_create_eap_session( |
|
1103 const eap_am_network_id_c * const receive_network_id) |
1099 const eap_am_network_id_c * const receive_network_id) |
1104 { |
1100 { |
1105 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1101 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1106 |
1102 |
1107 EAP_TRACE_DEBUG( |
1103 EAP_TRACE_DEBUG( |
1108 m_am_tools, |
1104 m_am_tools, |
1109 TRACE_FLAGS_DEFAULT, |
1105 TRACE_FLAGS_DEFAULT, |
1110 (EAPL("eap_session_core_c::synchronous_create_eap_session(): this = 0x%08x => 0x%08x.\n"), |
1106 (EAPL("eap_session_core_c::create_eap_session(): this = 0x%08x => 0x%08x.\n"), |
1111 this, |
1107 this, |
1112 dynamic_cast<abs_eap_base_timer_c *>(this))); |
1108 dynamic_cast<abs_eap_base_timer_c *>(this))); |
1113 |
1109 |
1114 eap_status_e status = eap_status_process_general_error; |
1110 eap_status_e status = eap_status_process_general_error; |
1115 |
1111 |
1135 } |
1131 } |
1136 |
1132 |
1137 EAP_TRACE_DATA_DEBUG( |
1133 EAP_TRACE_DATA_DEBUG( |
1138 m_am_tools, |
1134 m_am_tools, |
1139 TRACE_FLAGS_DEFAULT, |
1135 TRACE_FLAGS_DEFAULT, |
1140 (EAPL("synchronous_create_eap_session() EAP-session"), |
1136 (EAPL("eap_session_core_c::create_eap_session() EAP-session"), |
1141 selector.get_data(selector.get_data_length()), |
1137 selector.get_data(selector.get_data_length()), |
1142 selector.get_data_length())); |
1138 selector.get_data_length())); |
1143 |
1139 |
1144 eap_core_c *session = m_session_map.get_handler(&selector); |
1140 eap_core_c *session = m_session_map.get_handler(&selector); |
1145 |
1141 |
1164 |
1160 |
1165 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
1161 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
1166 return EAP_STATUS_RETURN(m_am_tools, status); |
1162 return EAP_STATUS_RETURN(m_am_tools, status); |
1167 } |
1163 } |
1168 |
1164 |
1169 #endif //#if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE) |
1165 //-------------------------------------------------- |
1170 |
1166 |
1171 //-------------------------------------------------- |
1167 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::remove_eap_session( |
1172 |
1168 const bool /* complete_to_lower_layer */, |
1173 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::synchronous_remove_eap_session( |
|
1174 const eap_am_network_id_c * const receive_network_id) |
1169 const eap_am_network_id_c * const receive_network_id) |
1175 { |
1170 { |
1176 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1171 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
1177 |
1172 |
1178 EAP_TRACE_DEBUG( |
1173 EAP_TRACE_DEBUG( |
1179 m_am_tools, |
1174 m_am_tools, |
1180 TRACE_FLAGS_DEFAULT, |
1175 TRACE_FLAGS_DEFAULT, |
1181 (EAPL("eap_session_core_c::synchronous_remove_eap_session(): this = 0x%08x => 0x%08x.\n"), |
1176 (EAPL("eap_session_core_c::remove_eap_session(): this = 0x%08x => 0x%08x.\n"), |
1182 this, |
1177 this, |
1183 dynamic_cast<abs_eap_base_timer_c *>(this))); |
1178 dynamic_cast<abs_eap_base_timer_c *>(this))); |
|
1179 |
|
1180 EAP_TRACE_RETURN_STRING_FLAGS(m_am_tools, TRACE_FLAGS_DEFAULT, "returns: eap_session_core_c::remove_eap_session()"); |
1184 |
1181 |
1185 eap_status_e status = eap_status_process_general_error; |
1182 eap_status_e status = eap_status_process_general_error; |
1186 |
1183 |
1187 // Here we swap the addresses. |
1184 // Here we swap the addresses. |
1188 eap_am_network_id_c send_network_id( |
1185 eap_am_network_id_c send_network_id( |
1206 } |
1203 } |
1207 |
1204 |
1208 EAP_TRACE_DATA_DEBUG( |
1205 EAP_TRACE_DATA_DEBUG( |
1209 m_am_tools, |
1206 m_am_tools, |
1210 TRACE_FLAGS_DEFAULT, |
1207 TRACE_FLAGS_DEFAULT, |
1211 (EAPL("synchronous_remove_eap_session() EAP-session"), |
1208 (EAPL("eap_session_core_c::remove_eap_session() EAP-session"), |
1212 selector.get_data(selector.get_data_length()), |
1209 selector.get_data(selector.get_data_length()), |
1213 selector.get_data_length())); |
1210 selector.get_data_length())); |
1214 |
1211 |
1215 eap_core_c *session = m_session_map.get_handler(&selector); |
1212 eap_core_c *session = m_session_map.get_handler(&selector); |
1216 |
1213 |
1228 } |
1225 } |
1229 } |
1226 } |
1230 else |
1227 else |
1231 { |
1228 { |
1232 // Not found, no need to remove. |
1229 // Not found, no need to remove. |
|
1230 EAP_TRACE_DEBUG( |
|
1231 m_am_tools, |
|
1232 TRACE_FLAGS_DEFAULT, |
|
1233 (EAPL("eap_session_core_c::remove_eap_session(): session not found.\n"))); |
|
1234 |
1233 status = eap_status_ok; |
1235 status = eap_status_ok; |
1234 } |
1236 } |
1235 |
1237 |
1236 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
1238 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
1237 return EAP_STATUS_RETURN(m_am_tools, status); |
1239 return EAP_STATUS_RETURN(m_am_tools, status); |
1259 } |
1261 } |
1260 |
1262 |
1261 EAP_TRACE_DATA_DEBUG( |
1263 EAP_TRACE_DATA_DEBUG( |
1262 m_am_tools, |
1264 m_am_tools, |
1263 TRACE_FLAGS_DEFAULT, |
1265 TRACE_FLAGS_DEFAULT, |
1264 (EAPL("asynchronous_init_remove_eap_session() EAP-session"), |
1266 (EAPL("eap_session_core_c::asynchronous_init_remove_eap_session() EAP-session"), |
1265 state_selector.get_data(state_selector.get_data_length()), |
1267 state_selector.get_data(state_selector.get_data_length()), |
1266 state_selector.get_data_length())); |
1268 state_selector.get_data_length())); |
1267 |
1269 |
1268 eap_status_e status = asynchronous_init_remove_eap_session( |
1270 eap_status_e status = asynchronous_init_remove_eap_session( |
1269 &state_selector); |
1271 &state_selector); |
1272 } |
1274 } |
1273 |
1275 |
1274 //-------------------------------------------------- |
1276 //-------------------------------------------------- |
1275 |
1277 |
1276 // |
1278 // |
1277 eap_status_e eap_session_core_c::asynchronous_init_remove_eap_session( |
1279 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::asynchronous_init_remove_eap_session( |
1278 const eap_network_id_selector_c * const state_selector) |
1280 const eap_network_id_selector_c * const state_selector) |
1279 { |
1281 { |
1280 EAP_TRACE_DEBUG( |
1282 EAP_TRACE_DEBUG( |
1281 m_am_tools, |
1283 m_am_tools, |
1282 TRACE_FLAGS_DEFAULT, |
1284 TRACE_FLAGS_DEFAULT, |
1283 (EAPL("eap_session_core_c::asynchronous_init_remove_eap_session(): %s.\n"), |
1285 (EAPL("eap_session_core_c::asynchronous_init_remove_eap_session(): %s.\n"), |
1284 (m_is_client == true) ? "client": "server")); |
1286 (m_is_client == true) ? "client": "server")); |
1285 |
1287 |
1286 // NOTE: we cannot call directly synchronous_remove_eap_session(), because we will |
1288 // NOTE: we cannot call directly remove_eap_session(), because we will |
1287 // return from here to removed object. |
1289 // return from here to removed object. |
1288 |
1290 |
1289 eap_status_e status = eap_status_process_general_error; |
1291 eap_status_e status = eap_status_process_general_error; |
1290 |
1292 |
1291 EAP_TRACE_DATA_DEBUG( |
1293 EAP_TRACE_DATA_DEBUG( |
1292 m_am_tools, |
1294 m_am_tools, |
1293 TRACE_FLAGS_DEFAULT, |
1295 TRACE_FLAGS_DEFAULT, |
1294 (EAPL("asynchronous_init_remove_eap_session() EAP-session"), |
1296 (EAPL("eap_session_core_c::asynchronous_init_remove_eap_session() EAP-session"), |
1295 state_selector->get_data(state_selector->get_data_length()), |
1297 state_selector->get_data(state_selector->get_data_length()), |
1296 state_selector->get_data_length())); |
1298 state_selector->get_data_length())); |
1297 |
1299 |
1298 eap_core_c *session = m_session_map.get_handler(state_selector); |
1300 eap_core_c *session = m_session_map.get_handler(state_selector); |
1299 |
1301 |
1396 return EAP_STATUS_RETURN(m_am_tools, status); |
1398 return EAP_STATUS_RETURN(m_am_tools, status); |
1397 } |
1399 } |
1398 |
1400 |
1399 //-------------------------------------------------- |
1401 //-------------------------------------------------- |
1400 |
1402 |
1401 // |
|
1402 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::cancel_all_timers() |
|
1403 { |
|
1404 EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT); |
|
1405 |
|
1406 EAP_ASSERT(m_am_tools->get_global_mutex()->get_is_reserved() == true); |
|
1407 |
|
1408 const eap_status_e status = m_partner->cancel_all_timers(); |
|
1409 |
|
1410 EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); |
|
1411 return EAP_STATUS_RETURN(m_am_tools, status); |
|
1412 } |
|
1413 |
|
1414 //-------------------------------------------------- |
|
1415 |
|
1416 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::check_is_valid_eap_type( |
1403 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::check_is_valid_eap_type( |
1417 const eap_type_value_e eap_type) |
1404 const eap_type_value_e eap_type) |
1418 { |
1405 { |
1419 eap_status_e status = m_partner->check_is_valid_eap_type(eap_type); |
1406 eap_status_e status = m_partner->check_is_valid_eap_type(eap_type); |
1420 |
1407 |
1458 return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported); |
1445 return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported); |
1459 } |
1446 } |
1460 |
1447 |
1461 //-------------------------------------------------- |
1448 //-------------------------------------------------- |
1462 |
1449 |
1463 |
1450 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::set_eap_database_reference_values( |
1464 |
1451 const eap_variable_data_c * const /* reference */) |
|
1452 { |
|
1453 return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported); |
|
1454 } |
|
1455 |
|
1456 //-------------------------------------------------- |
|
1457 |
|
1458 EAP_FUNC_EXPORT eap_status_e eap_session_core_c::get_802_11_authentication_mode( |
|
1459 const eap_am_network_id_c * const /* receive_network_id */, |
|
1460 const eapol_key_authentication_type_e /* authentication_type */, |
|
1461 const eap_variable_data_c * const /* SSID */, |
|
1462 const eap_variable_data_c * const /* preshared_key */) |
|
1463 { |
|
1464 return EAP_STATUS_RETURN(m_am_tools, eap_status_not_supported); |
|
1465 } |
|
1466 |
|
1467 //-------------------------------------------------- |
1465 // End. |
1468 // End. |