From 8eae3fea3c5efa0a9f77f929196efa1d9d97f034 Mon Sep 17 00:00:00 2001 From: "Jean-Marc Pigeon (Delson)" Date: Wed, 2 Jul 2025 19:52:15 -0400 Subject: [PATCH] Starting to implement CRAM-MD5 exchange --- lib/lvleml.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/lib/lvleml.c b/lib/lvleml.c index 8cdfc4b..8509517 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -349,10 +349,50 @@ return decoded; static char *get_auth_md5(CONTYP *contact,int delay) { +#define OPEP "lvleml.c:get_auth_md5," + char *decoded; +char *seq; +char *b64; +char *line; +int got; +int phase; +_Bool proceed; decoded=(char *)0; +(void) rou_asprintf(&seq,"<%s@%s>",contact->session->sessid,contact->locname); +b64=cnv_setb64(seq); +line=(char *)0; +got=0; +phase=0; +proceed=true; +while (proceed==true) { + switch (phase) { + case 0 : //preparing a string an sending it + (void) transmit(contact,true,"%d %s",SENDB64,b64); + got=tcp_getline(contact->socptr,delay,&line); + break; + case 1 : //extracting B64 + if (got>0) { + char *code; + + code=cnv_getb64(line); + (void) rou_alert(0,"%s JMPDBG md5 Got <%s>",OPEP,code); + code=rou_freestr(code); + line=rou_freestr(line); + } + break; + default : //SAFE Guard + proceed=false; + break; + } + phase++; + } +b64=rou_freestr(b64); +seq=rou_freestr(seq); return decoded; + +#undef OPEP } /* ^L -- 2.47.3