On Sat, 22 Apr 2006, [ISO-8859-2] Asia G?siewska wrote:

during digest- response. After reading RFC2831 I just don' t understand this part:

passwd   = *OCTET

  The "username-value", "realm-value" and "passwd" are encoded
  according to the value of the "charset" directive. If "charset=UTF-8"
  is present, and all the characters of either "username-value" or
  "passwd" are in the ISO 8859-1 character set, then it must be
  converted to ISO 8859-1 before being hashed.

What does it mean *OCTET

'*OCTET' - as many octets (bytes, 8 bits) as required for the password.

and should I change everything everytime to iso 8859-1 ?

The whole reference to ISO 8859-1 is to maintain compatibility with HTTP. The way it works is that for the 'username-value' and 'password' fields, you scan through the field looking for any characters that are _not_ in ISO 8859-1 . If there are no characters outside ISO 8859-1 in the field, you send that field in ISO 8859-1, assuming that the value of the 'charset' directive is 'ISO 8859-1' for that specific field.

So, if you have a username of 'ez$' with a password of '¥$¢£??' (Yen Dollar Cents Pounds Francs Euro), the 'username-value' only contains characters in ISO 8859-1, and should be sent in ISO 8859-1. The 'password' contains characters outside of ISO 8859-1, and should be sent in 'UTF-8', _but_ only if the 'charset' directive is already set to 'UTF-8'.

Section 8 of 2831 contains a snippet of C which will do all of this for you.

--
  Bruce Campbell

Reply via email to