;;; 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)