[t-gnus] Don't work cram-md5 under xemacs (Re: SMTP AUTH)

Hirokazu FUKUI fukui @ atesoft.advantest.co.jp
1999年 11月 17日 (水) 18:15:46 JST


福居です。

In [emacs-mime-ja : No.00087] 
	Shuhei KOBAYASHI <shuhei @ aqua.ocn.ne.jp> wrote:
> >>>>> In <14380.45800.685611.79026N @ vlsi.kuee.kyoto-u.ac.jp>,
> >>>>> okada @ opaopa.org (岡田 健一 /  Kenichi OKADA) wrote:
> > CRAM-MD5で認証を行なう時に Shuhei KOBAYASHI先生作のhmac-md5 packageを
> > 使っているんですが,XEmacsで動かないようです.
> > http://lists.airs.net/wl/archive/199910/msg00150.html

> ふむふむ, XEmacs の md5 の CODING 引数はこんな時に必要なんですね.

t-gnus の nnimap でも、 xemacs を使っていると 同じ原因で、
CRAM-MD5 を使った認証に失敗します。
;; 上の記事のおかげで簡単に原因が分かりました :-)

とりあえず、私は .emacs に以下のように書いて、この問題を回避して
います。
-------------- next part --------------
(when (and (fboundp 'md5)
           (subrp (symbol-function 'md5)))
  (defun md5-binary (object &optional start end)
    (md5 object start end 'binary))
  (eval-after-load "imap"
    '(defun imap-cram-md5-auth (buffer)
       "Login to server using the AUTH CRAM-MD5 method."
       (imap-interactive-login
	buffer
	(lambda (user passwd)
	  (imap-ok-p
	   (imap-send-command-wait
	    (list
	     "AUTHENTICATE CRAM-MD5"
	     (lambda (challenge)
	       (let* ((decoded (base64-decode-string challenge))
		      (hash (rfc2104-hash 'md5-binary 64 16 passwd decoded))
		      (response (concat user " " hash))
		      (encoded (base64-encode-string response)))
		 encoded))))))))))
-------------- next part --------------
-- 
福居宏和 (Hirokazu FUKUI)  E-mail:fukui @ atesoft.advantest.co.jp


More information about the Emacs-mime-ja mailing list