proposal for new SASL client APIs
Daiki Ueno
deisui @ bug.org
2000年 11月 2日 (木) 00:37:27 JST
上野です。;; ほとんど私信ですが...
新しい SASL client API の実装案として、幾つかの module を
deisui-1_14 枝に commit しました。
[注意事項]
(1) あくまで案なので、あまり期待しないで下さい。
(CRAM-MD5 以外の認証はできません。)
(2) 特に、SLIM の API とは完全に互換性を欠くので注意して下さい。
(3) draft-weltman-java-sasl-03.txt - "The Java SASL Application Program
Interface" を参考にしています。
[利用方法]
主要な API は sasl-find-authenticator と sasl-evaluate-challenge
の二つだけで、ひたすら continuation を渡しながら challenge/response を行います。
例:
(let ((authenticator
(sasl-find-authenticator '("CRAM-MD5")))
(response
(sasl-evaluate-challenge
authenticator principal))) ;initial response
(smtp-send-command process (format "AUTH CRAM-MD5" mechanism))
(catch 'done
(while t
(setq response (smtp-read-response process))
(when (= (car response) 235)
;; the authentication process is finished.
[...])
;; retrieve next response
(setcar (cdr sasl-response) (nth 1 response))
(setq sasl-response
(sasl-evaluate-challenge
authenticator principal sasl-response))
(smtp-send-command process sasl-response))))
;; 詳細は smtp.el の smtp-primitive-auth を見て下さい。
;; P.S.
;; 暗号関連のアルゴリズム全般を JCA (Java Cryptographic Architecture) の
;; ような形(あまり好きではないけれども)に分離したいところなのですが、
;; ご興味のある方はおられますか?
--
Daiki Ueno
More information about the Emacs-mime-ja
mailing list