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