xref: /freebsd/contrib/wpa/src/eap_peer/eap_methods.h (revision c1d255d3)
139beb93cSSam Leffler /*
239beb93cSSam Leffler  * EAP peer: Method registration
339beb93cSSam Leffler  * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
439beb93cSSam Leffler  *
5f05cddf9SRui Paulo  * This software may be distributed under the terms of the BSD license.
6f05cddf9SRui Paulo  * See README for more details.
739beb93cSSam Leffler  */
839beb93cSSam Leffler 
939beb93cSSam Leffler #ifndef EAP_METHODS_H
1039beb93cSSam Leffler #define EAP_METHODS_H
1139beb93cSSam Leffler 
1239beb93cSSam Leffler #include "eap_common/eap_defs.h"
1339beb93cSSam Leffler 
14*c1d255d3SCy Schubert const struct eap_method * eap_peer_get_eap_method(int vendor,
15*c1d255d3SCy Schubert 						  enum eap_type method);
1639beb93cSSam Leffler const struct eap_method * eap_peer_get_methods(size_t *count);
1739beb93cSSam Leffler 
1839beb93cSSam Leffler struct eap_method * eap_peer_method_alloc(int version, int vendor,
19*c1d255d3SCy Schubert 					  enum eap_type method,
20*c1d255d3SCy Schubert 					  const char *name);
2139beb93cSSam Leffler int eap_peer_method_register(struct eap_method *method);
2239beb93cSSam Leffler 
2339beb93cSSam Leffler 
2439beb93cSSam Leffler #ifdef IEEE8021X_EAPOL
2539beb93cSSam Leffler 
26*c1d255d3SCy Schubert enum eap_type eap_peer_get_type(const char *name, int *vendor);
27*c1d255d3SCy Schubert const char * eap_get_name(int vendor, enum eap_type type);
2839beb93cSSam Leffler size_t eap_get_names(char *buf, size_t buflen);
2939beb93cSSam Leffler char ** eap_get_names_as_string_array(size_t *num);
3039beb93cSSam Leffler void eap_peer_unregister_methods(void);
3139beb93cSSam Leffler 
3239beb93cSSam Leffler #else /* IEEE8021X_EAPOL */
3339beb93cSSam Leffler 
eap_peer_get_type(const char * name,int * vendor)34*c1d255d3SCy Schubert static inline enum eap_type eap_peer_get_type(const char *name, int *vendor)
3539beb93cSSam Leffler {
3639beb93cSSam Leffler 	*vendor = EAP_VENDOR_IETF;
3739beb93cSSam Leffler 	return EAP_TYPE_NONE;
3839beb93cSSam Leffler }
3939beb93cSSam Leffler 
eap_get_name(int vendor,enum eap_type type)40*c1d255d3SCy Schubert static inline const char * eap_get_name(int vendor, enum eap_type type)
4139beb93cSSam Leffler {
4239beb93cSSam Leffler 	return NULL;
4339beb93cSSam Leffler }
4439beb93cSSam Leffler 
eap_get_names(char * buf,size_t buflen)4539beb93cSSam Leffler static inline size_t eap_get_names(char *buf, size_t buflen)
4639beb93cSSam Leffler {
4739beb93cSSam Leffler 	return 0;
4839beb93cSSam Leffler }
4939beb93cSSam Leffler 
eap_peer_register_methods(void)5039beb93cSSam Leffler static inline int eap_peer_register_methods(void)
5139beb93cSSam Leffler {
5239beb93cSSam Leffler 	return 0;
5339beb93cSSam Leffler }
5439beb93cSSam Leffler 
eap_peer_unregister_methods(void)5539beb93cSSam Leffler static inline void eap_peer_unregister_methods(void)
5639beb93cSSam Leffler {
5739beb93cSSam Leffler }
5839beb93cSSam Leffler 
eap_get_names_as_string_array(size_t * num)593157ba21SRui Paulo static inline char ** eap_get_names_as_string_array(size_t *num)
603157ba21SRui Paulo {
613157ba21SRui Paulo 	return NULL;
623157ba21SRui Paulo }
633157ba21SRui Paulo 
6439beb93cSSam Leffler #endif /* IEEE8021X_EAPOL */
6539beb93cSSam Leffler 
6639beb93cSSam Leffler 
6739beb93cSSam Leffler #ifdef CONFIG_DYNAMIC_EAP_METHODS
6839beb93cSSam Leffler 
6939beb93cSSam Leffler int eap_peer_method_load(const char *so);
7039beb93cSSam Leffler int eap_peer_method_unload(struct eap_method *method);
7139beb93cSSam Leffler 
7239beb93cSSam Leffler #else /* CONFIG_DYNAMIC_EAP_METHODS */
7339beb93cSSam Leffler 
eap_peer_method_load(const char * so)7439beb93cSSam Leffler static inline int eap_peer_method_load(const char *so)
7539beb93cSSam Leffler {
7639beb93cSSam Leffler 	return 0;
7739beb93cSSam Leffler }
7839beb93cSSam Leffler 
eap_peer_method_unload(struct eap_method * method)7939beb93cSSam Leffler static inline int eap_peer_method_unload(struct eap_method *method)
8039beb93cSSam Leffler {
8139beb93cSSam Leffler 	return 0;
8239beb93cSSam Leffler }
8339beb93cSSam Leffler 
8439beb93cSSam Leffler #endif /* CONFIG_DYNAMIC_EAP_METHODS */
8539beb93cSSam Leffler 
86e28a4053SRui Paulo /* EAP peer method registration calls for statically linked in methods */
87e28a4053SRui Paulo int eap_peer_md5_register(void);
88e28a4053SRui Paulo int eap_peer_tls_register(void);
89f05cddf9SRui Paulo int eap_peer_unauth_tls_register(void);
905b9c547cSRui Paulo int eap_peer_wfa_unauth_tls_register(void);
91e28a4053SRui Paulo int eap_peer_mschapv2_register(void);
92e28a4053SRui Paulo int eap_peer_peap_register(void);
93e28a4053SRui Paulo int eap_peer_ttls_register(void);
94e28a4053SRui Paulo int eap_peer_gtc_register(void);
95e28a4053SRui Paulo int eap_peer_otp_register(void);
96e28a4053SRui Paulo int eap_peer_sim_register(void);
97e28a4053SRui Paulo int eap_peer_leap_register(void);
98e28a4053SRui Paulo int eap_peer_psk_register(void);
99e28a4053SRui Paulo int eap_peer_aka_register(void);
100e28a4053SRui Paulo int eap_peer_aka_prime_register(void);
101e28a4053SRui Paulo int eap_peer_fast_register(void);
102206b73d0SCy Schubert int eap_peer_teap_register(void);
103e28a4053SRui Paulo int eap_peer_pax_register(void);
104e28a4053SRui Paulo int eap_peer_sake_register(void);
105e28a4053SRui Paulo int eap_peer_gpsk_register(void);
106e28a4053SRui Paulo int eap_peer_wsc_register(void);
107e28a4053SRui Paulo int eap_peer_ikev2_register(void);
108e28a4053SRui Paulo int eap_peer_vendor_test_register(void);
109e28a4053SRui Paulo int eap_peer_tnc_register(void);
110f05cddf9SRui Paulo int eap_peer_pwd_register(void);
1115b9c547cSRui Paulo int eap_peer_eke_register(void);
112e28a4053SRui Paulo 
11339beb93cSSam Leffler #endif /* EAP_METHODS_H */
114