xref: /dflybsd-src/contrib/wpa_supplicant/src/radius/radius_server.h (revision 6d49e1aea1f916afb9e202b8d2ad09cfab6e48c3)
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