1*6d49e1aeSJan Lentfer /* 2*6d49e1aeSJan Lentfer * hostapd / RADIUS authentication server 3*6d49e1aeSJan Lentfer * Copyright (c) 2005-2007, Jouni Malinen <j@w1.fi> 4*6d49e1aeSJan Lentfer * 5*6d49e1aeSJan Lentfer * This program is free software; you can redistribute it and/or modify 6*6d49e1aeSJan Lentfer * it under the terms of the GNU General Public License version 2 as 7*6d49e1aeSJan Lentfer * published by the Free Software Foundation. 8*6d49e1aeSJan Lentfer * 9*6d49e1aeSJan Lentfer * Alternatively, this software may be distributed under the terms of BSD 10*6d49e1aeSJan Lentfer * license. 11*6d49e1aeSJan Lentfer * 12*6d49e1aeSJan Lentfer * See README and COPYING for more details. 13*6d49e1aeSJan Lentfer */ 14*6d49e1aeSJan Lentfer 15*6d49e1aeSJan Lentfer #ifndef RADIUS_SERVER_H 16*6d49e1aeSJan Lentfer #define RADIUS_SERVER_H 17*6d49e1aeSJan Lentfer 18*6d49e1aeSJan Lentfer struct radius_server_data; 19*6d49e1aeSJan Lentfer struct eap_user; 20*6d49e1aeSJan Lentfer 21*6d49e1aeSJan Lentfer struct radius_server_conf { 22*6d49e1aeSJan Lentfer int auth_port; 23*6d49e1aeSJan Lentfer char *client_file; 24*6d49e1aeSJan Lentfer void *conf_ctx; 25*6d49e1aeSJan Lentfer void *eap_sim_db_priv; 26*6d49e1aeSJan Lentfer void *ssl_ctx; 27*6d49e1aeSJan Lentfer u8 *pac_opaque_encr_key; 28*6d49e1aeSJan Lentfer u8 *eap_fast_a_id; 29*6d49e1aeSJan Lentfer size_t eap_fast_a_id_len; 30*6d49e1aeSJan Lentfer char *eap_fast_a_id_info; 31*6d49e1aeSJan Lentfer int eap_fast_prov; 32*6d49e1aeSJan Lentfer int pac_key_lifetime; 33*6d49e1aeSJan Lentfer int pac_key_refresh_time; 34*6d49e1aeSJan Lentfer int eap_sim_aka_result_ind; 35*6d49e1aeSJan Lentfer int tnc; 36*6d49e1aeSJan Lentfer struct wps_context *wps; 37*6d49e1aeSJan Lentfer int ipv6; 38*6d49e1aeSJan Lentfer int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len, 39*6d49e1aeSJan Lentfer int phase2, struct eap_user *user); 40*6d49e1aeSJan Lentfer const char *eap_req_id_text; 41*6d49e1aeSJan Lentfer size_t eap_req_id_text_len; 42*6d49e1aeSJan Lentfer }; 43*6d49e1aeSJan Lentfer 44*6d49e1aeSJan Lentfer 45*6d49e1aeSJan Lentfer #ifdef RADIUS_SERVER 46*6d49e1aeSJan Lentfer 47*6d49e1aeSJan Lentfer struct radius_server_data * 48*6d49e1aeSJan Lentfer radius_server_init(struct radius_server_conf *conf); 49*6d49e1aeSJan Lentfer 50*6d49e1aeSJan Lentfer void radius_server_deinit(struct radius_server_data *data); 51*6d49e1aeSJan Lentfer 52*6d49e1aeSJan Lentfer int radius_server_get_mib(struct radius_server_data *data, char *buf, 53*6d49e1aeSJan Lentfer size_t buflen); 54*6d49e1aeSJan Lentfer 55*6d49e1aeSJan Lentfer void radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx); 56*6d49e1aeSJan Lentfer 57*6d49e1aeSJan Lentfer #else /* RADIUS_SERVER */ 58*6d49e1aeSJan Lentfer 59*6d49e1aeSJan Lentfer static inline struct radius_server_data * 60*6d49e1aeSJan Lentfer radius_server_init(struct radius_server_conf *conf) 61*6d49e1aeSJan Lentfer { 62*6d49e1aeSJan Lentfer return NULL; 63*6d49e1aeSJan Lentfer } 64*6d49e1aeSJan Lentfer 65*6d49e1aeSJan Lentfer static inline void radius_server_deinit(struct radius_server_data *data) 66*6d49e1aeSJan Lentfer { 67*6d49e1aeSJan Lentfer } 68*6d49e1aeSJan Lentfer 69*6d49e1aeSJan Lentfer static inline int radius_server_get_mib(struct radius_server_data *data, 70*6d49e1aeSJan Lentfer char *buf, size_t buflen) 71*6d49e1aeSJan Lentfer { 72*6d49e1aeSJan Lentfer return 0; 73*6d49e1aeSJan Lentfer } 74*6d49e1aeSJan Lentfer 75*6d49e1aeSJan Lentfer static inline void 76*6d49e1aeSJan Lentfer radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx) 77*6d49e1aeSJan Lentfer { 78*6d49e1aeSJan Lentfer } 79*6d49e1aeSJan Lentfer 80*6d49e1aeSJan Lentfer #endif /* RADIUS_SERVER */ 81*6d49e1aeSJan Lentfer 82*6d49e1aeSJan Lentfer #endif /* RADIUS_SERVER_H */ 83