Blob
1 #include <u.h>2 #include <libc.h>3 #include <authsrv.h>5 int6 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 }