(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "25-Feb-93 13:31:51" ("compiled on " |{PELE:MV:ENVOS}LIBRARY>DES.;2|) "19-Feb-93 17:03:08" bcompl'd in "Medley 19-Feb-93 ..." dated "19-Feb-93 18:20:42") (FILECREATED "11-Jun-90 15:00:11" {DSK}local>lde>lispcore>library>DES.;2 33092 changes to%: (VARS DESCOMS) previous date%: "24-Jul-87 18:29:27" {DSK}local>lde>lispcore>library>DES.;1) DES.BREAKOUT.BLOCKS :D8 (I 0 L) 4@@ d[KKKhXI HZYJ YH(45 LAST) NIL () DES.MAKE.BLOCKS :D8 (I 0 L) N@@Hl [@@b$K@@bK@@bK@@bKI JhYJ&(13 \ALLOCBLOCK) NIL () DES.ECB.ENCRYPT :D8 (P 0 IKLST I 1 DAT I 0 KEY) @ HAg (20 DES.CRYPT.BLOCK 5 DES.MAKE.INTERNAL.KEYS) (15 ENCRYPT) () DES.ECB.DECRYPT :D8 (P 0 IKLST I 1 DAT I 0 KEY) @ HAg (20 DES.CRYPT.BLOCK 5 DES.MAKE.INTERNAL.KEYS) (15 DECRYPT) () DES.CBC.ENCRYPT :D8 (I 0 L) o (9 ERROR) NIL ( 4 "Not Implemented!") DES.CBC.DECRYPT :D8 (P 2 I P 0 IKLST I 2 N I 1 L I 0 KEY) f@ HAg BklB2IJK AJk HAJ g LMh\JmԺM&(79 REC64.XOR 74 DES.CRYPT.BLOCK 63 NTH 54 NTH 43 DREVERSE 21 DES.CRYPT.BLOCK 5 DES.MAKE.INTERNAL.KEYS) (69 DECRYPT 16 DECRYPT) () DES.CBCC.ENCRYPT :D8 (I 0 L) o (9 ERROR) NIL ( 4 "Not Implemented!") DES.CBCC.DECRYPT :D8 (P 0 PL I 2 N I 1 L I 0 KEY) WBA b@ABk HABk HBk @ AB g h (84 \NCONC2 77 REC64.XOR 72 REC64.XOR 67 DES.CRYPT.BLOCK 56 NTH 49 DES.MAKE.INTERNAL.KEYS 43 REC64.XOR.CHK 33 NTH 20 DES.CBC.DECRYPT 7 LENGTH) (62 DECRYPT) () DES.PASSWORD.TO.KEY :D8 (P 3 CHAR P 2 BLOCK P 1 STR P 0 NEWKEY I 0 PASSWORD) @ l Io H JI KtjJI KSjJI K2jJI KjHJ lI lI lI lI (179 L-CASECODE 171 CHCON1 164 L-CASECODE 156 CHCON1 149 L-CASECODE 141 CHCON1 134 L-CASECODE 126 CHCON1 118 DES.ECB.ENCRYPT 100 GNC 82 GNC 64 GNC 46 GNC 38 DES.CORRECT.KEY.PARITY 31 STREQUAL 17 \ALLOCBLOCK 10 CONCAT 4 DES.MAKE.KEY) NIL ( 26 "") DES.MAKE.KEY :D8 (I 0 L) 7l Xd@jH@jH@jH@j(9 \ALLOCBLOCK) NIL () DES.CORRECT.KEY.PARITY :D8 (L (0 KEY) F 0 DES.PARITY.TABLE) s@P@ p@P@ @P@ p@P@ @P@ p@P@ @P@ p@P@ @(108 ELT 94 ELT 80 ELT 66 ELT 52 ELT 38 ELT 24 ELT 10 ELT) NIL () DES.CRYPT.BLOCK :D8 (P 2 I P 0 LR I 2 DIRECTION I 1 DAT I 0 KLST) gA Bg'lkJI?HH@J  JkZklIJHH@J  JmԺHH (100 DES.PERM.INV.INITIAL 82 DES.LOOPBODY 76 NTH 47 DES.LOOPBODY 41 NTH 5 DES.PERM.INITIAL) (14 ENCRYPT) () DES.KEY.COPY :D8 (I 0 K) )l Xd@H@H@H@(9 \ALLOCBLOCK) NIL () DES.KEY.EQUAL :D8 (L (1 Y 0 X)) $@A@A@A @ANIL NIL () DES.LOOPBODY :D8 (I 2 K I 1 R I 0 L) A@A B (28 REC32.XOR 23 DES.PERM.P 18 DES.SMAP 13 REC48.XOR 7 DES.PERM.E) NIL () DES.MAKE.INTERNAL.KEYS :D8 (P 12 J P 7 I P 5 C P 4 D P 3 CD P 1 TL I 0 K F 13 DESKEYSLST F 14 DES.SHIFTS) Wd@ =W!HYId4@ @ !KKlk2 ON0OWcW@ IIJJWJIWO k OOM L Ok_ML _OOh__Ok_O&_(157 DES.PERM.PC2 140 DES.REC32.LS28 133 DES.REC32.LS28 116 ELT 86 DES.KEY.EQUAL 40 DES.PERM.PC1 34 DES.KEY.COPY 11 DES.KEY.EQUAL) NIL () DES.PERM.E :D8 (I 0 X) l Xdl @@H@5eH@sÿH@Hl@@%Hl @@H@1H@SH@uEHl@@(9 \ALLOCBLOCK) NIL () DES.PERM.INITIAL :D8 (I 0 X) Yk Xd@H@H@ H@0H@@H@PH@`H@pH@H@0H@H@0H@H@0пH@H@0H@H@PH@ H@P0H@@H@PPH@`H@PpH@H@pH@H@pH@H@pпH@H@pk Xd@H@H@ H@0H@@H@PH@`H@pH@H@ H@H@ H@H@ пH@H@ H@H@@H@ H@@0H@@H@@PH@`H@@pH@H@`H@H@`H@H@`пH@H@`(307 \ALLOCBLOCK 8 \ALLOCBLOCK) NIL () DES.PERM.INV.INITIAL :D8 (I 1 R I 0 L) Ml Xd@H@H@ H@0H@@H@PH@`H@pH@H@0H@H@0H@H@0H@H@0H@пH@PH@ пH@0PH@@пH@PPH@`пH@pPH@H@pH@H@pH@H@pH@H@pHAHAHA HA0HA@HAPHA`HApHAHA HAHA HAHA HAHA HAHA@HA HA0@HA@HAP@HA`HAp@HAHA`HAHA`HAHA`HAHA`(9 \ALLOCBLOCK) NIL () DES.PERM.P :D8 (I 0 X) ,k Xd@H@`H@0 H@@0H@@H@PH@`H@pH@H@H@`H@H@@H@пH@H@H@H@pH@p H@0H@@H@PH@ `H@pH@ H@H@H@PH@PH@пH@0H@(8 \ALLOCBLOCK) NIL () DES.PERM.PC1 :D8 (I 0 X) k Xd@H@H@ H@0H@@H@PH@`H@pH@H@H@H@H@H@пH@H@H@H@ H@ H@ 0H@@H@ PH@`H@ pH@H@0H@H@0k Xd@H@`H@ H@`0H@@H@`PH@`H@`pH@H@PH@H@PH@H@PпH@H@PH@H@@H@ H@@0H@@H@@PH@`H@@pH@H@0H@H@0(271 \ALLOCBLOCK 8 \ALLOCBLOCK) NIL () DES.PERM.PC2 :D8 (I 1 D I 0 C) l Xd@H@H@ H@p0H@@H@@PH@ `H@pH@H@PH@@H@H@`H@ пH@H@0H@H@pH@ H@`0H@@H@0PH@`H@pHAHApHA HAHA HAпHAHAHA`HAHA@ HA00HA@HA@PHA`HApHAPHAHAHAHAPHApпHAHA0(9 \ALLOCBLOCK) NIL () DES.REC32.LS28 :D8 (I 0 X) 0k Xd@H@H@ H@(8 \ALLOCBLOCK) NIL () DES.SMAP :D8 (I 0 X F 1 DES.SBOX.1 F 2 DES.SBOX.2 F 3 DES.SBOX.8 F 4 DES.SBOX.3 F 5 DES.SBOX.4 F 6 DES.SBOX.5 F 7 DES.SBOX.6 F 8 DES.SBOX.7) k XdQ@ HR@e CHTl@@ HU@% ÿHV@ HWl@@ CHW@E HS@ ÿ(143 ELT 128 ELT 112 ELT 88 ELT 73 ELT 58 ELT 35 ELT 20 ELT 8 \ALLOCBLOCK) NIL () REC32.XOR :D8 (I 1 Y I 0 X) "k Xd@AH@A(8 \ALLOCBLOCK) NIL () REC48.XOR :D8 (I 1 Y I 0 X) .l Xd@AH@AH@A(9 \ALLOCBLOCK) NIL () REC64.XOR :D8 (I 1 Y I 0 X) 9l Xd@AH@AH@AH@A(9 \ALLOCBLOCK) NIL () REC64.XOR.CHK :D8 (P 3 I P 1 BLK I 1 N I 0 L) |l XdjHjHjHj!AkKJIId@K Id@K Id@K Id@K Kk[(109 NTH 91 NTH 73 NTH 55 NTH 9 \ALLOCBLOCK) NIL () (PRETTYCOMPRINT DESCOMS) (RPAQQ DESCOMS ((COMS (* ; "Entry points") (FNS DES.BREAKOUT.BLOCKS DES.MAKE.BLOCKS DES.ECB.ENCRYPT DES.ECB.DECRYPT DES.CBC.ENCRYPT DES.CBC.DECRYPT DES.CBCC.ENCRYPT DES.CBCC.DECRYPT DES.PASSWORD.TO.KEY DES.MAKE.KEY)) (COMS (* ; "Implementation") (FNS DES.CORRECT.KEY.PARITY DES.CRYPT.BLOCK DES.KEY.COPY DES.KEY.EQUAL DES.LOOPBODY DES.MAKE.INTERNAL.KEYS DES.PERM.E DES.PERM.INITIAL DES.PERM.INV.INITIAL DES.PERM.P DES.PERM.PC1 DES.PERM.PC2 DES.REC32.LS28 DES.SMAP REC32.XOR REC48.XOR REC64.XOR REC64.XOR.CHK)) (VARS DES.PARITY.TABLE DES.SBOX.1 DES.SBOX.2 DES.SBOX.3 DES.SBOX.4 DES.SBOX.5 DES.SBOX.6 DES.SBOX.7 DES.SBOX.8 DES.SHIFTS (DESKEYSLST)) (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS DES.REC.E1 DES.REC.E2 DES.REC32.4 DES.REC32.LS28.IN DES.REC32.LS28.OUT DES.REC48.6 DESBLOCK DESKEY DESKEY.P REC32 REC32.W REC48 REC48.W REC64 REC64.W)))) (RPAQ DES.PARITY.TABLE (READARRAY-FROM-LIST 128 (QUOTE BIT) 0 (QUOTE (1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 NIL)))) (RPAQ DES.SBOX.1 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (14 0 4 15 13 7 1 4 2 14 15 2 11 13 8 1 3 10 10 6 6 12 12 11 5 9 9 5 0 3 7 8 4 15 1 12 14 8 8 2 13 4 6 9 2 1 11 7 15 5 12 11 9 3 7 14 3 10 10 0 5 6 0 13 NIL)))) (RPAQ DES.SBOX.2 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (15 3 1 13 8 4 14 7 6 15 11 2 3 8 4 14 9 12 7 0 2 1 13 10 12 6 0 9 5 11 10 5 0 13 14 8 7 10 11 1 10 3 4 15 13 4 1 2 5 11 8 6 12 7 6 12 9 0 3 5 2 14 15 9 NIL)))) (RPAQ DES.SBOX.3 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (10 13 0 7 9 0 14 9 6 3 3 4 15 6 5 10 1 2 13 8 12 5 7 14 11 12 4 11 2 15 8 1 13 1 6 10 4 13 9 0 8 6 15 9 3 8 0 7 11 4 1 15 2 14 12 3 5 11 10 5 14 2 7 12 NIL)))) (RPAQ DES.SBOX.4 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (7 13 13 8 14 11 3 5 0 6 6 15 9 0 10 3 1 4 2 7 8 2 5 12 11 1 12 10 4 14 15 9 10 3 6 15 9 0 0 6 12 10 11 1 7 13 13 8 15 9 1 4 3 5 14 11 5 12 2 7 8 2 4 14 NIL)))) (RPAQ DES.SBOX.5 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (2 14 12 11 4 2 1 12 7 4 10 7 11 13 6 1 8 5 5 0 3 15 15 10 13 3 0 9 14 8 9 6 4 11 2 8 1 12 11 7 10 1 13 14 7 2 8 13 15 6 9 15 12 0 5 9 6 10 3 4 0 5 14 3 NIL)))) (RPAQ DES.SBOX.6 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (12 10 1 15 10 4 15 2 9 7 2 12 6 9 8 5 0 6 13 1 3 13 4 14 14 0 7 11 5 3 11 8 9 4 14 3 15 2 5 12 2 9 8 5 12 15 3 10 7 11 0 14 4 1 10 7 1 6 13 0 11 8 6 13 NIL)))) (RPAQ DES.SBOX.7 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (4 13 11 0 2 11 14 7 15 4 0 9 8 1 13 10 3 14 12 3 9 5 7 12 5 2 10 15 6 8 1 6 1 6 4 11 11 13 13 8 12 1 3 4 7 10 14 7 10 9 15 5 6 0 8 15 0 14 5 2 9 3 2 12 NIL)))) (RPAQ DES.SBOX.8 (READARRAY-FROM-LIST 64 (QUOTE BYTE) 0 (QUOTE (13 1 2 15 8 13 4 8 6 10 15 3 11 7 1 4 10 12 9 5 3 6 14 11 5 0 0 14 12 9 7 2 7 2 11 1 4 14 1 7 9 4 12 10 14 8 2 13 0 15 6 12 10 9 13 0 15 3 3 5 5 6 8 11 NIL)))) (RPAQ DES.SHIFTS (READARRAY-FROM-LIST 16 (QUOTE BYTE) 1 (QUOTE (1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 NIL))) ) (RPAQQ DESKEYSLST NIL) (PUTPROPS DES COPYRIGHT ("Venue & Xerox Corporation" 1985 1987 1990)) NIL