%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/ |
Current File : //usr/local/share/emacs/27.2/lisp/md4.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@38 Work buffer of four 32-bit integers. (defvar md4-buffer (make-vector 4 '(0 . 0)) (#$ . 408)) #@164 Return the MD4 hash for a string IN of length N bytes. The returned hash is 16 bytes long. N is required to handle strings containing the character 0. (fn IN N) (defalias 'md4 #[514 "\301\302\303_B\302\304\305\302\"\301\302\306I\210\307\310I\210\311\312I\210\313\314I\210\315V\203C \316\317\302\315#!\262\320!\210\317\315\"\262\315Z\262\202 \302\262W\203\\ HI\210T\262\202F \305I\210\321X\203\225 \322!\262\323\302HI\210\324\307HI\210\325\311HI\210\326\313HI\210\316!\262\320!\210\202\313 \322!\262\327\302HI\210\330\307HI\210\331\311HI\210\332\313HI\210\316!\262\320!\210\316\317\315\"!\262\320!\210\266\322\302H!\322\307H!\322\311H!\322\313H!R\207" [md4-buffer nil 0 8 make-string 128 (26437 . 8961) 1 (61389 . 43913) 2 (39098 . 56574) 3 (4146 . 21622) 64 md4-copy64 substring md4-64 55 md4-pack-int32 56 57 58 59 120 121 122 123] 12 (#$ . 508)]) #@14 (fn X Y Z) (defalias 'md4-F #[771 "\300\301\"\301\302!\"\"\207" [logior logand lognot] 8 (#$ . 1430)]) (put 'md4-F 'byte-optimizer 'byte-compile-inline-expand) #@14 (fn X Y Z) (defalias 'md4-G #[771 "\300\301\"\301\"\301\"#\207" [logior logand] 9 (#$ . 1603)]) (put 'md4-G 'byte-optimizer 'byte-compile-inline-expand) #@14 (fn X Y Z) (defalias 'md4-H #[771 "\300#\207" [logxor] 7 (#$ . 1770)]) (put 'md4-H 'byte-optimizer 'byte-compile-inline-expand) #@18 (fn NAME FUNC) (defalias 'md4-make-step '(macro . #[514 "\300\301\302\303\304\305\306B\307BBBD\310\304\311\312B\313BBBD\314BB\315BBF\207" [defun (a b c d xk s ac) let* h1 + (car a) ((car b) (car c) (car d)) ((car xk) (car ac)) l1 (cdr a) ((cdr b) (cdr c) (cdr d)) ((cdr xk) (cdr ac)) ((h2 (logand 65535 (+ h1 (ash l1 -16)))) (l2 (logand 65535 l1)) (h3 (logand 65535 (if (> s 15) (+ (ash h2 (- s 32)) (ash l2 (- s 16))) (+ (ash h2 s) (ash l2 (- s 16)))))) (l3 (logand 65535 (if (> s 15) (+ (ash l2 (- s 32)) (ash h2 (- s 16))) (+ (ash l2 s) (ash h2 (- s 16))))))) ((cons h3 l3))] 12 (#$ . 1909)])) #@24 (fn A B C D XK S AC) (defalias 'md4-round1 #[1799 "\300@@@@\301\302\"\302\303!\"\"\266\203@@$\300AAAA\301\302\"\302\303!\"\"\266\203AA$\302\304\305\306\"\\\"\302\304\"\302\304\307V\203k \305 \310Z\"\305\n\311Z\"\\\202x \305 \"\305\n\311Z\"\\\"\302\304\307V\203\225 \305\n\310Z\"\305\311Z\"\\\202\243 \305\n\"\305\311Z\"\\\"B\207" [+ logior logand lognot 65535 ash -16 15 32 16] 19 (#$ . 2519)]) #@24 (fn A B C D XK S AC) (defalias 'md4-round2 #[1799 "\300@@@@\301\302\"\302\"\302\"#\266\203@@$\300AAAA\301\302\"\302\"\302\"#\266\203AA$\302\303\304\305\"\\\"\302\303\"\302\303\306V\203m \304 \307Z\"\304\n\310Z\"\\\202z \304 \"\304\n\310Z\"\\\"\302\303\306V\203\227 \304\n\307Z\"\304\310Z\"\\\202\245 \304\n\"\304\310Z\"\\\"B\207" [+ logior logand 65535 ash -16 15 32 16] 19 (#$ . 2982)]) #@24 (fn A B C D XK S AC) (defalias 'md4-round3 #[1799 "\300@@@@\301#\266\203@@$\300AAAA\301#\266\203AA$\302\303\304\305\"\\\"\302\303\"\302\303\306V\203[ \304 \307Z\"\304\n\310Z\"\\\202h \304 \"\304\n\310Z\"\\\"\302\303\306V\203\205 \304\n\307Z\"\304\310Z\"\\\202\223 \304\n\"\304\310Z\"\\\"B\207" [+ logxor logand 65535 ash -16 15 32 16] 19 (#$ . 3440)]) #@57 Return 32-bit sum of 32-bit integers X and Y. (fn X Y) (defalias 'md4-add #[514 "@@\\AA\\\300\301\302\303\"\\\"\300\301\"B\207" [logand 65535 ash -16] 10 (#$ . 3856)]) (put 'md4-add 'byte-optimizer 'byte-compile-inline-expand) #@12 (fn X Y) (defalias 'md4-and #[514 "\300@@\"\300AA\"B\207" [logand] 6 (#$ . 4097)]) (put 'md4-and 'byte-optimizer 'byte-compile-inline-expand) #@152 Calculate MD4 hash of M. M is a 64-bytes chunk, represented as 16 pairs of 32-bit integers. The resulting MD4 value is placed in `md4-buffer'. (fn M) (defalias 'md4-64 #[257 "\301H\302H\303H\304H\305 \301H\304\306&\262\305 \302H\307\310&\262\305 \303H\311\312&\262\305 \304H\313\314&\262\305 \315H\304\316&\262\305 \317H\307\320&\262\305 \321H\311\322&\262\305 \307H\313\323&\262\305 \324H\304\325&\262\305 \326H\307\327&\262\305 \330H\311\331&\262\305 \311H\313\332&\262\305 \333H\304\334&\262\305 \335H\307\336&\262\305 \337H\311\340&\262\305 \341H\313\342&\262\343 \301H\304\344&\262\343 \315H\317\345&\262\343 \324H\326\346&\262\343 \333H\335\347&\262\343 \302H\304\350&\262\343 \317H\317\351&\262\343 \326H\326\352&\262\343 \335H\335\353&\262\343 \303H\304\354&\262\343 \321H\317\355&\262\343 \330H\326\356&\262\343 \337H\335\357&\262\343 \304H\304\360&\262\343 \307H\317\361&\262\343 \311H\326\362&\262\343 \341H\335\363&\262\364 \301H\304\365&\262\364 \324H\326\366&\262\364 \315H\311\367&\262\364 \333H\341\370&\262\364 \303H\304\371&\262\364 \330H\326\372&\262\364 \321H\311\373&\262\364 \337H\341\374&\262\364 \302H\304\375&\262\364 \326H\326\376&\262\364 \317H\311\377&\262\364 \335H\341\201@ &\262\364 \304H\304\201A &\262\364 \311H\326\201B &\262\364 \307H\311\201C &\262\364 \341H\341\201D &\262\301\301H@@\\AA\\\201E \201F \201G \201H \"\\\"\201E \201F \"B\266\204I\210\302\302H@@\\AA\\\201E \201F \201G \201H \"\\\"\201E \201F \"B\266\204I\210\303\303H@@\\AA\\\201E \201F \201G \201H \"\\\"\201E \201F \"B\266\204I\210\304\304H@@\\AA\\\201E \201F \201G \201H \"\\\"\201E \201F \"B\266\204I\207" [md4-buffer 0 1 2 3 md4-round1 (0 . 0) 7 (0 . 0) 11 (0 . 0) 19 (0 . 0) 4 (0 . 0) 5 (0 . 0) 6 (0 . 0) (0 . 0) 8 (0 . 0) 9 (0 . 0) 10 (0 . 0) (0 . 0) 12 (0 . 0) 13 (0 . 0) 14 (0 . 0) 15 (0 . 0) md4-round2 (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) md4-round3 (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) logand 65535 ash -16] 17 (#$ . 4252)]) #@71 Unpack a 64 bytes string into 16 pairs of 32 bits integers. (fn SEQ) (defalias 'md4-copy64 #[257 "\300\301\302\"\302\303\301W\203: \304_\262\305\\H\306\307\\H\310\"\\H\306TH\310\"\\BI\210T\262\202 \207" [make-vector 16 0 nil 4 2 ash 3 8] 11 (#$ . 7051)]) #@70 Pack 16 bits integer in 2 bytes string as little endian. (fn INT16) (defalias 'md4-pack-int16 #[257 "\300\301\302\"\211\302\303\304\"I\210\211\305\306\307\"I\210\211\207" [make-string 2 0 logand 255 1 ash -8] 7 (#$ . 7334)]) #@156 Pack 32 bits integer in a 4 bytes string as little endian. A 32 bits integer is represented as a pair of two 16 bits integers (cons high low). (fn INT32) (defalias 'md4-pack-int32 #[257 "\300\301\302\"@A\302\303\304\"I\210\305\306\307\"I\210\310\303\304\"I\210\311\306\307\"I\210\207" [make-string 4 0 logand 255 1 ash -8 2 3] 9 (#$ . 7569)]) #@12 (fn STR) (defalias 'md4-unpack-int16 #[257 "\211G\300=\203 \301\302H\303\"\304H\\\207\305\306\"\207" [2 ash 1 8 0 error "%s is not 2 bytes long"] 4 (#$ . 7930)]) #@12 (fn STR) (defalias 'md4-unpack-int32 #[257 "\211G\300=\203 \301\302H\303\"\304H\\\301\305H\303\"\306H\\B\207\307\310\"\207" [4 ash 3 8 2 1 0 error "%s is not 4 bytes long"] 5 (#$ . 8104)]) (provide 'md4)