code: @Nonnull
    public DigestAuthServerBuilder setAlgorithm (@Nonnull final String sAlgorithm)
    {
      if (!HttpStringHelper.isToken (sAlgorithm))
        throw new IllegalArgumentException ("The passed algorithm is not a valid token: " + sAlgorithm);
  
      m_sAlgorithm = sAlgorithm;
      return this;
    }
docs: A string indicating a pair of algorithms used to produce the digest and a
  checksum. If this is not present it is assumed to be "MD5". If the
  algorithm is not understood, the challenge should be ignored (and a
  different one used, if there is more than one). In this document the string
  obtained by applying the digest algorithm to the data "data" with secret
  "secret" will be denoted by KD(secret, data), and the string obtained by
  applying the checksum algorithm to the data "data" will be denoted H(data).
  The notation unq(X) means the value of the quoted-string X without the
  surrounding quotes.<br>
  For the "MD5" and "MD5-sess" algorithms<br>
  H(data) = MD5(data)<br>
  and<br>
  KD(secret, data) = H(concat(secret, ":", data))<br>
  i.e., the digest is the MD5 of the secret concatenated with a colon
  concatenated with the data. The "MD5-sess" algorithm is intended to allow
  efficient 3rd party authentication servers; for the difference in usage,
  see the description in section 3.2.2.2.
  
  @param sAlgorithm
  Algorithm name
  @return this