diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libauthsrv/passtokey.c |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libauthsrv/passtokey.c')
-rwxr-xr-x | sys/src/libauthsrv/passtokey.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/src/libauthsrv/passtokey.c b/sys/src/libauthsrv/passtokey.c new file mode 100755 index 000000000..cde9a2422 --- /dev/null +++ b/sys/src/libauthsrv/passtokey.c @@ -0,0 +1,32 @@ +#include <u.h> +#include <libc.h> +#include <authsrv.h> + +int +passtokey(char *key, char *p) +{ + uchar buf[ANAMELEN], *t; + int i, n; + + n = strlen(p); + if(n >= ANAMELEN) + n = ANAMELEN-1; + memset(buf, ' ', 8); + t = buf; + strncpy((char*)t, p, n); + t[n] = 0; + memset(key, 0, DESKEYLEN); + for(;;){ + for(i = 0; i < DESKEYLEN; i++) + key[i] = (t[i] >> i) + (t[i+1] << (8 - (i+1))); + if(n <= 8) + return 1; + n -= 8; + t += 8; + if(n < 8){ + t -= 8 - n; + n = 8; + } + encrypt(key, t, 8); + } +} |