Synch with the flim-1_14 branch.
[elisp/flim.git] / sasl-cram.el
index b1bfa8a..25d1082 100644 (file)
@@ -1,9 +1,9 @@
 ;;; sasl-cram.el --- CRAM-MD5 module for the SASL client framework
 
-;; Copyright (C) 2000 Daiki Ueno
+;; Copyright (C) 2000 Free Software Foundation, Inc.
 
-;; Author: Kenichi OKADA <okada@opaopa.org>
-;;     Daiki Ueno <ueno@unixuser.org>
+;; Author: Daiki Ueno <ueno@unixuser.org>
+;;     Kenichi OKADA <okada@opaopa.org>
 ;; Keywords: SASL, CRAM-MD5
 
 ;; This file is part of FLIM (Faithful Library about Internet Message).
 (require 'sasl)
 (require 'hmac-md5)
 
-(defvar sasl-cram-md5-authenticator nil)
-
-(defconst sasl-cram-md5-continuations
+(defconst sasl-cram-md5-steps
   '(ignore                             ;no initial response
     sasl-cram-md5-response))
 
-(defun sasl-cram-md5-response (principal challenge)
+(defun sasl-cram-md5-response (client step)
   (let ((passphrase
         (sasl-read-passphrase
-         (format "CRAM-MD5 passphrase for %s: " (sasl-principal-name principal)))))
+         (format "CRAM-MD5 passphrase for %s: "
+                 (sasl-client-name client)))))
     (unwind-protect
-       (concat (sasl-principal-name principal) " "
+       (concat (sasl-client-name client) " "
                (encode-hex-string
-                (hmac-md5 (nth 1 challenge) passphrase)))
+                (hmac-md5 (sasl-step-data step) passphrase)))
       (fillarray passphrase 0))))
 
-(put 'sasl-cram 'sasl-authenticator
-     (sasl-make-authenticator "CRAM-MD5" sasl-cram-md5-continuations))
+(put 'sasl-cram 'sasl-mechanism
+     (sasl-make-mechanism "CRAM-MD5" sasl-cram-md5-steps))
 
 (provide 'sasl-cram)