1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-01 20:06:00 +00:00

(rfc2104-hexstring-to-bitstring): Rename it back from

rfc2104-hexstring-to-byte-list.  Return a unibyte string.
(rfc2104-hash): Use it.
This commit is contained in:
Stefan Monnier 2008-05-08 14:19:51 +00:00
parent 9c059794a2
commit 4fedcc004b
2 changed files with 42 additions and 39 deletions

View File

@ -1,3 +1,9 @@
2008-05-08 Stefan Monnier <monnier@iro.umontreal.ca>
* 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 <lekktu@gmail.com>
* 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 <tzz@lifelogs.com>
@ -696,7 +702,7 @@
2008-02-01 Kenichi Handa <handa@m17n.org>
* 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 <sperber@deinprogramm.de>

View File

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