22 struct spwd *spass = NULL;
24 struct passwd *pass = NULL;
29 if (scanf("%s",user) != 1)
32 password = getpass("Password: ");
33 pass = getpwnam(user);
35 printf("couldn't find account %s\n",user);
40 pwok = (pwdauth(user,password) == 0);
43 spass = getspnam(user);
44 if (spass && spass->sp_pwdp)
45 pass->pw_passwd = spass->sp_pwdp;
47 strncpy(salt,pass->pw_passwd,2);
49 pwok = (strcmp(crypt(password,salt),pass->pw_passwd) == 0);
52 printf("invalid password\n");
54 printf("password OK\n");