NTLM authentication module for IMAP
岡田 健一 / Kenichi OKADA
okada @ opaopa.org
2001年 2月 17日 (土) 06:30:17 JST
おかだです。
お世話になります.
In the message <sgvgqaucul @ opaopa.org>
okada @ opaopa.org (岡田 健一 / Kenichi OKADA) wrote:
> とりあえず、slim-1_14 にcommitしました.
> commit しただけで、まだ使える状態ではないです.
> 今からいじってみます.
いじっている途中のものが、
cvs -d ":pserver:anonymous @ cvs.m17n.org:/cvs/root" co -r slim-1_14 flim
にあります.
> また既存のものは修正を加えたくなかったのですが、
> wl-2.4.1/elmo/elmo-imap4.el
> wl-2.4.1/elmo/elmo-util.el
> wl-2.4.1/utils/sasl/lisp/sasl.el
> を変更しています。
本体にコミットすべく、いろいろいじっていたのですが、
いくつか質問があります.
1. sasl-next-step-exists-p が新設されていますが、
sasl-next-step ではだめですか?
2. わたしもところでは、elmo-get-passwd-or-hash でいくつか
問題が起りました.
hash-func が Non-nil の場合、添付1のようなエラーが出ました.
hash-func が nil の場合、添付2のようなエラーが出ました.
;; これは簡単な修正で直りそうです.
一番問題なのは、sasl-ntlmがロードされた後、
sasl-passwd-hash-function は 'ntlm-get-password-hashes と
なりますが、以後 別の認証方式を使おうが全部 hash されてしまう
のではないでしょうか?
3. そもそも、elmo-get-passwd-or-hash の hash 部分は、elmo の担当でしょ
うか? ntlm.el 側で持った方がいいような気がします.
コードを読んだだけで、実際のサーバに対してテストしていないので、
間違っていたらごめんなさいです.
あと、いまさらですが、scram-md5 も使えるようにしてみました.
あいかわらず、わたしのところのqpopperは壊れているようで、
認証に成功しないのですが、どなたか認証に成功したら教えてください.
;; qpopper は SASL の実装には消極的なように感じます.
--
岡田 健一 URLs: mailto:okada @ opaopa.org
http://www.opaopa.org
-------------- next part --------------
Signaling: (args-out-of-range "HOGE" 4)
smb-str-to-key("HOGE")
smbhash([75 71 83 33 64 35 36 37] "HOGE" t)
smbdes-e-p16("HOGE")
smb-passwd-hash("hoge")
ntlm-get-password-hashes("hoge")
apply(ntlm-get-password-hashes "hoge")
(cons (apply hash-func (cons passwd nil)) nil)
(setq entry (cons (apply hash-func ...) nil))
(if hash-func (setq entry (cons ... nil)) (setq entry (elmo-base64-encode-string passwd)))
(if pair (if (stringp ...) (elmo-base64-decode-string entry) (car entry)) (setq passwd (elmo-read-passwd ... t)) (if hash-func (setq entry ...) (setq entry ...)) (setq elmo-passwd-alist (append elmo-passwd-alist ...)) (if elmo-passwd-life-time (run-with-timer elmo-passwd-life-time nil ...)) (car entry))
(let (pair entry passwd) (if (not elmo-passwd-alist) (setq elmo-passwd-alist ...)) (setq pair (assoc key elmo-passwd-alist)) (if pair (if ... ... ...) (setq passwd ...) (if hash-func ... ...) (setq elmo-passwd-alist ...) (if elmo-passwd-life-time ...) (car entry)))
elmo-get-passwd-or-hash("IMAP:kokada/plain @ murasak:143" ntlm-get-password-hashes)
eval((elmo-get-passwd-or-hash "IMAP:kokada/plain @ murasak:143" sasl-passwd-hash-function))
eval-interactive((elmo-get-passwd-or-hash "IMAP:kokada/plain @ murasak:143" sasl-passwd-hash-function))
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
-------------- next part --------------
Signaling: (wrong-type-argument listp "aG9nZQ==")
car("aG9nZQ==")
(if pair (if (stringp ...) (elmo-base64-decode-string entry) (car entry)) (setq passwd (elmo-read-passwd ... t)) (if hash-func (setq entry ...) (setq entry ...)) (setq elmo-passwd-alist (append elmo-passwd-alist ...)) (if elmo-passwd-life-time (run-with-timer elmo-passwd-life-time nil ...)) (car entry))
(let (pair entry passwd) (if (not elmo-passwd-alist) (setq elmo-passwd-alist ...)) (setq pair (assoc key elmo-passwd-alist)) (if pair (if ... ... ...) (setq passwd ...) (if hash-func ... ...) (setq elmo-passwd-alist ...) (if elmo-passwd-life-time ...) (car entry)))
elmo-get-passwd-or-hash("IMAP:kokada/plain @ murasak:143" nil)
eval((elmo-get-passwd-or-hash "IMAP:kokada/plain @ murasak:143" nil))
eval-interactive((elmo-get-passwd-or-hash "IMAP:kokada/plain @ murasak:143" nil))
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
More information about the Emacs-mime-ja
mailing list