Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <authsrv.h>
5 int
6 passtokey(char *key, char *p)
7 {
8 uchar buf[ANAMELEN], *t;
9 int i, n;
11 n = strlen(p);
12 if(n >= ANAMELEN)
13 n = ANAMELEN-1;
14 memset(buf, ' ', 8);
15 t = buf;
16 strncpy((char*)t, p, n);
17 t[n] = 0;
18 memset(key, 0, DESKEYLEN);
19 for(;;){
20 for(i = 0; i < DESKEYLEN; i++)
21 key[i] = (t[i] >> i) + (t[i+1] << (8 - (i+1)));
22 if(n <= 8)
23 return 1;
24 n -= 8;
25 t += 8;
26 if(n < 8){
27 t -= 8 - n;
28 n = 8;
29 }
30 encrypt(key, t, 8);
31 }
32 }