# HG changeset patch # User Stefan Monnier # Date 1210256391 0 # Node ID c8f2d1ecfcc5345505204b9c763803730b36d734 # Parent e087ad93ebd155c8b599004879f4aaaa32806cd6 (rfc2104-hexstring-to-bitstring): Rename it back from rfc2104-hexstring-to-byte-list. Return a unibyte string. (rfc2104-hash): Use it. diff -r e087ad93ebd1 -r c8f2d1ecfcc5 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Thu May 08 13:44:16 2008 +0000 +++ b/lisp/gnus/ChangeLog Thu May 08 14:19:51 2008 +0000 @@ -1,3 +1,9 @@ +2008-05-08 Stefan Monnier + + * rfc2104.el (rfc2104-hexstring-to-bitstring): Rename it back from + rfc2104-hexstring-to-byte-list. Return a unibyte string. + (rfc2104-hash): Use it. + 2008-05-08 Juanma Barranquero * gnus-art.el (gnus-article-toggle-truncate-lines): @@ -11,8 +17,8 @@ (gnus-extract-address-component-email): Convenience functions around `gnus-extract-address-components'. - * gnus-registry.el (gnus-registry-split-fancy-with-parent): Use - `gnus-extract-address-component-email' to fix bug of comparing full + * gnus-registry.el (gnus-registry-split-fancy-with-parent): + Use `gnus-extract-address-component-email' to fix bug of comparing full sender name to `user-mail-address'. 2008-05-05 Teodor Zlatanov @@ -696,7 +702,7 @@ 2008-02-01 Kenichi Handa - * rfc2104.el (rfc2104-hexstring-to-byte-list): Renamed from + * rfc2104.el (rfc2104-hexstring-to-byte-list): Rename from rfc2104-hexstring-to-bitstring and changed to return a byte list. (rfc2104-hash): Convert the result of concat to unibyte string. @@ -707,7 +713,7 @@ (gnus-gnus-to-quick-newsrc-format): Insert coding cookie. * mm-util.el (mm-hack-charsets, mm-iso-8859-15-compatible) - (mm-iso-8859-x-to-15-table, mm-iso-8859-x-to-15-region): Deleted. + (mm-iso-8859-x-to-15-table, mm-iso-8859-x-to-15-region): Delete. (mm-find-mime-charset-region): Remove hack-charsets stuff. 2008-01-24 Michael Sperber diff -r e087ad93ebd1 -r c8f2d1ecfcc5 lisp/gnus/rfc2104.el --- a/lisp/gnus/rfc2104.el Thu May 08 13:44:16 2008 +0000 +++ b/lisp/gnus/rfc2104.el Thu May 08 14:19:51 2008 +0000 @@ -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. +;; 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 +;;; 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)