]> SAFE projects GIT repository - jmp/mailleur/commitdiff
the disgest-md5 sequence seems to be working fine
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 7 Jul 2025 01:24:20 +0000 (21:24 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 7 Jul 2025 01:24:20 +0000 (21:24 -0400)
lib/lvleml.c
tools/digmd5.c

index c810cd2301998160d13a5eca8cf522431d7b804d..1f15ca66181f1ab6a3959be6ba9483837879e274 100644 (file)
@@ -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
index 7d430efd14db397e50414d76523bf6b2bc2abb7e..7cf81f8dd3ea6c44f54781c85b7b99d49384d74e 100644 (file)
@@ -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);