From: Jean-Marc Pigeon (Delson) Date: Mon, 7 Jul 2025 01:24:20 +0000 (-0400) Subject: the disgest-md5 sequence seems to be working fine X-Git-Tag: tag-0.12~10 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=8342c9611ccfedb53b52ccde40265a562342f6f7;p=jmp%2Fmailleur the disgest-md5 sequence seems to be working fine --- diff --git a/lib/lvleml.c b/lib/lvleml.c index c810cd2..1f15ca6 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -494,7 +494,7 @@ while (proceed==true) { switch (phase) { case 0 : //Building the challenge sequence if ((challenge=dig_getchallenge(contact->locname))==(char *)0) { - (void) rou_alert(0,"%s Unable to get challeng sequence (Bug!)",OPEP); + (void) rou_alert(0,"%s Unable to get challenge sequence (Bug!)",OPEP); phase=999; } break; @@ -531,10 +531,38 @@ while (proceed==true) { 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!"); - resp=dig_freeresp(resp); + case 5 : { //comparing result. + char *HAS; + char *rspauth; + char *b64; + + if ((HAS=dig_hashresp(resp,"","xxx"))==(char *)0) { + (void) rou_alert(0,"%s Unable to get the hash rspauth (Bug!)",OPEP); + break; + } + (void) rou_asprintf(&rspauth,"rspauth=%s",HAS); + b64=cnv_setb64(rspauth); + (void) transmit(contact,true,"%d %s",SENDB64,b64); + b64=rou_freestr(b64); + rspauth=rou_freestr(rspauth); + HAS=rou_freestr(HAS); + } + case 6 : { //comparing result. + char *HA0; + + if ((HA0=dig_hashresp(resp,"AUTHENTICATE","xxx"))==(char *)0) { + (void) rou_alert(0,"%s Unable to get the hash response (Bug!)",OPEP); + break; + } + if (strcmp(HA0,resp->response)!=0) { + phase=999; //user NOT autheticated + } + HA0=rou_freestr(HA0); + } + break; + case 7 : //comparing answer + (void) rou_alert(0,"JMPDBG Bingo!"); + (void) rou_asprintf(&decoded,"%s%s%s%s",IOBNULL,resp->username,IOBNULL,"mailleur2"); break; default : //SAFE Guard proceed=false; @@ -542,6 +570,7 @@ while (proceed==true) { } phase++; } +(void) rou_alert(0,"%s JMPDBG decoded=<%s>",OPEP,decoded); return decoded; #undef OPEP diff --git a/tools/digmd5.c b/tools/digmd5.c index 7d430ef..7cf81f8 100644 --- a/tools/digmd5.c +++ b/tools/digmd5.c @@ -50,8 +50,10 @@ while (proceed==true) { resp=dig_parseresp(cleartext); break; case 1 : //checking + /* if (dig_checkresp(resp,argv[0])==true) status=0; + */ break; case 2 : //free memory resp=dig_freeresp(resp);