Documentation

Documentation

Includes

netif/ppp/ppp_opts.h

#include "netif/ppp/ppp_opts.h"
#include "netif/ppp/ppp_opts.h"

ppp.h

#include "ppp.h"
#include "ppp.h"

Macros

Marco PPP_EAP_H

#define PPP_EAP_H


      

Marco EAP_HEADERLEN

#define EAP_HEADERLEN 4
/*
 * Packet header = Code, id, length.
 */

Marco EAP_REQUEST

#define EAP_REQUEST 1
/* EAP message codes. */

Marco EAP_RESPONSE

#define EAP_RESPONSE 2


      

Marco EAP_SUCCESS

#define EAP_SUCCESS 3


      

Marco EAP_FAILURE

#define EAP_FAILURE 4


      

Marco EAPT_IDENTITY

#define EAPT_IDENTITY	1
/* EAP types */

Marco EAPT_NOTIFICATION

#define EAPT_NOTIFICATION 2


      

Marco EAPT_NAK

#define EAPT_NAK	3 /* (response only) */


      

Marco EAPT_MD5CHAP

#define EAPT_MD5CHAP	4


      

Marco EAPT_OTP

#define EAPT_OTP	5 /* One-Time Password; RFC 1938 */


      

Marco EAPT_TOKEN

#define EAPT_TOKEN	6 /* Generic Token Card */


      

Marco EAPT_RSA

#define EAPT_RSA	9 /* RSA Public Key Authentication */
/* 7 and 8 are unassigned. */

Marco EAPT_DSS

#define EAPT_DSS	10 /* DSS Unilateral */


      

Marco EAPT_KEA

#define EAPT_KEA	11 /* KEA */


      

Marco EAPT_KEA_VALIDATE

#define EAPT_KEA_VALIDATE 12 /* KEA-VALIDATE	*/


      

Marco EAPT_TLS

#define EAPT_TLS	13 /* EAP-TLS */


      

Marco EAPT_DEFENDER

#define EAPT_DEFENDER	14 /* Defender Token (AXENT) */


      

Marco EAPT_W2K

#define EAPT_W2K	15 /* Windows 2000 EAP */


      

Marco EAPT_ARCOT

#define EAPT_ARCOT	16 /* Arcot Systems */


      

Marco EAPT_CISCOWIRELESS

#define EAPT_CISCOWIRELESS 17 /* Cisco Wireless */


      

Marco EAPT_NOKIACARD

#define EAPT_NOKIACARD	18 /* Nokia IP smart card */


      

Marco EAPT_SRP

#define EAPT_SRP	19 /* Secure Remote Password */


      

Marco EAPSRP_CHALLENGE

#define EAPSRP_CHALLENGE 1 /* Request 1 - Challenge */
/* EAP SRP-SHA1 Subtypes */

Marco EAPSRP_CKEY

#define EAPSRP_CKEY	1 /* Response 1 - Client Key */


      

Marco EAPSRP_SKEY

#define EAPSRP_SKEY	2 /* Request 2 - Server Key */


      

Marco EAPSRP_CVALIDATOR

#define EAPSRP_CVALIDATOR 2 /* Response 2 - Client Validator */


      

Marco EAPSRP_SVALIDATOR

#define EAPSRP_SVALIDATOR 3 /* Request 3 - Server Validator */


      

Marco EAPSRP_ACK

#define EAPSRP_ACK	3 /* Response 3 - final ack */


      

Marco EAPSRP_LWRECHALLENGE

#define EAPSRP_LWRECHALLENGE 4 /* Req/resp 4 - Lightweight rechal */


      

Marco SRPVAL_EBIT

#define SRPVAL_EBIT 1 /* Use shared key for ECP */


      

Marco SRP_PSEUDO_ID

#define SRP_PSEUDO_ID "pseudo_"


      

Marco SRP_PSEUDO_LEN

#define SRP_PSEUDO_LEN 7


      

Marco MD5_SIGNATURE_SIZE

#define MD5_SIGNATURE_SIZE 16


      

Marco EAP_MIN_CHALLENGE_LENGTH

#define EAP_MIN_CHALLENGE_LENGTH 17


      

Marco EAP_MAX_CHALLENGE_LENGTH

#define EAP_MAX_CHALLENGE_LENGTH 24


      

Marco EAP_MIN_MAX_POWER_OF_TWO_CHALLENGE_LENGTH

#define EAP_MIN_MAX_POWER_OF_TWO_CHALLENGE_LENGTH    3  /* 2^3-1 = 7, 17+7 = 24 */


      

Marco EAP_STATES

#define EAP_STATES \
 "Initial", "Pending", "Closed", "Listen", "Identify", \
 "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth"


      

Marco eap_client_active(pcb)

#define eap_client_active(pcb) ((pcb)->eap.es_client.ea_state == eapListen)


      

Marco eap_server_active(pcb)

#define eap_server_active(pcb) \
 ((pcb)->eap.es_server.ea_state >= eapIdentify && \
 (pcb)->eap.es_server.ea_state <= eapMD5Chall)


      

Marco EAP_MAX_CHALLENGE_LENGTH

#define EAP_MAX_CHALLENGE_LENGTH 24


      

Marco EAP_DEFTIMEOUT

#define EAP_DEFTIMEOUT	3 /* Timeout (seconds) for rexmit */


      

Marco EAP_DEFTRANSMITS

#define EAP_DEFTRANSMITS 10 /* max # times to transmit */


      

Marco EAP_DEFREQTIME

#define EAP_DEFREQTIME	20 /* Time to wait for peer request */


      

Marco EAP_DEFALLOWREQ

#define EAP_DEFALLOWREQ	20 /* max # times to accept requests */

      

Functions

Func eap_authwithpeer

void eap_authwithpeer(ppp_pcb *pcb, const char *localname);


      

Func eap_authpeer

void eap_authpeer(ppp_pcb *pcb, const char *localname);

      

Vars

Consts

Types

Typedefs

Typedef eap_state;

typedef struct eap_state {
 struct eap_auth es_client; /* Client (authenticatee) data */
#if PPP_SERVER
 struct eap_auth es_server; /* Server (authenticator) data */
#endif /* PPP_SERVER */
 int es_savedtime;	/* Saved timeout */
 int es_rechallenge;	/* EAP rechallenge interval */
 int es_lwrechallenge;	/* SRP lightweight rechallenge inter */
 u8_t es_usepseudo;	/* Use SRP Pseudonym if offered one */
 int es_usedpseudo;	/* Set if we already sent PN */
 int es_challen;		/* Length of challenge string */
 u_char es_challenge[EAP_MAX_CHALLENGE_LENGTH];
} eap_state;