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