fragattacks/src/radius/radius_server.h
Jouni Malinen 65d50f0ac6 Add RADIUS server support for identity selection hint (RFC 4284)
Previously, only the delivery option 1 from RFC 4284
(EAP-Request/Identity from the AP) was supported. Now option 3
(subsequent EAP-Request/Identity from RADIUS server) can also be used
when hostapd is used as a RADIUS server. The eap_user file will need to
have a Phase 1 user entry pointing to Identity method in order for this
to happen (e.g., "* Identity" in the end of the file). The identity hint
is configured in the same was as for AP/Authenticator case (eap_message
in hostapd.conf).
2008-12-26 20:22:12 +02:00

83 lines
1.9 KiB
C

/*
* hostapd / RADIUS authentication server
* Copyright (c) 2005-2007, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Alternatively, this software may be distributed under the terms of BSD
* license.
*
* See README and COPYING for more details.
*/
#ifndef RADIUS_SERVER_H
#define RADIUS_SERVER_H
struct radius_server_data;
struct eap_user;
struct radius_server_conf {
int auth_port;
char *client_file;
void *conf_ctx;
void *eap_sim_db_priv;
void *ssl_ctx;
u8 *pac_opaque_encr_key;
u8 *eap_fast_a_id;
size_t eap_fast_a_id_len;
char *eap_fast_a_id_info;
int eap_fast_prov;
int pac_key_lifetime;
int pac_key_refresh_time;
int eap_sim_aka_result_ind;
int tnc;
struct wps_context *wps;
int ipv6;
int (*get_eap_user)(void *ctx, const u8 *identity, size_t identity_len,
int phase2, struct eap_user *user);
const char *eap_req_id_text;
size_t eap_req_id_text_len;
};
#ifdef RADIUS_SERVER
struct radius_server_data *
radius_server_init(struct radius_server_conf *conf);
void radius_server_deinit(struct radius_server_data *data);
int radius_server_get_mib(struct radius_server_data *data, char *buf,
size_t buflen);
void radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx);
#else /* RADIUS_SERVER */
static inline struct radius_server_data *
radius_server_init(struct radius_server_conf *conf)
{
return NULL;
}
static inline void radius_server_deinit(struct radius_server_data *data)
{
}
static inline int radius_server_get_mib(struct radius_server_data *data,
char *buf, size_t buflen)
{
return 0;
}
static inline void
radius_server_eap_pending_cb(struct radius_server_data *data, void *ctx)
{
}
#endif /* RADIUS_SERVER */
#endif /* RADIUS_SERVER_H */