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