X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=sasl-digest.el;h=9e061b75b49955cdff6284171f357280f93f4e90;hb=5155cc349be9ef07f765a5976e7b6bb495d68057;hp=1a1eb8ac68c195c6a53b911dd860767f15efade0;hpb=1bc4434dfce1d38a5cdd7eca5c6dc8230f096f1f;p=elisp%2Fflim.git diff --git a/sasl-digest.el b/sasl-digest.el index 1a1eb8a..9e061b7 100644 --- a/sasl-digest.el +++ b/sasl-digest.el @@ -104,7 +104,7 @@ charset algorithm cipher-opts auth-param)." (encode-hex-string (md5-binary (concat "AUTHENTICATE:" digest-uri - (if (string-equal "auth-int" qop) + (if (member qop '("auth-int" "auth-conf")) ":00000000000000000000000000000000"))))))) (fillarray passphrase 0)))) @@ -117,6 +117,9 @@ charset algorithm cipher-opts auth-param)." (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))) @@ -124,6 +127,8 @@ charset algorithm cipher-opts auth-param)." (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 "\"," @@ -131,6 +136,7 @@ charset algorithm cipher-opts auth-param)." "cnonce=\"" cnonce "\"," (format "nc=%08x," nonce-count) "digest-uri=\"" digest-uri "\"," + "qop=" qop "," "response=" (sasl-digest-md5-response-value (sasl-client-name client) @@ -138,8 +144,7 @@ charset algorithm cipher-opts auth-param)." (plist-get plist 'nonce) cnonce nonce-count - (or (sasl-client-property client 'qop) - "auth") + qop digest-uri (plist-get plist 'authzid)))))