TITLE ACCCHK - Sample program to do access control via ACTDAE ;COPYRIGHT (C) 1980,1981 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; ;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. SEARCH UUOSYM,MACTEN,ACTSYM ;GET SOME SYMBOLS SALL ACCVER==1 ;VERSION NUMBER ACCEDT==2 ;EDIT NUMBER ACCWHO==0 ;WHO LAST EDIT ACCMIN==0 ;MINOR VERSION NUMBER LOC 137 VRSN. (ACC) ;INSTALL THE VERSION NUMBER RELOC ;This sample program shows how to have ACTDAE verify the PPN, Password, and ; Account string for a particular user. This can be used ; by a program that needs to check access but does not want to learn ; how to read ACCT.SYS (e.g. A file transfer spooler). A program ; wishing to ask ACTDAE for this function must be privileged. ;Since I am not about to hard code my PPN and Password into this program, you ; will have to patch/modify it to see it work. ACCCHK: RESET ;START FRESH MOVE 1,[BLKLEN,,ARGBLK] ;POINT TO QUEUE. ARGUMENTS QUEUE. 1, ;ASK ACTDAE JRST [OUTSTR [ASCIZ/?/] ;SHOW ERROR CHARACTER OUTSTR RESPON ;AND ACTDAES ERROR MESSAGE JRST XIT] ;AND QUIT OUTSTR [ASCIZ/Access will be allowed./] LDB 1,[POINT 7,RESPON,6] ;SEE IF ACTDAE HAS AN ACCOUNT STRING FOR US JUMPE 1,XIT ;NOPE OUTSTR [ASCIZ/ (Returned account string = "/] OUTSTR RESPON ;SHOW ACCOUNT STRING WE ARE SUPPOSED TO USE OUTSTR [ASCIZ/")./] ;FINISH OUTPUT XIT: MONRT. ;ALL DONE JRST .-1 ;NO CONTINUE ARGBLK: QF.RSP!.QUMAE ;WANT RESPONSE,,TALK TO ACTDAE 0 ;RESERVED 20,,RESPON ;LENGTH,,ADDR OF RESPONSE BLOCK QA.IMM!1B17!.QBAFN ;ACCOUNTING SUB-FUNCTION HERE UGACC$ ;FUNCTION = ACCESS CONTROL CHECK QA.IMM!1B17!.UGTYP ;TYPE OF CHECK REQUESTED UG.VER ;NORMAL PPN, ACCT STRING, AND PASSWORD 10,,.UGACT ;HERE COMES AN ACCOUNT STRING ACTSTR ;FIND IT OVER THERE QA.IMM!1B17!.UGPPN ;PPN TO CHECK PPN: 0 ;PUT IT HERE QA.IMM!1B17!.UGPSW ;PASSWORD THE USER TYPED PSW: 0 ;PUT IT HERE BLKLEN==.-ARGBLK ;LENGTH OF THE ARGUMENT BLOCK ACTSTR: BLOCK 10 ;SPACE FOR THE ACCOUNT STRING RESPON: BLOCK 20 ;THE RESPONSE BLOCK END ACCCHK