16d49e1aeSJan Lentfer /*
26d49e1aeSJan Lentfer * EAP peer: Method registration
36d49e1aeSJan Lentfer * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
46d49e1aeSJan Lentfer *
53ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license.
63ff40c12SJohn Marino * See README for more details.
76d49e1aeSJan Lentfer */
86d49e1aeSJan Lentfer
96d49e1aeSJan Lentfer #ifndef EAP_METHODS_H
106d49e1aeSJan Lentfer #define EAP_METHODS_H
116d49e1aeSJan Lentfer
126d49e1aeSJan Lentfer #include "eap_common/eap_defs.h"
136d49e1aeSJan Lentfer
146d49e1aeSJan Lentfer const struct eap_method * eap_peer_get_eap_method(int vendor, EapType method);
156d49e1aeSJan Lentfer const struct eap_method * eap_peer_get_methods(size_t *count);
166d49e1aeSJan Lentfer
176d49e1aeSJan Lentfer struct eap_method * eap_peer_method_alloc(int version, int vendor,
186d49e1aeSJan Lentfer EapType method, const char *name);
196d49e1aeSJan Lentfer int eap_peer_method_register(struct eap_method *method);
206d49e1aeSJan Lentfer
216d49e1aeSJan Lentfer
226d49e1aeSJan Lentfer #ifdef IEEE8021X_EAPOL
236d49e1aeSJan Lentfer
246d49e1aeSJan Lentfer EapType eap_peer_get_type(const char *name, int *vendor);
256d49e1aeSJan Lentfer const char * eap_get_name(int vendor, EapType type);
266d49e1aeSJan Lentfer size_t eap_get_names(char *buf, size_t buflen);
276d49e1aeSJan Lentfer char ** eap_get_names_as_string_array(size_t *num);
286d49e1aeSJan Lentfer void eap_peer_unregister_methods(void);
296d49e1aeSJan Lentfer
306d49e1aeSJan Lentfer #else /* IEEE8021X_EAPOL */
316d49e1aeSJan Lentfer
eap_peer_get_type(const char * name,int * vendor)326d49e1aeSJan Lentfer static inline EapType eap_peer_get_type(const char *name, int *vendor)
336d49e1aeSJan Lentfer {
346d49e1aeSJan Lentfer *vendor = EAP_VENDOR_IETF;
356d49e1aeSJan Lentfer return EAP_TYPE_NONE;
366d49e1aeSJan Lentfer }
376d49e1aeSJan Lentfer
eap_get_name(int vendor,EapType type)386d49e1aeSJan Lentfer static inline const char * eap_get_name(int vendor, EapType type)
396d49e1aeSJan Lentfer {
406d49e1aeSJan Lentfer return NULL;
416d49e1aeSJan Lentfer }
426d49e1aeSJan Lentfer
eap_get_names(char * buf,size_t buflen)436d49e1aeSJan Lentfer static inline size_t eap_get_names(char *buf, size_t buflen)
446d49e1aeSJan Lentfer {
456d49e1aeSJan Lentfer return 0;
466d49e1aeSJan Lentfer }
476d49e1aeSJan Lentfer
eap_peer_register_methods(void)486d49e1aeSJan Lentfer static inline int eap_peer_register_methods(void)
496d49e1aeSJan Lentfer {
506d49e1aeSJan Lentfer return 0;
516d49e1aeSJan Lentfer }
526d49e1aeSJan Lentfer
eap_peer_unregister_methods(void)536d49e1aeSJan Lentfer static inline void eap_peer_unregister_methods(void)
546d49e1aeSJan Lentfer {
556d49e1aeSJan Lentfer }
566d49e1aeSJan Lentfer
eap_get_names_as_string_array(size_t * num)576d49e1aeSJan Lentfer static inline char ** eap_get_names_as_string_array(size_t *num)
586d49e1aeSJan Lentfer {
596d49e1aeSJan Lentfer return NULL;
606d49e1aeSJan Lentfer }
616d49e1aeSJan Lentfer
626d49e1aeSJan Lentfer #endif /* IEEE8021X_EAPOL */
636d49e1aeSJan Lentfer
646d49e1aeSJan Lentfer
656d49e1aeSJan Lentfer #ifdef CONFIG_DYNAMIC_EAP_METHODS
666d49e1aeSJan Lentfer
676d49e1aeSJan Lentfer int eap_peer_method_load(const char *so);
686d49e1aeSJan Lentfer int eap_peer_method_unload(struct eap_method *method);
696d49e1aeSJan Lentfer
706d49e1aeSJan Lentfer #else /* CONFIG_DYNAMIC_EAP_METHODS */
716d49e1aeSJan Lentfer
eap_peer_method_load(const char * so)726d49e1aeSJan Lentfer static inline int eap_peer_method_load(const char *so)
736d49e1aeSJan Lentfer {
746d49e1aeSJan Lentfer return 0;
756d49e1aeSJan Lentfer }
766d49e1aeSJan Lentfer
eap_peer_method_unload(struct eap_method * method)776d49e1aeSJan Lentfer static inline int eap_peer_method_unload(struct eap_method *method)
786d49e1aeSJan Lentfer {
796d49e1aeSJan Lentfer return 0;
806d49e1aeSJan Lentfer }
816d49e1aeSJan Lentfer
826d49e1aeSJan Lentfer #endif /* CONFIG_DYNAMIC_EAP_METHODS */
836d49e1aeSJan Lentfer
843ff40c12SJohn Marino /* EAP peer method registration calls for statically linked in methods */
853ff40c12SJohn Marino int eap_peer_md5_register(void);
863ff40c12SJohn Marino int eap_peer_tls_register(void);
873ff40c12SJohn Marino int eap_peer_unauth_tls_register(void);
88*a1157835SDaniel Fojt int eap_peer_wfa_unauth_tls_register(void);
893ff40c12SJohn Marino int eap_peer_mschapv2_register(void);
903ff40c12SJohn Marino int eap_peer_peap_register(void);
913ff40c12SJohn Marino int eap_peer_ttls_register(void);
923ff40c12SJohn Marino int eap_peer_gtc_register(void);
933ff40c12SJohn Marino int eap_peer_otp_register(void);
943ff40c12SJohn Marino int eap_peer_sim_register(void);
953ff40c12SJohn Marino int eap_peer_leap_register(void);
963ff40c12SJohn Marino int eap_peer_psk_register(void);
973ff40c12SJohn Marino int eap_peer_aka_register(void);
983ff40c12SJohn Marino int eap_peer_aka_prime_register(void);
993ff40c12SJohn Marino int eap_peer_fast_register(void);
100*a1157835SDaniel Fojt int eap_peer_teap_register(void);
1013ff40c12SJohn Marino int eap_peer_pax_register(void);
1023ff40c12SJohn Marino int eap_peer_sake_register(void);
1033ff40c12SJohn Marino int eap_peer_gpsk_register(void);
1043ff40c12SJohn Marino int eap_peer_wsc_register(void);
1053ff40c12SJohn Marino int eap_peer_ikev2_register(void);
1063ff40c12SJohn Marino int eap_peer_vendor_test_register(void);
1073ff40c12SJohn Marino int eap_peer_tnc_register(void);
1083ff40c12SJohn Marino int eap_peer_pwd_register(void);
1093ff40c12SJohn Marino int eap_peer_eke_register(void);
1103ff40c12SJohn Marino
1116d49e1aeSJan Lentfer #endif /* EAP_METHODS_H */
112