class HTTPClient::DigestAuth

def parse_challenge_param(param_str)

def parse_challenge_param(param_str)
  param = {}
  param_str.scan(/\s*([^\,]+(?:\\.[^\,]*)*)/).each do |str|
    key, value = str[0].scan(/\A([^=]+)=(.*)\z/)[0]
    if /\A"(.*)"\z/ =~ value
      value = $1.gsub(/\\(.)/, '\1')
    end
    param[key] = value
  end
  param
end