1189251Ssam/* 2189251Ssam * EAP peer: Method registration 3189251Ssam * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 4189251Ssam * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7189251Ssam */ 8189251Ssam 9189251Ssam#ifndef EAP_METHODS_H 10189251Ssam#define EAP_METHODS_H 11189251Ssam 12189251Ssam#include "eap_common/eap_defs.h" 13189251Ssam 14189251Ssamconst struct eap_method * eap_peer_get_eap_method(int vendor, EapType method); 15189251Ssamconst struct eap_method * eap_peer_get_methods(size_t *count); 16189251Ssam 17189251Ssamstruct eap_method * eap_peer_method_alloc(int version, int vendor, 18189251Ssam EapType method, const char *name); 19189251Ssamint eap_peer_method_register(struct eap_method *method); 20189251Ssam 21189251Ssam 22189251Ssam#ifdef IEEE8021X_EAPOL 23189251Ssam 24189251SsamEapType eap_peer_get_type(const char *name, int *vendor); 25189251Ssamconst char * eap_get_name(int vendor, EapType type); 26189251Ssamsize_t eap_get_names(char *buf, size_t buflen); 27189251Ssamchar ** eap_get_names_as_string_array(size_t *num); 28189251Ssamvoid eap_peer_unregister_methods(void); 29189251Ssam 30189251Ssam#else /* IEEE8021X_EAPOL */ 31189251Ssam 32189251Ssamstatic inline EapType eap_peer_get_type(const char *name, int *vendor) 33189251Ssam{ 34189251Ssam *vendor = EAP_VENDOR_IETF; 35189251Ssam return EAP_TYPE_NONE; 36189251Ssam} 37189251Ssam 38189251Ssamstatic inline const char * eap_get_name(int vendor, EapType type) 39189251Ssam{ 40189251Ssam return NULL; 41189251Ssam} 42189251Ssam 43189251Ssamstatic inline size_t eap_get_names(char *buf, size_t buflen) 44189251Ssam{ 45189251Ssam return 0; 46189251Ssam} 47189251Ssam 48189251Ssamstatic inline int eap_peer_register_methods(void) 49189251Ssam{ 50189251Ssam return 0; 51189251Ssam} 52189251Ssam 53189251Ssamstatic inline void eap_peer_unregister_methods(void) 54189251Ssam{ 55189251Ssam} 56189251Ssam 57209158Srpaulostatic inline char ** eap_get_names_as_string_array(size_t *num) 58209158Srpaulo{ 59209158Srpaulo return NULL; 60209158Srpaulo} 61209158Srpaulo 62189251Ssam#endif /* IEEE8021X_EAPOL */ 63189251Ssam 64189251Ssam 65189251Ssam#ifdef CONFIG_DYNAMIC_EAP_METHODS 66189251Ssam 67189251Ssamint eap_peer_method_load(const char *so); 68189251Ssamint eap_peer_method_unload(struct eap_method *method); 69189251Ssam 70189251Ssam#else /* CONFIG_DYNAMIC_EAP_METHODS */ 71189251Ssam 72189251Ssamstatic inline int eap_peer_method_load(const char *so) 73189251Ssam{ 74189251Ssam return 0; 75189251Ssam} 76189251Ssam 77189251Ssamstatic inline int eap_peer_method_unload(struct eap_method *method) 78189251Ssam{ 79189251Ssam return 0; 80189251Ssam} 81189251Ssam 82189251Ssam#endif /* CONFIG_DYNAMIC_EAP_METHODS */ 83189251Ssam 84214734Srpaulo/* EAP peer method registration calls for statically linked in methods */ 85214734Srpauloint eap_peer_md5_register(void); 86214734Srpauloint eap_peer_tls_register(void); 87252726Srpauloint eap_peer_unauth_tls_register(void); 88281806Srpauloint eap_peer_wfa_unauth_tls_register(void); 89214734Srpauloint eap_peer_mschapv2_register(void); 90214734Srpauloint eap_peer_peap_register(void); 91214734Srpauloint eap_peer_ttls_register(void); 92214734Srpauloint eap_peer_gtc_register(void); 93214734Srpauloint eap_peer_otp_register(void); 94214734Srpauloint eap_peer_sim_register(void); 95214734Srpauloint eap_peer_leap_register(void); 96214734Srpauloint eap_peer_psk_register(void); 97214734Srpauloint eap_peer_aka_register(void); 98214734Srpauloint eap_peer_aka_prime_register(void); 99214734Srpauloint eap_peer_fast_register(void); 100351611Scyint eap_peer_teap_register(void); 101214734Srpauloint eap_peer_pax_register(void); 102214734Srpauloint eap_peer_sake_register(void); 103214734Srpauloint eap_peer_gpsk_register(void); 104214734Srpauloint eap_peer_wsc_register(void); 105214734Srpauloint eap_peer_ikev2_register(void); 106214734Srpauloint eap_peer_vendor_test_register(void); 107214734Srpauloint eap_peer_tnc_register(void); 108252726Srpauloint eap_peer_pwd_register(void); 109281806Srpauloint eap_peer_eke_register(void); 110214734Srpaulo 111189251Ssam#endif /* EAP_METHODS_H */ 112