Function: sasl-digest-md5-response
sasl-digest-md5-response is a byte-compiled function defined in
sasl-digest.el.gz.
Signature
(sasl-digest-md5-response CLIENT STEP)
Source Code
;; Defined in /usr/src/emacs/lisp/net/sasl-digest.el.gz
(defun sasl-digest-md5-response (client step)
(let* ((plist
(sasl-digest-md5-parse-string (sasl-step-data step)))
(realm
(or (sasl-client-property client 'realm)
(plist-get plist 'realm))) ;need to check
(nonce-count
(or (sasl-client-property client 'nonce-count)
sasl-digest-md5-nonce-count))
(qop
(or (sasl-client-property client 'qop)
"auth"))
(digest-uri
(sasl-digest-md5-digest-uri
(sasl-client-service client)(sasl-client-server client)))
(cnonce
(or (sasl-client-property client 'cnonce)
(sasl-digest-md5-cnonce))))
(sasl-client-set-property client 'nonce-count (1+ nonce-count))
(unless (string= qop "auth")
(sasl-error (format "Unsupported \"qop-value\": %s" qop)))
(concat
"username=\"" (sasl-client-name client) "\","
"realm=\"" realm "\","
"nonce=\"" (plist-get plist 'nonce) "\","
"cnonce=\"" cnonce "\","
(format "nc=%08x," nonce-count)
"digest-uri=\"" digest-uri "\","
"qop=" qop ","
"response="
(sasl-digest-md5-response-value
(sasl-client-name client)
realm
(plist-get plist 'nonce)
cnonce
nonce-count
qop
digest-uri
(plist-get plist 'authzid)))))