;;; hmac-md5.el --- Compute HMAC-MD5.
-;; Copyright (C) 1999 Shuhei KOBAYASHI
+;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
-;; Kenichi OKADA <okada@opaopa.org>
-;; Maintainer: Kenichi OKADA <okada@opaopa.org>
;; Keywords: HMAC, RFC 2104, HMAC-MD5, MD5, KEYED-MD5, CRAM-MD5
;; This file is part of FLIM (Faithful Library about Internet Message).
(eval-when-compile (require 'hmac-def))
(require 'hex-util) ; (decode-hex-string STRING)
-(require 'md5) ; expects (md5 STRING)
+(require 'md5) ; We have a built-in `md5'.
-;; We cannot define this function in md5.el because recent XEmacs provides
-;; built-in md5 function and provides feature 'md5 at startup.
-(if (and (featurep 'xemacs)
- (fboundp 'md5)
- (subrp (symbol-function 'md5))
- (condition-case nil
- ;; `md5' of XEmacs 21 takes 4th arg CODING (and 5th arg NOERROR).
- (md5 "" nil nil 'binary) ; => "fb5d2156096fa1f254352f3cc3fada7e"
- (error nil)))
- ;; XEmacs 21.
- (defun md5-binary (string &optional start end)
- "Return the MD5 of STRING in binary form."
- (decode-hex-string (md5 string start end 'binary)))
- ;; not XEmacs 21 and not DL.
- (if (not (fboundp 'md5-binary))
- (defun md5-binary (string)
- "Return the MD5 of STRING in binary form."
- (decode-hex-string (md5 string)))))
+(defun md5-binary (string &optional start end)
+ "Return the MD5 of STRING in binary form."
+ (decode-hex-string (md5 string start end 'binary)))
(define-hmac-function hmac-md5 md5-binary 64 16) ; => (hmac-md5 TEXT KEY)
;; (define-hmac-function hmac-md5-96 md5-binary 64 16 96)