|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 3284 (0xcd4) Types: TextFile Names: »pwck_passwd.c«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦123909933⟧ »./npasswd/npasswd.tar.Z« └─⟦22a202e7d⟧ └─⟦this⟧ »npass-new/npasswd_jpl/old.checkpasswd/pwck_passwd.c«
/* -------------------------------------------------------------------- */ /* */ /* Author: Clyde Hoover */ /* Computation Center */ /* The University of Texas at Austin */ /* Austin, Texas 78712 */ /* clyde@emx.utexas.edu */ /* uunet!cs.utexas.edu!ut-emx!clyde */ /* */ /*This code may be distributed freely, provided this notice is retained. */ /* */ /* -------------------------------------------------------------------- */ /* * pwck_password - Check password candidate against the users' password * file information, or any other information that is publicly * available about this user that a bandit could use as * password guesses. * * This code has an option for the User Information Data Base used * at the UT Computation Center. Here is the place to search * any local 'finger' database. */ #ifndef lint static char sccsid[] = "@(#)pwck_passwd.c 1.2 6/5/89 (cc.utexas.edu)"; #endif #include "checkpasswd.h" #ifdef UTEXAS_CC /* * For UTCC systems */ #include <local/userinfo.h> #define cname pwp->ui_name typedef userptr pwptr; #define setpwent setuserent #define getpwuid getuserbyuid #else /* UTEXAS_CC */ #include <pwd.h> #define cname pwp->pw_name typedef struct passwd *pwptr; #endif /* UTEXAS_CC */ pwck_passwd(password, userid, mesg) char *password; int userid; char *mesg; { char temp[BUFSIZ]; /* Scratch */ pwptr pwp; /* Pointer to user information */ mesg[0] = 0; #ifdef DEBUG printf("pwck_passwd: \"%s\"\n", password); #endif if (userid < 0) /* Can't do user checks */ return(PWCK_FAIL); pwp = getpwuid(userid); if (pwp == (pwptr )0) return(PWCK_FAIL); strcpy(mesg, "Password is part of your passwd information"); try(password, cname, PWCK_OBVIOUS); /* Checks 'name' and 'Name' */ (void) strcpy(temp, cname); (void) strcat(temp, cname); try(password, temp, PWCK_OBVIOUS); /* Check 'namename' */ (void) strcpy(temp, cname); _flipstring(temp); try(password, temp, PWCK_OBVIOUS); /* 'eman' */ #ifdef UTEXAS_CC /* * Try the rest of the stuff in this userinfo record */ try(password, pwp->ui_rje_cc, PWCK_OBVIOUS); try(password, pwp->ui_bill_cc, PWCK_OBVIOUS); mesg[0] = 0; /* Try all 'finger' information */ mtry(password, pwp->ui_personal_name, PWCK_FINGER); mtry(password, pwp->ui_nick_name, PWCK_FINGER); mtry(password, pwp->ui_home_address, PWCK_FINGER); mtry(password, pwp->ui_work_address, PWCK_FINGER); mtry(password, pwp->ui_home_phone, PWCK_FINGER); mtry(password, pwp->ui_work_phone, PWCK_FINGER); mtry(password, pwp->ui_birthday, PWCK_FINGER); mtry(password, pwp->ui_project, PWCK_FINGER); mtry(password, pwp->ui_fellows, PWCK_FINGER); #else /* * Try every word in user's GECOS entry */ mesg[0] = 0; mtry(password, pwp->pw_gecos, PWCK_FINGER); #endif return(PWCK_OK); } /* End pwck_passwd.c */