Blame


1 4180d05b 2004-06-17 devnull #include <u.h>
2 4180d05b 2004-06-17 devnull #include <libc.h>
3 4180d05b 2004-06-17 devnull #include <authsrv.h>
4 4180d05b 2004-06-17 devnull
5 4180d05b 2004-06-17 devnull int
6 4180d05b 2004-06-17 devnull opasstokey(char *key, char *p)
7 4180d05b 2004-06-17 devnull {
8 4180d05b 2004-06-17 devnull uchar t[10];
9 4180d05b 2004-06-17 devnull int c, n;
10 4180d05b 2004-06-17 devnull
11 4180d05b 2004-06-17 devnull n = strlen(p);
12 4180d05b 2004-06-17 devnull memset(t, ' ', sizeof t);
13 4180d05b 2004-06-17 devnull if(n < 5)
14 4180d05b 2004-06-17 devnull return 0;
15 4180d05b 2004-06-17 devnull if(n > 10)
16 4180d05b 2004-06-17 devnull n = 10;
17 4180d05b 2004-06-17 devnull strncpy((char*)t, p, n);
18 4180d05b 2004-06-17 devnull if(n >= 9){
19 4180d05b 2004-06-17 devnull c = p[8] & 0xf;
20 4180d05b 2004-06-17 devnull if(n == 10)
21 4180d05b 2004-06-17 devnull c += p[9] << 4;
22 4180d05b 2004-06-17 devnull for(n = 0; n < 8; n++)
23 4180d05b 2004-06-17 devnull if(c & (1 << n))
24 4180d05b 2004-06-17 devnull t[n] -= ' ';
25 4180d05b 2004-06-17 devnull }
26 4180d05b 2004-06-17 devnull for(n = 0; n < 7; n++)
27 4180d05b 2004-06-17 devnull key[n] = (t[n] >> n) + (t[n+1] << (8 - (n+1)));
28 4180d05b 2004-06-17 devnull return 1;
29 4180d05b 2004-06-17 devnull }