1526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/* 2526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * hostapd / RADIUS authentication server 3526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Copyright (c) 2005-2007, Jouni Malinen <j@w1.fi> 4526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 5526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * This program is free software; you can redistribute it and/or modify 6526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * it under the terms of the GNU General Public License version 2 as 7526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * published by the Free Software Foundation. 8526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 9526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD 10526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * license. 11526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 12526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * See README and COPYING for more details. 13526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt */ 14526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 15526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifndef RADIUS_SERVER_H 16526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#define RADIUS_SERVER_H 17526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 18526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct radius_server_data; 19526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct eap_user; 20526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 21526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct radius_server_conf { 22526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int auth_port; 23526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt char *client_file; 24526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt void *conf_ctx; 25526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt void *eap_sim_db_priv; 26526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt void *ssl_ctx; 27526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt u8 *pac_opaque_encr_key; 28526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt u8 *eap_fast_a_id; 29526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t eap_fast_a_id_len; 30526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt char *eap_fast_a_id_info; 31526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int eap_fast_prov; 32526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int pac_key_lifetime; 33526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int pac_key_refresh_time; 34526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int eap_sim_aka_result_ind; 35526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int tnc; 36526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt struct wps_context *wps; 37526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int ipv6; 38526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len, 39526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt int phase2, struct eap_user *user); 40526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const char *eap_req_id_text; 41526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t eap_req_id_text_len; 42526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt}; 43526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 44526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 45526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifdef RADIUS_SERVER 46526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 47526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct radius_server_data * 48526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtradius_server_init(struct radius_server_conf *conf); 49526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 50526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtvoid radius_server_deinit(struct radius_server_data *data); 51526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 52526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint radius_server_get_mib(struct radius_server_data *data, char *buf, 53526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t buflen); 54526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 55526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtvoid radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx); 56526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 57526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#else /* RADIUS_SERVER */ 58526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 59526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline struct radius_server_data * 60526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtradius_server_init(struct radius_server_conf *conf) 61526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 62526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return NULL; 63526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 64526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 65526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline void radius_server_deinit(struct radius_server_data *data) 66526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 67526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 68526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 69526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline int radius_server_get_mib(struct radius_server_data *data, 70526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt char *buf, size_t buflen) 71526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 72526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt return 0; 73526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 74526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 75526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstatic inline void 76526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtradius_server_eap_pending_cb(struct radius_server_data *data, void *ctx) 77526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt{ 78526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt} 79526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 80526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* RADIUS_SERVER */ 81526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 82526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* RADIUS_SERVER_H */ 83