Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
}