Как создать поле отклика в ответ клиента на DIGEST MD5 вызова, I'am в настоящее время с помощью rfc 2831 для справкиDigest ответ md5 поколение
вызова от сервера в соответствии с RFC 2831 примера является:
realm="elwood.innosoft.com",nonce="OA6MG9tEQGm2hh",qop="auth",
algorithm=md5-sess,charset=utf-8
ответа от клиента в соответствии с RFC 2831, например:
charset=utf-8,username="chris",realm="elwood.innosoft.com",
nonce="OA6MG9tEQGm2hh",nc=00000001,cnonce="OA6MHXh6VqTrRk",
digest-uri="imap/elwood.innosoft.com",
response=d388dad90d4bbd760a152321f2143af7,qop=auth
collecte г детали:
- имя пользователя = Крисом
- пароль = секрет
- нонс = OA6MG9tEQGm2hh
- пс-значение = 00000001
- cnonce = OA6MHXh6VqTrRk
- QOP = Auth
- область = elwood.innosoft.com
- digesturi = imap/elwood.innosoft.com
Ответ Я генерации не соответствует, что в документе RFC 2831 например, на странице 19
Составы в RFC 2831
Пусть H (ы) быть 16 октетов хэш MD5 [ RFC 1321] октетной строки s.
Пусть KD (k, s) - H ({k, ":", s}), то есть 16-октетный хэш строки k, двоеточие и строка s.
Пусть HEX (n) является представлением 16-октетного MD5-хэша n в виде строки из 32 шестнадцатеричных цифр (с буквенными символами всегда в нижнем регистре, поскольку MD5 чувствителен к регистру).
В настоящее время i'am с помощью следующей процедуры:
А1 = {Н (Chris: elwood.innosoft.com: тайна), ":", Nonce Значение, ":", cnonce значение }
А1 = {eb5a750053e4d2c34aa84bbc9b0b6ee7: OA6MG9tEQGm2hh: OA6MHXh6VqTrRk}
А2 = { "AUTHENTICATE:", дайджест-URI-значение} 2 = {AUTHENTICATE: imap/elwood.innosoft.ком}
Н (А1) = 54442ff1f394d9d0de1205cef4d9cebe
НЕХ (Н (А1)) = 54442ff1f394d9d0de1205cef4d9cebe
НЕХ (Н (А2)) = 15e3594677e51ade69715d1cb7d207ba
РЕАКЦИЯ = HEX (КД (HEX (H (A1)), {nonce-value, ":" nc-value, ":", cnonce-value, ":", qop-value, ":", HEX (H (A2))}))
RESPONSE = HEX (KD (54442ff1f394d9d0de1205cef4) d9cebe: OA6MG9tEQGm2hh: 00000001: OA6MHXh6VqTrRk: авт: 15e3594677e51ade69715d1cb7d207ba))
отклика, как указано выше процедуры:
26ef1190b643a36e879673066098379c
, но значение ответа в соответствии с RFC является:
d388dad90d4bbd760a152321f2143af7
Таким образом, сгенерированный отклик отличается от приведенного в примере rfc
Какие изменения необходимо выполнить?