Lines Matching refs:sm

218 	struct eapol_state_machine *sm = sta->eapol_sm;  in ieee802_1x_tx_key_one()  local
220 if (!sm) in ieee802_1x_tx_key_one()
266 if (!sm->eap_if->eapKeyData || sm->eap_if->eapKeyDataLen < 64) { in ieee802_1x_tx_key_one()
281 os_memcpy(ekey + sizeof(key->key_iv), sm->eap_if->eapKeyData, 32); in ieee802_1x_tx_key_one()
294 hmac_md5(sm->eap_if->eapKeyData + 32, 32, buf, sizeof(*hdr) + len, in ieee802_1x_tx_key_one()
298 " (%s index=%d)", MAC2STR(sm->addr), in ieee802_1x_tx_key_one()
310 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_tx_key() local
312 if (!sm || !sm->eap_if->eapKeyData) in ieee802_1x_tx_key()
400 struct eapol_state_machine *sm, in ieee802_1x_learn_identity() argument
416 eap_erp_update_identity(sm->eap, eap, len); in ieee802_1x_learn_identity()
417 identity = eap_get_identity(sm->eap, &identity_len); in ieee802_1x_learn_identity()
422 os_free(sm->identity); in ieee802_1x_learn_identity()
423 sm->identity = (u8 *) dup_binstr(identity, identity_len); in ieee802_1x_learn_identity()
424 if (!sm->identity) { in ieee802_1x_learn_identity()
425 sm->identity_len = 0; in ieee802_1x_learn_identity()
429 sm->identity_len = identity_len; in ieee802_1x_learn_identity()
430 hostapd_logger(hapd, sm->addr, HOSTAPD_MODULE_IEEE8021X, in ieee802_1x_learn_identity()
431 HOSTAPD_LEVEL_DEBUG, "STA identity '%s'", sm->identity); in ieee802_1x_learn_identity()
432 sm->dot1xAuthEapolRespIdFramesRx++; in ieee802_1x_learn_identity()
748 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_encapsulate_radius() local
750 if (!sm) in ieee802_1x_encapsulate_radius()
753 ieee802_1x_learn_identity(hapd, sm, eap, len); in ieee802_1x_encapsulate_radius()
757 sm->radius_identifier = radius_client_get_id(hapd->radius); in ieee802_1x_encapsulate_radius()
759 sm->radius_identifier); in ieee802_1x_encapsulate_radius()
773 if (sm->identity && in ieee802_1x_encapsulate_radius()
775 sm->identity, sm->identity_len)) { in ieee802_1x_encapsulate_radius()
804 if (sm->last_recv_radius && in ieee802_1x_encapsulate_radius()
805 radius_msg_get_hdr(sm->last_recv_radius)->code == in ieee802_1x_encapsulate_radius()
807 int res = radius_msg_copy_attr(msg, sm->last_recv_radius, in ieee802_1x_encapsulate_radius()
822 if (sm->radius_cui) { in ieee802_1x_encapsulate_radius()
823 cui = wpabuf_head(sm->radius_cui); in ieee802_1x_encapsulate_radius()
824 cui_len = wpabuf_len(sm->radius_cui); in ieee802_1x_encapsulate_radius()
925 struct eapol_state_machine *sm = sta->eapol_sm; in handle_eap_response() local
927 if (!sm) in handle_eap_response()
937 sm->eap_type_supp = type = data[0]; in handle_eap_response()
939 hostapd_logger(hapd, sm->addr, HOSTAPD_MODULE_IEEE8021X, in handle_eap_response()
945 sm->dot1xAuthEapolRespFramesRx++; in handle_eap_response()
947 wpabuf_free(sm->eap_if->eapRespData); in handle_eap_response()
948 sm->eap_if->eapRespData = wpabuf_alloc_copy(eap, len); in handle_eap_response()
949 sm->eapolEap = true; in handle_eap_response()
959 struct eapol_state_machine *sm = sta->eapol_sm; in handle_eap_initiate() local
961 if (!sm) in handle_eap_initiate()
972 hostapd_logger(hapd, sm->addr, HOSTAPD_MODULE_IEEE8021X, in handle_eap_initiate()
978 wpabuf_free(sm->eap_if->eapRespData); in handle_eap_initiate()
979 sm->eap_if->eapRespData = wpabuf_alloc_copy(eap, len); in handle_eap_initiate()
980 sm->eapolEap = true; in handle_eap_initiate()
1472 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_free_station() local
1484 if (!sm) in ieee802_1x_free_station()
1490 radius_msg_free(sm->last_recv_radius); in ieee802_1x_free_station()
1491 radius_free_class(&sm->radius_class); in ieee802_1x_free_station()
1494 eapol_auth_free(sm); in ieee802_1x_free_station()
1507 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_decapsulate_radius() local
1509 if (!sm || !sm->last_recv_radius) { in ieee802_1x_decapsulate_radius()
1510 if (sm) in ieee802_1x_decapsulate_radius()
1511 sm->eap_if->aaaEapNoReq = true; in ieee802_1x_decapsulate_radius()
1515 msg = sm->last_recv_radius; in ieee802_1x_decapsulate_radius()
1525 sm->eap_if->aaaEapNoReq = true; in ieee802_1x_decapsulate_radius()
1534 sm->eap_if->aaaEapNoReq = true; in ieee802_1x_decapsulate_radius()
1545 sm->eap_type_authsrv = eap_type; in ieee802_1x_decapsulate_radius()
1569 sm->eap_if->aaaEapReq = true; in ieee802_1x_decapsulate_radius()
1571 wpabuf_free(sm->eap_if->aaaEapReqData); in ieee802_1x_decapsulate_radius()
1572 sm->eap_if->aaaEapReqData = eap; in ieee802_1x_decapsulate_radius()
1585 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_get_keys() local
1587 if (!sm) in ieee802_1x_get_keys()
1600 os_free(sm->eap_if->aaaEapKeyData); in ieee802_1x_get_keys()
1601 sm->eap_if->aaaEapKeyData = os_malloc(len); in ieee802_1x_get_keys()
1602 if (sm->eap_if->aaaEapKeyData) { in ieee802_1x_get_keys()
1603 os_memcpy(sm->eap_if->aaaEapKeyData, keys->recv, in ieee802_1x_get_keys()
1605 os_memcpy(sm->eap_if->aaaEapKeyData + keys->recv_len, in ieee802_1x_get_keys()
1607 sm->eap_if->aaaEapKeyDataLen = len; in ieee802_1x_get_keys()
1608 sm->eap_if->aaaEapKeyAvailable = true; in ieee802_1x_get_keys()
1625 os_free(sm->eap_if->eapSessionId); in ieee802_1x_get_keys()
1626 sm->eap_if->eapSessionId = os_memdup(buf, len); in ieee802_1x_get_keys()
1627 if (sm->eap_if->eapSessionId) { in ieee802_1x_get_keys()
1628 sm->eap_if->eapSessionIdLen = len; in ieee802_1x_get_keys()
1630 sm->eap_if->eapSessionId, in ieee802_1x_get_keys()
1631 sm->eap_if->eapSessionIdLen); in ieee802_1x_get_keys()
1634 sm->eap_if->eapSessionIdLen = 0; in ieee802_1x_get_keys()
1645 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_store_radius_class() local
1650 if (!hapd->conf->radius->acct_server || !hapd->radius || !sm) in ieee802_1x_store_radius_class()
1653 radius_free_class(&sm->radius_class); in ieee802_1x_store_radius_class()
1683 sm->radius_class.attr = nclass; in ieee802_1x_store_radius_class()
1684 sm->radius_class.count = nclass_count; in ieee802_1x_store_radius_class()
1688 (unsigned long) sm->radius_class.count, in ieee802_1x_store_radius_class()
1700 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_update_sta_identity() local
1702 if (!sm) in ieee802_1x_update_sta_identity()
1716 sm->identity ? (char *) sm->identity : "N/A", in ieee802_1x_update_sta_identity()
1719 os_free(sm->identity); in ieee802_1x_update_sta_identity()
1720 sm->identity = identity; in ieee802_1x_update_sta_identity()
1721 sm->identity_len = len; in ieee802_1x_update_sta_identity()
1730 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_update_sta_cui() local
1735 if (!sm) in ieee802_1x_update_sta_cui()
1746 wpabuf_free(sm->radius_cui); in ieee802_1x_update_sta_cui()
1747 sm->radius_cui = cui; in ieee802_1x_update_sta_cui()
1943 struct eapol_state_machine *sm; member
1952 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_select_radius_identifier() local
1954 if (sm && sm->radius_identifier >= 0 && in ieee802_1x_select_radius_identifier()
1955 sm->radius_identifier == id_search->identifier) { in ieee802_1x_select_radius_identifier()
1956 id_search->sm = sm; in ieee802_1x_select_radius_identifier()
1969 id_search.sm = NULL; in ieee802_1x_search_radius_identifier()
1971 return id_search.sm; in ieee802_1x_search_radius_identifier()
2033 struct eapol_state_machine *sm; in ieee802_1x_receive_auth() local
2037 sm = ieee802_1x_search_radius_identifier(hapd, hdr->identifier); in ieee802_1x_receive_auth()
2038 if (!sm) { in ieee802_1x_receive_auth()
2043 sta = sm->sta; in ieee802_1x_receive_auth()
2058 sm->radius_identifier = -1; in ieee802_1x_receive_auth()
2062 radius_msg_free(sm->last_recv_radius); in ieee802_1x_receive_auth()
2063 sm->last_recv_radius = msg; in ieee802_1x_receive_auth()
2113 sm->reAuthPeriod = session_timeout; in ieee802_1x_receive_auth()
2119 sm->eap_if->aaaSuccess = true; in ieee802_1x_receive_auth()
2131 sm->eap_if->aaaFail = true; in ieee802_1x_receive_auth()
2142 sm->eap_if->aaaEapReq = true; in ieee802_1x_receive_auth()
2145 sm->eap_if->aaaMethodTimeout = session_timeout; in ieee802_1x_receive_auth()
2146 hostapd_logger(hapd, sm->addr, in ieee802_1x_receive_auth()
2150 sm->eap_if->aaaMethodTimeout); in ieee802_1x_receive_auth()
2156 sm->eap_if->aaaMethodTimeout = 0; in ieee802_1x_receive_auth()
2163 sm->eap_if->aaaEapReq = false; in ieee802_1x_receive_auth()
2172 sm->eap_if->aaaEapReqData, in ieee802_1x_receive_auth()
2173 sm->eap_if->aaaEapKeyData, in ieee802_1x_receive_auth()
2174 sm->eap_if->aaaEapKeyDataLen); in ieee802_1x_receive_auth()
2179 eapol_auth_step(sm); in ieee802_1x_receive_auth()
2188 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_abort_auth() local
2190 if (!sm) in ieee802_1x_abort_auth()
2197 radius_msg_free(sm->last_recv_radius); in ieee802_1x_abort_auth()
2198 sm->last_recv_radius = NULL; in ieee802_1x_abort_auth()
2201 if (sm->eap_if->eapTimeout) { in ieee802_1x_abort_auth()
2210 sm->eap_if->portEnabled = false; in ieee802_1x_abort_auth()
2316 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_eapol_send() local
2318 identity = eap_get_identity(sm->eap, &identity_len); in ieee802_1x_eapol_send()
2761 u8 * ieee802_1x_get_identity(struct eapol_state_machine *sm, size_t *len) in ieee802_1x_get_identity() argument
2763 if (!sm || !sm->identity) in ieee802_1x_get_identity()
2766 *len = sm->identity_len; in ieee802_1x_get_identity()
2767 return sm->identity; in ieee802_1x_get_identity()
2771 u8 * ieee802_1x_get_radius_class(struct eapol_state_machine *sm, size_t *len, in ieee802_1x_get_radius_class() argument
2774 if (!sm || !sm->radius_class.attr || in ieee802_1x_get_radius_class()
2775 idx >= (int) sm->radius_class.count) in ieee802_1x_get_radius_class()
2778 *len = sm->radius_class.attr[idx].len; in ieee802_1x_get_radius_class()
2779 return sm->radius_class.attr[idx].data; in ieee802_1x_get_radius_class()
2783 struct wpabuf * ieee802_1x_get_radius_cui(struct eapol_state_machine *sm) in ieee802_1x_get_radius_cui() argument
2785 if (!sm) in ieee802_1x_get_radius_cui()
2787 return sm->radius_cui; in ieee802_1x_get_radius_cui()
2791 const u8 * ieee802_1x_get_key(struct eapol_state_machine *sm, size_t *len) in ieee802_1x_get_key() argument
2794 if (!sm) in ieee802_1x_get_key()
2797 *len = sm->eap_if->eapKeyDataLen; in ieee802_1x_get_key()
2798 return sm->eap_if->eapKeyData; in ieee802_1x_get_key()
2803 const u8 * ieee802_1x_get_session_id(struct eapol_state_machine *sm, in ieee802_1x_get_session_id() argument
2807 if (!sm || !sm->eap_if) in ieee802_1x_get_session_id()
2810 *len = sm->eap_if->eapSessionIdLen; in ieee802_1x_get_session_id()
2811 return sm->eap_if->eapSessionId; in ieee802_1x_get_session_id()
2816 void ieee802_1x_notify_port_enabled(struct eapol_state_machine *sm, in ieee802_1x_notify_port_enabled() argument
2819 if (!sm) in ieee802_1x_notify_port_enabled()
2821 sm->eap_if->portEnabled = enabled; in ieee802_1x_notify_port_enabled()
2822 eapol_auth_step(sm); in ieee802_1x_notify_port_enabled()
2826 void ieee802_1x_notify_port_valid(struct eapol_state_machine *sm, bool valid) in ieee802_1x_notify_port_valid() argument
2828 if (!sm) in ieee802_1x_notify_port_valid()
2830 sm->portValid = valid; in ieee802_1x_notify_port_valid()
2831 eapol_auth_step(sm); in ieee802_1x_notify_port_valid()
2835 void ieee802_1x_notify_pre_auth(struct eapol_state_machine *sm, bool pre_auth) in ieee802_1x_notify_pre_auth() argument
2837 if (!sm) in ieee802_1x_notify_pre_auth()
2840 sm->flags |= EAPOL_SM_PREAUTH; in ieee802_1x_notify_pre_auth()
2842 sm->flags &= ~EAPOL_SM_PREAUTH; in ieee802_1x_notify_pre_auth()
2863 struct eapol_state_machine *sm = sta->eapol_sm; in ieee802_1x_get_mib_sta() local
2869 if (!sm) in ieee802_1x_get_mib_sta()
2880 sm->initialize); in ieee802_1x_get_mib_sta()
2898 sm->auth_pae_state + 1, in ieee802_1x_get_mib_sta()
2899 sm->be_auth_state + 1, in ieee802_1x_get_mib_sta()
2900 sm->adminControlledDirections, in ieee802_1x_get_mib_sta()
2901 sm->operControlledDirections, in ieee802_1x_get_mib_sta()
2902 sm->authPortStatus, in ieee802_1x_get_mib_sta()
2903 sm->portControl, in ieee802_1x_get_mib_sta()
2904 sm->quietPeriod, in ieee802_1x_get_mib_sta()
2905 sm->serverTimeout, in ieee802_1x_get_mib_sta()
2906 sm->reAuthPeriod, in ieee802_1x_get_mib_sta()
2907 bool_txt(sm->reAuthEnabled), in ieee802_1x_get_mib_sta()
2908 bool_txt(sm->keyTxEnabled)); in ieee802_1x_get_mib_sta()
2927 sm->dot1xAuthEapolFramesRx, in ieee802_1x_get_mib_sta()
2928 sm->dot1xAuthEapolFramesTx, in ieee802_1x_get_mib_sta()
2929 sm->dot1xAuthEapolStartFramesRx, in ieee802_1x_get_mib_sta()
2930 sm->dot1xAuthEapolLogoffFramesRx, in ieee802_1x_get_mib_sta()
2931 sm->dot1xAuthEapolRespIdFramesRx, in ieee802_1x_get_mib_sta()
2932 sm->dot1xAuthEapolRespFramesRx, in ieee802_1x_get_mib_sta()
2933 sm->dot1xAuthEapolReqIdFramesTx, in ieee802_1x_get_mib_sta()
2934 sm->dot1xAuthEapolReqFramesTx, in ieee802_1x_get_mib_sta()
2935 sm->dot1xAuthInvalidEapolFramesRx, in ieee802_1x_get_mib_sta()
2936 sm->dot1xAuthEapLengthErrorFramesRx, in ieee802_1x_get_mib_sta()
2937 sm->dot1xAuthLastEapolFrameVersion, in ieee802_1x_get_mib_sta()
2938 MAC2STR(sm->addr)); in ieee802_1x_get_mib_sta()
2961 sm->authEntersConnecting, in ieee802_1x_get_mib_sta()
2962 sm->authEapLogoffsWhileConnecting, in ieee802_1x_get_mib_sta()
2963 sm->authEntersAuthenticating, in ieee802_1x_get_mib_sta()
2964 sm->authAuthSuccessesWhileAuthenticating, in ieee802_1x_get_mib_sta()
2965 sm->authAuthTimeoutsWhileAuthenticating, in ieee802_1x_get_mib_sta()
2966 sm->authAuthFailWhileAuthenticating, in ieee802_1x_get_mib_sta()
2967 sm->authAuthEapStartsWhileAuthenticating, in ieee802_1x_get_mib_sta()
2968 sm->authAuthEapLogoffWhileAuthenticating, in ieee802_1x_get_mib_sta()
2969 sm->authAuthReauthsWhileAuthenticated, in ieee802_1x_get_mib_sta()
2970 sm->authAuthEapStartsWhileAuthenticated, in ieee802_1x_get_mib_sta()
2971 sm->authAuthEapLogoffWhileAuthenticated, in ieee802_1x_get_mib_sta()
2972 sm->backendResponses, in ieee802_1x_get_mib_sta()
2973 sm->backendAccessChallenges, in ieee802_1x_get_mib_sta()
2974 sm->backendOtherRequestsToSupplicant, in ieee802_1x_get_mib_sta()
2975 sm->backendAuthSuccesses, in ieee802_1x_get_mib_sta()
2976 sm->backendAuthFails); in ieee802_1x_get_mib_sta()
2983 if (sm->eap && !sm->identity) { in ieee802_1x_get_mib_sta()
2987 id = eap_get_identity(sm->eap, &id_len); in ieee802_1x_get_mib_sta()
3006 sm->identity ? (char *) sm->identity : in ieee802_1x_get_mib_sta()
3013 if (sm->acct_multi_session_id) { in ieee802_1x_get_mib_sta()
3017 sm->acct_multi_session_id); in ieee802_1x_get_mib_sta()
3023 name1 = eap_server_get_name(0, sm->eap_type_authsrv); in ieee802_1x_get_mib_sta()
3024 name2 = eap_server_get_name(0, sm->eap_type_supp); in ieee802_1x_get_mib_sta()
3028 sm->eap_type_authsrv, name1, in ieee802_1x_get_mib_sta()
3029 sm->eap_type_supp, name2); in ieee802_1x_get_mib_sta()