From: okada Date: Mon, 13 Dec 1999 01:53:15 +0000 (+0000) Subject: * unique-id.el: New file. X-Git-Tag: slim-1_13_5~22 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3014234ad49617dc198c097e2c6e9a0b7d32580c;p=elisp%2Fflim.git * unique-id.el: New file. * scram-md5.el (TopLevel): Require `unique-id'. (scram-make-unique-nonce): Use `unique-id'. * sasl.el (sasl-number-base36): Delete. (sasl-unique-id-char): Delete. (sasl-unique-id): Delete. --- diff --git a/ChangeLog b/ChangeLog index 5223319..227af99 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 1999-12-13 Kenichi OKADA + * unique-id.el: New file. + * scram-md5.el (TopLevel): Require `unique-id'. + (scram-make-unique-nonce): Use `unique-id'. + * sasl.el (sasl-number-base36): Delete. + (sasl-unique-id-char): Delete. + (sasl-unique-id): Delete. + +1999-12-13 Kenichi OKADA + * FLIM-ELS (flim-modules): Add `digest-md5'. 1999-12-13 Kenichi OKADA diff --git a/sasl.el b/sasl.el index e08601f..66f278e 100644 --- a/sasl.el +++ b/sasl.el @@ -112,57 +112,6 @@ (scram-md5-parse-server-msg-1 server-msg-1)) salted-pass))) -;;; unique-ID -(defun sasl-number-base36 (num len) - (if (if (< len 0) - (<= num 0) - (= len 0)) - "" - (concat (sasl-number-base36 (/ num 36) (1- len)) - (char-to-string (aref "zyxwvutsrqponmlkjihgfedcba9876543210" - (% num 36)))))) - -(defvar sasl-unique-id-char nil) - -(defun sasl-unique-id () - ;; Don't use microseconds from (current-time), they may be unsupported. - ;; Instead we use this randomly inited counter. - (setq sasl-unique-id-char - (% (1+ (or sasl-unique-id-char (logand (random t) (1- (lsh 1 20))))) - ;; (current-time) returns 16-bit ints, - ;; and 2^16*25 just fits into 4 digits i base 36. - (* 25 25))) - (let ((tm (static-if (fboundp 'current-time) - (current-time) - (let* ((cts (split-string (current-time-string) "[ :]")) - (m (cdr (assoc (nth 1 cts) - '(("Jan" . "01") ("Feb" . "02") - ("Mar" . "03") ("Apr" . "04") - ("May" . "05") ("Jun" . "06") - ("Jul" . "07") ("Aug" . "08") - ("Sep" . "09") ("Oct" . "10") - ("Nov" . "11") ("Dec" . "12")))))) - (list (string-to-int (concat (nth 6 cts) m - (substring (nth 2 cts) 0 1))) - (string-to-int (concat (substring (nth 2 cts) 1) - (nth 4 cts) (nth 5 cts) - (nth 6 cts)))))))) - (concat - (if (memq system-type '(ms-dos emx vax-vms)) - (let ((user (downcase (user-login-name)))) - (while (string-match "[^a-z0-9_]" user) - (aset user (match-beginning 0) ?_)) - user) - (sasl-number-base36 (user-uid) -1)) - (sasl-number-base36 (+ (car tm) - (lsh (% sasl-unique-id-char 25) 16)) 4) - (sasl-number-base36 (+ (nth 1 tm) - (lsh (/ sasl-unique-id-char 25) 16)) 4) - ;; Append the name of the message interface, because while the - ;; generated ID is unique to this newsreader, other newsreaders - ;; might otherwise generate the same ID via another algorithm. - ".sasl"))) - (provide 'sasl) ;;; sasl.el ends here diff --git a/scram-md5.el b/scram-md5.el index d9f399c..6891600 100644 --- a/scram-md5.el +++ b/scram-md5.el @@ -39,7 +39,8 @@ ;;; Code: -(require 'hmac-md5) ; (hmac-md5 TEXT KEY) +(require 'hmac-md5) +(require 'unique-id) (defmacro scram-security-info-no-security-layer (security-info) `(eq (logand (aref ,security-info 0) 1) 1)) @@ -71,7 +72,7 @@ (let (id) (unwind-protect (concat "<" - (setq id (sasl-unique-id)) + (setq id (unique-id-m ".sasl")) "@" (system-name) ">") (fillarray id 0))))