Subversion Repositories planix.SVN

Rev

Details | 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
passtokey(char *key, char *p)
7
{
8
	uchar buf[ANAMELEN], *t;
9
	int i, n;
10
 
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
}