W3C home > Mailing lists > Public > www-talk@w3.org > November to December 1996

Digest Problems

From: Paul Hethmon <phethmon@utk.edu>
Date: Sun, 1 Dec 1996 15:47:01 EST
Message-Id: <199611011546.5621117.7@hops.ag.utk.edu>
To: WWW-Talk <www-talk@w3.org>
Hi, 
 
I've been implementing "draft-ietf-http-digest-aa-05.txt" and 
run into a couple of problems. I've done MD5 in things like 
POP3 APOP before, so I don't think that is the problem, but 
when I try to run the example in section 2.4 through my code 
I don't get the right answer. 
 
The code is: 
 
int main(int argc, char *argv[]) 
{ 
  char szNonce[]    = "dcd98b7102dd2f0e8b11d0f600bfb0c093", 
       szRealm[]    = "testrealm@host.com", 
       szUserName[] = "Mufasa", 
       szPass[]     = "CircleOfLife", 
       szUri[]      = "/dir/index.html", 
       szMethod[]   = "GET", 
       szResp[]     = "e966c932a9242554e42c8ee200cec7f6", 
       szBuf[256], szBufr[256], 
       szA1[256], szA1r[256], 
       szA2[256], szA2r[256]; 
 
  sprintf(szA1, "%s:%s:%s", szUserName, szRealm, szPass); 
  MD5Encode(szA1, szA1r); 
 
  sprintf(szA2, "%s:%s", szMethod, szUri); 
  MD5Encode(szA2, szA2r); 
 
  sprintf(szBuf, "%s:%s:%s", szA1r, szNonce, szA2r); 
  MD5Encode(szBuf, szBufr); 
 
  printf("spec = %s\n", szResp); 
  printf("calc = %s\n", szBufr); 
 
  return 0; 
} 
 
void MD5Encode(char *szSrc, char *szResult) 
{ 
  MD5_CTX context; 
  unsigned char digest[16]; 
  unsigned int len = strlen (szSrc); 
  unsigned int i; 
  char szTmp[32]; 
 
  MD5Init (&context); 
  MD5Update (&context, (unsigned char *)szSrc, len); 
  MD5Final (digest, &context); 
  memset(szResult, 0, 256); 
 
  for (i = 0; i < 16; i++) 
    { 
      sprintf(szTmp, "%02x", digest[i]); 
      strcat(szResult, szTmp); 
    } 
} 
 
I've just hardcoded the values from the spec in for right now 
and what I get out is: 
 
spec = e966c932a9242554e42c8ee200cec7f6 
calc = 1949323746fe6a43ef61f9606e7febea 
 
The MD5 code is straight from the RFC. Is there something 
I'm missing here? I've looked through the Apache code for it 
and it seems to perform the same function. 
 
Any help appreciated. 
 
thanks, 
 
Paul 
 
 


Paul Hethmon 
phethmon@utk.edu 
phethmon@hethmon.com 
---------------------------------------------------------- 
Inet.Mail for OS/2 -- Internet Mail Server 
---------------------------------------------------------- 
www.hethmon.com -- ftp.hethmon.com 
----------------------------------------------------------
Received on Sunday, 1 December 1996 15:45:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 27 October 2010 18:14:20 GMT