X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fpeap.c;h=243a8bd1344d880bddd0a94768a88c5c6c46ed3c;hb=HEAD;hp=fb9af3e22ebcecd26ffcd102ebfed3294e57a51c;hpb=032020241d270c53dff479a7b0eb7fe487c56a78;p=ppp.git diff --git a/pppd/peap.c b/pppd/peap.c index fb9af3e..243a8bd 100644 --- a/pppd/peap.c +++ b/pppd/peap.c @@ -47,6 +47,10 @@ * https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-peap */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include @@ -56,12 +60,11 @@ #include #include #include -#include -#include "pppd.h" +#include "pppd-private.h" #include "eap.h" #include "tls.h" -#include "chap-new.h" +#include "chap.h" #include "chap_ms.h" #include "mppe.h" #include "peap.h" @@ -85,7 +88,7 @@ struct peap_state { u_char tk[PEAP_TLV_TK_LEN]; u_char nonce[PEAP_TLV_NONCE_LEN]; struct tls_info *info; -#ifdef CHAPMS +#ifdef PPP_WITH_CHAPMS struct chap_digest_type *chap; #endif }; @@ -162,7 +165,7 @@ static void generate_cmk(u_char *ipmk, u_char *tempkey, u_char *nonce, u_char *t BCOPY(nonce, (data_tlv + PEAP_TLV_HEADERLEN), PEAP_TLV_NONCE_LEN); data_tlv[60] = EAPT_PEAP; -#ifdef MPPE +#ifdef PPP_WITH_MPPE mppe_get_send_key(isk, MPPE_MAX_KEY_LEN); mppe_get_recv_key(isk + MPPE_MAX_KEY_LEN, MPPE_MAX_KEY_LEN); #endif @@ -192,7 +195,7 @@ static void verify_compound_mac(struct peap_state *psm, u_char *in_buf) fatal("server's CMK does not match client's CMK, potential MiTM"); } -#ifdef MPPE +#ifdef PPP_WITH_MPPE #define PEAP_MPPE_KEY_LEN 32 static void generate_mppe_keys(u_char *ipmk, int client) @@ -310,7 +313,7 @@ void peap_do_inner_eap(u_char *in_buf, int in_len, eap_state *esp, int id, outp = outp + PEAP_TLV_RESULT_LEN; RAND_bytes(psm->nonce, PEAP_TLV_NONCE_LEN); generate_cmk(psm->ipmk, psm->tk, psm->nonce, outp, 1); -#ifdef MPPE +#ifdef PPP_WITH_MPPE /* set mppe keys */ generate_mppe_keys(psm->ipmk, 1); #endif @@ -337,7 +340,7 @@ void peap_do_inner_eap(u_char *in_buf, int in_len, eap_state *esp, int id, used += 2; break; -#if CHAPMS +#if PPP_WITH_CHAPMS case EAPT_MSCHAPV2: { // Must have at least 4 more bytes to process CHAP header @@ -437,6 +440,7 @@ void peap_do_inner_eap(u_char *in_buf, int in_len, eap_state *esp, int id, } case CHAP_FAILURE: { + u_char status = CHAP_FAILURE; psm->chap->handle_failure(in_buf, in_len); PUTCHAR(EAPT_MSCHAPV2, outp); PUTCHAR(status, outp);