]> SAFE projects GIT repository - jmp/mailleur/commitdiff
We are able to detect a good DIGEST-MD5 sequence
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sun, 6 Jul 2025 04:53:49 +0000 (00:53 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Sun, 6 Jul 2025 04:53:49 +0000 (00:53 -0400)
lib/lvleml.c
tools/digmd5.c

index 1b49f6a84fc50fed273da0146753a9d691449de6..03f7d30dda636f71e93e19b7dbc82e5d32dacd98 100644 (file)
@@ -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;
index 7955c398db0b9e1208094356c73f8b7b0a0e6c08..7d430efd14db397e50414d76523bf6b2bc2abb7e 100644 (file)
@@ -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