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) {
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);
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;
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