TITLE ENDECR - ALC STYLE ENCRIPTION SCHEME SEARCH UUOSYM .BCOPY COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986. ALL RIGHTS RESERVED. .ECOPY \;END COPYRIGHT MACRO ;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1984,1986. ALL RIGHTS RESERVED. ; ; ;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ;TRANSFERRED. ; ;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ;CORPORATION. ; ;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. TWOSEG COMMENT $ THE FOLLOWING CODE CONSISTS OF 3 BASIC ROUTINES: 1) CRASZ. - WARMUP ROUTINE FOR ASCIZ SEED 2) CRSIX. - WARMUP ROUTINE FOR A SIXBIT ATOM 3) CRYPT. - BASIC CRYPTION CALLING CONVENTIONS: THESE 3 SUBROUTINES USE AC'S 0-7, ARGUMENTS ARE PASSED IN 5 , 6 , AND 7 - ANSWERS RETURNED IN 5. 1) MOVE A, PUSHJ P,CRASZ. ...... ;SEED RETURNED IN (C) 2) MOVE C, PUSHJ P,CRSIX. ...... ;SEED RETURNED IN (C) 3) MOVE A, MOVE B, MOVE C, PUSHJ P,CRYPT. ...... ;ALWAYS RETURN $ ENTRY CRASZ.,CRSIX.,CRYPT. ;AC DEF'S Z==0 T1==1 T2==2 T3==3 T4==4 C==5 B==6 A==7 P==17 ;CRASZ. - CONVERTS ASCIZ STRINGS POINTED TO BY (A) INTO SEEDS RELOC 400000 CRASZ.: TLNN A,-1 ;SEE IF BYTE-PNTR HRLI A,() MOVEI B,0 PUSH P,B CRASZ1: MOVEI C,0 MOVE T1,[POINT 6,C] CRASZ2: ILDB Z,A JUMPE Z,CRASZ3 CAIG Z,"Z"+40 CAIG Z," " JRST CRASZ2 CAILE Z,"_" SUBI Z,40 SUBI Z,40 IDPB Z,T1 TLNE T1,770000 JRST CRASZ2 XOR C,0(P) PUSHJ P,CRSIX. MOVEM C,0(P) JRST CRASZ1 CRASZ3: JUMPE C,CRASZ4 XOR C,0(P) PUSHJ P,CRSIX. MOVEM C,0(P) CRASZ4: POP P,C JUMPN C,CRASZ5 SKIPE B MOVE C,[13702,,175435] CRASZ5: POPJ P, ;CRSIZ. - HANDLES SIXBIT ATOMS (CALLED FROM CRASZ.) CRSIX.: JUMPE C,CRSIX1 PUSHJ P,CWRAN HLR B,B SUB P,B CRSIX1: POPJ P, ;CRYPT. - BASIC BLOCK EN/DE CRYPTER CRYPT.: JUMPE C,CRYPT4 MOVE Z,B IMULI Z,200401 AND Z,[11111111] MUL Z,[11111111] TLZ T1,(<6B2>) ADD C,T1 PUSHJ P,CWRAN HLRZ T1,B MOVN T1,T1 HRL T1,T1 ADDI T1,1(P) PUSH P,T1 CRYPTA: MOVE T1,0(P) HRRZ T2,B HRL T2,T2 ADD T2,T1 CRYPT1: MOVE Z,0(T2) ADDB Z,0(T1) XORM Z,0(A) AOBJP A,CRYPT3 AOBJN T2,CRYPT2 HRRZ T2,0(P) TLO T2,(<1B0>) CRYPT2: AOBJN T1,CRYPT1 JRST CRYPTA CRYPT3: HLR B,B AOBJN B,.+1 SUB P,B CRYPT4: POPJ P, CWRAN: LDB T4,[POINT 3,C,4] POP P,T2 CWRAN0: XOR C,[13702,,175435] TLZ C,760000 JUMPE C,CWRAN0 HLRZ T3,MAJIK(T4) CWRAN1: MOVEI Z,6 CWRAN2: MOVE B,C ROT B,13 XOR B,C ROT B,-6 LSHC C,6 SOJG Z,CWRAN2 PUSH P,C SOJG T3,CWRAN1 MOVE B,MAJIK(T4) JRST 0(T2) MAJIK: 7,,4 11,,5 12,,7 13,,11 17,,10 17,,13 21,,5 22,,13 END