From 47444f5feaa9f3097ffb8e7d1c0bff5cffb41c36 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Sun, 6 Jul 2025 00:53:49 -0400 Subject: [PATCH] We are able to detect a good DIGEST-MD5 sequence --- lib/lvleml.c | 19 ++++++++++++------- tools/digmd5.c | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/lvleml.c b/lib/lvleml.c index 1b49f6a..03f7d30 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -479,12 +479,14 @@ static char *get_auth_digest_md5(CONTYP *contact,int delay) char *decoded; char challenge[300]; char answer[300]; +RSPTYP *resp; int phase; _Bool proceed; decoded=(char *)0; (void) memset(challenge,'\000',sizeof(challenge)); (void) memset(answer,'\000',sizeof(answer)); +resp=(RSPTYP *)0; phase=0; proceed=true; while (proceed==true) { @@ -504,7 +506,6 @@ while (proceed==true) { case 1 : { //sending challenge to remote char *b64; - (void) rou_alert(0,"JMPDBG CHAL <%s>",challenge); b64=cnv_setb64(challenge); (void) transmit(contact,true,"%d %s",SENDB64,b64); b64=rou_freestr(b64); @@ -519,16 +520,20 @@ while (proceed==true) { res=cnv_getb64(line); (void) snprintf(answer,sizeof(answer),"%s",res); (void) rou_alert(0,"JMPDBG Got <%s>",answer); - { - unsigned char *seq=(unsigned char *)"webmaster@example.com:devel5.safe.ca:xxx"; - (void) dig_hashmd5(seq); - } - res=rou_freestr(res); - line=rou_freestr(line); } if (strlen(answer)==0) phase=999; //no need to go further } + case 3 : //Parsing the answer + if ((resp=dig_parseresp(answer))==(RSPTYP *)0) + phase=999; //Unable to parse answer + break; + case 4 : //getting the user name and password + break; + case 5 : //comparing answer + if (dig_checkresp(resp,"xxx")==true) + (void) rou_alert(0,"JMPDBG Bingo!"); + break; default : //SAFE Guard proceed=false; break; diff --git a/tools/digmd5.c b/tools/digmd5.c index 7955c39..7d430ef 100644 --- a/tools/digmd5.c +++ b/tools/digmd5.c @@ -46,7 +46,7 @@ proceed=(cleartext!=(char *)0); while (proceed==true) { switch (phase) { case 0 : //extracting data - (void) rou_alert(0,"cleartext=<%s>",cleartext); + (void) rou_alert(1,"cleartext=<%s>",cleartext); resp=dig_parseresp(cleartext); break; case 1 : //checking -- 2.47.3