******************************************************************************* * * * PROGRAM : PWMODIFY * * * * PURPOSE : MODIFY THE CURRENT PASSWORD IN THE FILE 'PASSWD.DAT' * * (I.E. REPLACE IT WITH A NEW ENCODED PASSWORD) * * * ******************************************************************************* PROGRAM PWMODIFY IMPLICIT INTEGER (A-Z) LOGICAL ERROR, MODERROR CHARACTER PASSWORD(9) BYTE NEWCODE(9),OLDCODE(9) CHARACTER*9 NEWPW,CHKPW EQUIVALENCE (NEWPW,PASSWORD) ****** GET USER INPUT ****** WRITE (*,10) 10 FORMAT (' PWMODIFY> ENTER OLD PASSWORD : ',$) ****** READ IN OLD PASSWORD IN NOECHO MODE ****** CALL NOECHO(PASSWORD) ****** ENCODE PASSWORD ****** CALL PWENCODE (PASSWORD,NEWCODE) ****** OPEN PASSWORD DATA FILE AND READ IN THE OLD PASSWORD CODE ****** OPEN (UNIT=21,FILE='PASSWD.DAT',STATUS='OLD',SHARED) READ (21,20) OLDCODE 20 FORMAT (9A1) ****** COMPARE OLD CODE WITH INPUT PASSWORD CODE ****** ERROR = .FALSE. I=1 DO WHILE ((ERROR .EQ. .FALSE.) .AND. (I .LE. 9)) IF (OLDCODE(I) .NE. NEWCODE(I)) THEN ERROR = .TRUE. ELSE I = I + 1 END IF END DO ****** GET NEW PASSWORD IF OLD PASSWORD WAS CORRECTLY TYPED IN, ****** ****** AND PUT IT'S ENCODED FORM INTO THE PASSWORD DATA FILE ****** IF (ERROR .EQ. .TRUE.) THEN WRITE (*,30) 30 FORMAT (' PWMODIFY> INCORRECT PASSWORD RECEIVED ') ELSE WRITE (*,40) 40 FORMAT (' PWMODIFY> ENTER NEW PASSWORD : ',$) CALL NOECHO(NEWPW) WRITE (*,50) 50 FORMAT(' PWMODIFY> REENTER NEW PASSWORD FOR CONFIRMATION : ',$) CALL NOECHO(CHKPW) IF (NEWPW .EQ. CHKPW) THEN MODERROR = .FALSE. CALL PWENCODE (PASSWORD,NEWCODE) REWIND 21 WRITE (21,20) NEWCODE ELSE MODERROR = .TRUE. WRITE (*,60) 60 FORMAT (' PWMODIFY> NEW PASSWORD NOT CONFIRMED') ENDIF ENDIF ****** PRINT OUT A MESSAGE INDICATING WHETHER OR NOT THE PASSWORD ****** ****** HAD BEEN SUCCESSFULLY MODIFIED ****** IF ((ERROR .EQ. .FALSE.) .AND. (MODERROR .EQ. .FALSE.)) THEN WRITE (*,70) 70 FORMAT (' PWMODIFY> ===> PASSWORD HAS BEEN MODIFIED <=== ') ELSE WRITE (*,80) 80 FORMAT (' PWMODIFY> ===> PASSWORD HAS NOT BEEN MODIFIED <=== ') ENDIF ****** CLOSE PASSWORD DATA FILE AND EXIT ****** CLOSE (UNIT=21,STATUS='KEEP') STOP END