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