added what_license tool
[tridge/junkcode.git] / pwd.c
1 #include <stdio.h>
2 #include <errno.h>
3 #include <pwd.h>
4 #include <grp.h>
5
6
7 int pwdauth(char *user,char *password)
8 {
9   struct passwd *pass = getpwnam(user);
10   if (!pass) {
11     errno = EINVAL; /* Note: SunOS returns EACCES */
12     return(-1);
13   }
14   if (strcmp(crypt(password,pass->pw_passwd),pass->pw_passwd)) {
15     errno = EACCES;
16     return(-1);
17   }
18   return(0);
19 }
20
21 int grpauth(char *group,char *password)
22 {
23   struct group *grp = getgrnam(user);
24   if (!grp) {
25     errno = EINVAL;
26     return(-1);
27   }
28   if (grp->gr_passwd &&
29       strcmp(crypt(password,grp->gr_passwd),grp->gr_passwd)) {
30     errno = EACCES;
31     return(-1);
32   }
33   return(0);
34 }
35
36
37 main(int argc,char *argv[])
38 {
39   char *pass = getpass("Password: ");
40
41
42   errno=0;
43   printf("res=%d (%s,%s)\n",pwdauth(argv[1],pass),argv[1],pass);
44   printf("errno=%d\n",errno);
45 }