X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=hmac-md5.el;h=037b9f6bc02ab7c62c1a04d55092e9e73e78a952;hb=44c6ba5bde5efca67e9e10efec973058674c2c88;hp=9c936d05ee4d877ba678d54cb2ff95a14f4c068c;hpb=cfbeb2aa70dd2506c32ce4a2e1d232731a93701d;p=elisp%2Fflim.git diff --git a/hmac-md5.el b/hmac-md5.el index 9c936d0..037b9f6 100644 --- a/hmac-md5.el +++ b/hmac-md5.el @@ -1,10 +1,8 @@ ;;; hmac-md5.el --- Compute HMAC-MD5. -;; Copyright (C) 1999 Shuhei KOBAYASHI +;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. ;; Author: Shuhei KOBAYASHI -;; Kenichi OKADA -;; Maintainer: Kenichi OKADA ;; Keywords: HMAC, RFC 2104, HMAC-MD5, MD5, KEYED-MD5, CRAM-MD5 ;; This file is part of FLIM (Faithful Library about Internet Message). @@ -21,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to -;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -46,6 +44,7 @@ ;; (encode-hex-string ;; (hmac-md5 "Test With Truncation" (make-string 16 ?\x0c))) ;; => "56461ef2342edc00f9bab995690efd4c" +;; ;; (encode-hex-string ;; (hmac-md5-96 "Test With Truncation" (make-string 16 ?\x0c))) ;; => "56461ef2342edc00f9bab995" @@ -68,27 +67,26 @@ (require 'hex-util) ; (decode-hex-string STRING) (require 'md5) ; expects (md5 STRING) -;; 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))))) +;; To share *.elc files between Emacs w/ and w/o DL patch, +;; this check must be done at load-time. +(cond + ((fboundp 'md5-binary) + ;; do nothing. + ) + ((condition-case nil + ;; `md5' of v21 takes 4th arg CODING (and 5th arg NOERROR). + (md5 "" nil nil 'binary) ; => "d41d8cd98f00b204e9800998ecf8427e" + (wrong-number-of-arguments nil)) + (defun md5-binary (string) + "Return the MD5 of STRING in binary form." + (decode-hex-string (md5 string nil nil 'binary)))) + (t + (defun md5-binary (string) + "Return the MD5 of STRING in binary form." + (decode-hex-string (md5 string))))) (define-hmac-function hmac-md5 md5-binary 64 16) ; => (hmac-md5 TEXT KEY) -;; (define-hmac-function hmac-md5-96 md5-binary 64 16 96) +(define-hmac-function hmac-md5-96 md5-binary 64 16 96) (provide 'hmac-md5)