File squid-beta-3.0-md5.patch of Package squid-beta

--- lib/rfc2617.c.orig	2003-11-07 18:23:03.000000000 +0100
+++ lib/rfc2617.c	2006-02-08 20:07:41.000000000 +0100
@@ -108,25 +108,26 @@
 )
 {
     MD5_CTX Md5Ctx;
+    unsigned char colon[]=":";
 
     if (pszUserName) {
 	MD5Init(&Md5Ctx);
-	MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName));
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm));
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword));
+	MD5Update(&Md5Ctx, (unsigned char*)pszUserName, strlen(pszUserName));
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszRealm, strlen(pszRealm));
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszPassword, strlen(pszPassword));
 	MD5Final((unsigned char *) HA1, &Md5Ctx);
     }
     if (strcasecmp(pszAlg, "md5-sess") == 0) {
 	HASHHEX HA1Hex;
 	CvtHex(HA1, HA1Hex);	/* RFC2617 errata */
 	MD5Init(&Md5Ctx);
-	MD5Update(&Md5Ctx, HA1Hex, HASHHEXLEN);
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
+	MD5Update(&Md5Ctx, (unsigned char*)HA1Hex, HASHHEXLEN);
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszNonce, strlen(pszNonce));
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszCNonce, strlen(pszCNonce));
 	MD5Final((unsigned char *) HA1, &Md5Ctx);
     }
     CvtHex(HA1, SessionKey);
@@ -150,16 +151,17 @@
     HASH HA2;
     HASH RespHash;
     HASHHEX HA2Hex;
+    unsigned char colon[] = ":";
 
     /*  calculate H(A2)
      */
     MD5Init(&Md5Ctx);
-    MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod));
-    MD5Update(&Md5Ctx, ":", 1);
-    MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri));
+    MD5Update(&Md5Ctx, (unsigned char*)pszMethod, strlen(pszMethod));
+    MD5Update(&Md5Ctx, colon, 1);
+    MD5Update(&Md5Ctx, (unsigned char*)pszDigestUri, strlen(pszDigestUri));
     if (strcasecmp(pszQop, "auth-int") == 0) {
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, HEntity, HASHHEXLEN);
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)HEntity, HASHHEXLEN);
     }
     MD5Final((unsigned char *) HA2, &Md5Ctx);
     CvtHex(HA2, HA2Hex);
@@ -167,19 +169,19 @@
     /* calculate response
      */
     MD5Init(&Md5Ctx);
-    MD5Update(&Md5Ctx, HA1, HASHHEXLEN);
-    MD5Update(&Md5Ctx, ":", 1);
-    MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce));
-    MD5Update(&Md5Ctx, ":", 1);
+    MD5Update(&Md5Ctx, (unsigned char*)HA1, HASHHEXLEN);
+    MD5Update(&Md5Ctx, colon, 1);
+    MD5Update(&Md5Ctx, (unsigned char*)pszNonce, strlen(pszNonce));
+    MD5Update(&Md5Ctx, colon, 1);
     if (*pszQop) {
-	MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount));
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce));
-	MD5Update(&Md5Ctx, ":", 1);
-	MD5Update(&Md5Ctx, pszQop, strlen(pszQop));
-	MD5Update(&Md5Ctx, ":", 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszNonceCount, strlen(pszNonceCount));
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszCNonce, strlen(pszCNonce));
+	MD5Update(&Md5Ctx, colon, 1);
+	MD5Update(&Md5Ctx, (unsigned char*)pszQop, strlen(pszQop));
+	MD5Update(&Md5Ctx, colon, 1);
     }
-    MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN);
+    MD5Update(&Md5Ctx, (unsigned char*)HA2Hex, HASHHEXLEN);
     MD5Final((unsigned char *) RespHash, &Md5Ctx);
     CvtHex(RespHash, Response);
 }