こんばんは、sheepman です。

webrick/httpauth/digestauth.rb では digest が定義されていて所々で使われています。
RFC 2617 3.1.3 を読むと使われる MD5 チェックサムの返り値には全て hex が使われるべき
なので digest は必要ないと思います。 hexdigest だけで十分だと思います。

Apache の mod_auth_digest も同様の動作のようです。

Index: httpauth/digestauth.rb
===================================================================
RCS file: /src/ruby/lib/webrick/httpauth/digestauth.rb,v
retrieving revision 1.3
diff -u -r1.3 digestauth.rb
--- httpauth/digestauth.rb      18 Dec 2004 06:16:01 -0000      1.3
+++ httpauth/digestauth.rb      1 Jan 2005 09:33:05 -0000
@@ -174,11 +174,11 @@

         if auth_req['qop'] == "auth" || auth_req['qop'] == nil
           ha2 = hexdigest(req.request_method, auth_req['uri'])
-          ha2_res = digest("", auth_req['uri'])
+          ha2_res = hexdigest("", auth_req['uri'])
         elsif auth_req['qop'] == "auth-int"
           ha2 = hexdigest(req.request_method, auth_req['uri'],
                           hexdigest(req.body))
-          ha2_res = digest("", auth_req['uri'], hexdigest(req.body))
+          ha2_res = hexdigest("", auth_req['uri'], hexdigest(req.body))
         end

         if auth_req['qop'] == "auth" || auth_req['qop'] == "auth-int"
@@ -331,9 +331,6 @@
         @h.hexdigest(args.join(":"))
       end

-      def digest(*args)
-        @h.digest(args.join(":"))
-      end
     end

     class ProxyDigestAuth < DigestAuth

-- 
sheepman / TAMURA Takashi
sheepman / tcn.zaq.ne.jp http://sheepman.parfait.ne.jp/