code: func validateChallengeParameters(challengeParams map[string]string) error {
  	var errString string
  
  	realm, exists := challengeParams["realm"]
  	if !exists || len(realm) == 0 {
  		errString += "missing or invalid realm. "
  	}
  
  	nonce, exists := challengeParams["nonce"]
  	if !exists || len(nonce) == 0 {
  		errString += "missing or invalid nonce. "
  	}
  
  	qop, exists := challengeParams["qop"]
  	if !exists || qop != "auth" {
  		errString += "missing, invalid or unsupported qop. "
  	}
  
  	charset, exists := challengeParams["charset"]
  	if !exists || charset != "utf-8" {
  		errString += "missing, invalid or unsupported charset. "
  	}
  
  	algorithm, exists := challengeParams["algorithm"]
  	if !exists || algorithm != "md5-sess" {
  		errString += "missing, invalid or unsupported algorithm. "
  	}
  
  	if len(errString) > 0 {
  		return errors.New(errString)
  	}
  
  	return nil
  }
docs: //we only support a very specific digest-md5 mechanism for the moment
  //multiple realm, qop not supported