[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gnus/rfc2104.el,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gnus/rfc2104.el,v |
Date: |
Thu, 08 May 2008 14:19:54 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 08/05/08 14:19:52
Index: rfc2104.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/gnus/rfc2104.el,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- rfc2104.el 6 May 2008 03:55:09 -0000 1.15
+++ rfc2104.el 8 May 2008 14:19:51 -0000 1.16
@@ -23,35 +23,35 @@
;;; Commentary:
-;;; This is a quick'n'dirty, low performance, implementation of RFC2104.
-;;;
-;;; Example:
-;;;
-;;; (require 'md5)
-;;; (rfc2104-hash 'md5 64 16 "Jefe" "what do ya want for nothing?")
-;;; "750c783e6ab0b503eaa86e310a5db738"
-;;;
-;;; (require 'sha-1)
-;;; (rfc2104-hash 'sha1-encode 64 20 "Jefe" "what do ya want for nothing?")
-;;; "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79"
-;;;
-;;; 64 is block length of hash function (64 for MD5 and SHA), 16 is
-;;; resulting hash length (16 for MD5, 20 for SHA).
-;;;
-;;; Tested with Emacs 20.2 and XEmacs 20.3.
-;;;
-;;; Test case reference: RFC 2202.
-
-;;; Release history:
-;;;
-;;; 1998-08-16 initial release posted to gnu.emacs.sources
-;;; 1998-08-17 use append instead of char-list-to-string
-;;; 1998-08-26 don't require hexl
-;;; 1998-09-25 renamed from hmac.el to rfc2104.el, also renamed functions
-;;; 1999-10-23 included in pgnus
-;;; 2000-08-15 `rfc2104-hexstring-to-bitstring'
-;;; 2000-05-12 added sha-1 example, added test case reference
-;;; 2003-11-13 change rfc2104-hexstring-to-bitstring to ...-byte-list
+;; This is a quick'n'dirty, low performance, implementation of RFC2104.
+;;
+;; Example:
+;;
+;; (require 'md5)
+;; (rfc2104-hash 'md5 64 16 "Jefe" "what do ya want for nothing?")
+;; "750c783e6ab0b503eaa86e310a5db738"
+;;
+;; (require 'sha-1)
+;; (rfc2104-hash 'sha1-encode 64 20 "Jefe" "what do ya want for nothing?")
+;; "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79"
+;;
+;; 64 is block length of hash function (64 for MD5 and SHA), 16 is
+;; resulting hash length (16 for MD5, 20 for SHA).
+;;
+;; Tested with Emacs 20.2 and XEmacs 20.3.
+;;
+;; Test case reference: RFC 2202.
+
+;;; History:
+
+;; 1998-08-16 initial release posted to gnu.emacs.sources
+;; 1998-08-17 use append instead of char-list-to-string
+;; 1998-08-26 don't require hexl
+;; 1998-09-25 renamed from hmac.el to rfc2104.el, also renamed functions
+;; 1999-10-23 included in pgnus
+;; 2000-08-15 `rfc2104-hexstring-to-bitstring'
+;; 2000-05-12 added sha-1 example, added test case reference
+;; 2003-11-13 change rfc2104-hexstring-to-bitstring to ...-byte-list
;;; Code:
@@ -87,12 +87,12 @@
(rfc2104-hex-to-int (reverse (append str nil))))
0))
-(defun rfc2104-hexstring-to-byte-list (str)
+(defun rfc2104-hexstring-to-bitstring (str)
(let (out)
(while (< 0 (length str))
(push (rfc2104-hex-to-int (substring str -2)) out)
(setq str (substring str 0 -2)))
- out))
+ (apply (if (fboundp 'unibyte-string) 'unibyte-string 'string) out)))
(defun rfc2104-hash (hash block-length hash-length key text)
(let* (;; if key is longer than B, reset it to HASH(key)
@@ -109,12 +109,9 @@
(setq k_ipad (mapcar (lambda (c) (logxor c rfc2104-ipad)) k_ipad))
(setq k_opad (mapcar (lambda (c) (logxor c rfc2104-opad)) k_opad))
;; perform outer hash
- (funcall hash
- (encode-coding-string
- (concat k_opad (rfc2104-hexstring-to-byte-list
+ (funcall hash (concat k_opad (rfc2104-hexstring-to-bitstring
;; perform inner hash
- (funcall hash (concat k_ipad text))))
- 'iso-latin-1))))
+ (funcall hash (concat k_ipad text)))))))
(provide 'rfc2104)