xref: /plan9/sys/src/cmd/auth/lib/okpasswd.c (revision 5979f96214a33481f1724725761f2ef3585d2237)
1 #include <u.h>
2 #include <libc.h>
3 #include <authsrv.h>
4 #include <bio.h>
5 #include "authcmdlib.h"
6 
7 char *trivial[] = {
8 	"login",
9 	"guest",
10 	"change me",
11 	"passwd",
12 	"no passwd",
13 	"anonymous",
14 	0
15 };
16 
17 char*
okpasswd(char * p)18 okpasswd(char *p)
19 {
20 	char passwd[ANAMELEN];
21 	char back[ANAMELEN];
22 	int i, n;
23 
24 	strncpy(passwd, p, sizeof passwd - 1);
25 	passwd[sizeof passwd - 1] = '\0';
26 	n = strlen(passwd);
27 	while(passwd[n - 1] == ' ')
28 		n--;
29 	passwd[n] = '\0';
30 	for(i = 0; i < n; i++)
31 		back[i] = passwd[n - 1 - i];
32 	back[n] = '\0';
33 	if(n < 8)
34 		return "password must be at least 8 chars";
35 
36 	for(i = 0; trivial[i]; i++)
37 		if(strcmp(passwd, trivial[i]) == 0
38 		|| strcmp(back, trivial[i]) == 0)
39 			return "trivial password";
40 
41 	return 0;
42 }
43