topasstokey.c - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
topasstokey.c (448B)
---
1 #include <u.h>
2 #include <libc.h>
3 #include <authsrv.h>
4
5 int
6 opasstokey(char *key, char *p)
7 {
8 uchar t[10];
9 int c, n;
10
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 }