/* * hostapd / IEEE 802.11 authentication (ACL) * Copyright (c) 2003-2022, Jouni Malinen * * This software may be distributed under the terms of the BSD license. * See README for more details. */ #ifndef IEEE802_11_AUTH_H #define IEEE802_11_AUTH_H enum { HOSTAPD_ACL_REJECT = 0, HOSTAPD_ACL_ACCEPT = 1, HOSTAPD_ACL_PENDING = 2, HOSTAPD_ACL_ACCEPT_TIMEOUT = 3 }; struct radius_sta { u32 session_timeout; u32 acct_interim_interval; struct vlan_description vlan_id; struct hostapd_sta_wpa_psk_short *psk; char *identity; char *radius_cui; }; int hostapd_check_acl(struct hostapd_data *hapd, const u8 *addr, struct vlan_description *vlan_id); int hostapd_allowed_address(struct hostapd_data *hapd, const u8 *addr, const u8 *msg, size_t len, struct radius_sta *out, int is_probe_req); int hostapd_acl_init(struct hostapd_data *hapd); void hostapd_acl_deinit(struct hostapd_data *hapd); void hostapd_free_psk_list(struct hostapd_sta_wpa_psk_short *psk); void hostapd_acl_expire(struct hostapd_data *hapd); void hostapd_copy_psk_list(struct hostapd_sta_wpa_psk_short **psk, struct hostapd_sta_wpa_psk_short *src); void hostapd_acl_req_radius_psk(struct hostapd_data *hapd, const u8 *addr, int key_mgmt, const u8 *anonce, const u8 *eapol, size_t eapol_len); #endif /* IEEE802_11_AUTH_H */