24 #if PPP_SUPPORT && EAP_SUPPORT   
   38 #define EAP_HEADERLEN   4 
   43 #define EAP_RESPONSE    2 
   48 #define EAPT_IDENTITY           1 
   49 #define EAPT_NOTIFICATION       2 
   51 #define EAPT_MD5CHAP            4 
   58 #define EAPT_KEA_VALIDATE       12       
   60 #define EAPT_DEFENDER           14       
   63 #define EAPT_CISCOWIRELESS      17       
   64 #define EAPT_NOKIACARD          18       
   69 #define EAPSRP_CHALLENGE        1        
   72 #define EAPSRP_CVALIDATOR       2        
   73 #define EAPSRP_SVALIDATOR       3        
   75 #define EAPSRP_LWRECHALLENGE    4        
   77 #define SRPVAL_EBIT     0x00000001       
   79 #define SRP_PSEUDO_ID   "pseudo_" 
   80 #define SRP_PSEUDO_LEN  7 
   82 #define MD5_SIGNATURE_SIZE      16 
   83 #define EAP_MIN_CHALLENGE_LENGTH        17 
   84 #define EAP_MAX_CHALLENGE_LENGTH        24 
   85 #define EAP_MIN_MAX_POWER_OF_TWO_CHALLENGE_LENGTH     3    
   88         "Initial", "Pending", "Closed", "Listen", "Identify", \ 
   89         "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth" 
   91 #define eap_client_active(pcb)  ((pcb)->eap.es_client.ea_state == eapListen) 
   93 #define eap_server_active(pcb)  \ 
   94         ((pcb)->eap.es_server.ea_state >= eapIdentify && \ 
   95          (pcb)->eap.es_server.ea_state <= eapMD5Chall) 
  101 enum eap_state_code {
 
  118         char ea_peer[MAXNAMELEN +1];    
 
  123         enum eap_state_code ea_state;
 
  131 #ifndef EAP_MAX_CHALLENGE_LENGTH 
  132 #define EAP_MAX_CHALLENGE_LENGTH        24 
  134 typedef struct eap_state {
 
  135         struct eap_auth es_client;      
 
  137         struct eap_auth es_server;      
 
  141         int es_lwrechallenge;           
 
  145         u_char es_challenge[EAP_MAX_CHALLENGE_LENGTH];
 
  152 #define EAP_DEFTIMEOUT          3        
  153 #define EAP_DEFTRANSMITS        10       
  154 #define EAP_DEFREQTIME          20       
  155 #define EAP_DEFALLOWREQ         20       
  158 void eap_authwithpeer(ppp_pcb *pcb, 
const char *localname);
 
  159 void eap_authpeer(ppp_pcb *pcb, 
const char *localname);
 
  161 extern const struct protent eap_protent;