C
      PROGRAM TERM_LOCK
C
C ***********************************************************************
C    This program was written, so a user did not have to log off the
C     system every time they left their terminal. I had in mind priveleged
C     accounts at the time. The program does not require any priveleges to
C     run. There is a problem, where I cannot include the code to LGI$HPWD.
C     This is DEC's password hashing function, however it is supplied in
C     the VMS micro-fiche, but I did include the object file. Another little
C     program needed was UAI_DEF.MAR, this program when assembled, provides
C     the needed symbols for $GETUAI. To put TERM_LOCK altogether, execute
C     the following commands:
C
C     FORT TERM_LOCK
C     MACRO UAI_DEF
C     LINK/NOTRACE TERM_LOCK,UAI_DEF,HPWD
C
C    The program starts by disabling CONTROL_Y and CONTROL_T. We know why
C    CONTROL_Y is disabled, CONTROL_T is disabled so that a would be
C    troublemaker cannot find out who is running the program. Next, the image
C    gathers the terminal name and USERNAME that is using this image. If
C    the terminal is over the network and a person presses CONTROL_Y enough
C    the system asks if you are aborting the login, thus one could end up
C    back on someone else's account or prevent somebody from getting to their
C    process. The USERNAME is used to get the appropriate UAF record,
C    especially the correct PASSOWRD. I use $GETUAI, because a user with 
C    no privelges can get only their record, and nobody elses'. Also, because
C    the program uses only the USERNAME running this particular image, a
C    user cannot get at another users' UAF record. After we get this
C    information I begin building pasteboards, virtual displays and keyboard.
C    I chose Screen Management, because it would run on any type terminal.
C    The SMG routines, also let me prompt for the USERNAME and PASSWORD,
C    and at the same time prevent echoing on the screen and converts the 
C    data to uppercase. I next run what the user enters through the hashing
C    routine and compare the hashed quadwords for a correct password match.
C    If the quadwords match, they have entered a valid password and the program
C    exits, otherwise the terminal bell is rung and the user reprompted.
C    I display on the terminal screen, while this image is running, that
C    this is a "SECURE TERMINAL" in double high , double wide , bold text.
C    This message is easily changed.
C
C    I know that the program does not take into account secondary passwords,
C     but, our site does not use them.
C
C    If you find any problems or make any enhancements please let me know.
C    I can be reached at the following address and phone:
C
C                     Gary Sachs
C                     Lawrence Institute of Technology
C                     21000 W 10 Mile Rd.
C                     Southfield, Mi  48075
C                     Ph. 313-356-0200  xtn 3700
C
C    Written by:    Gary Sachs    July 10, 1986
C
C **************************************************************************
