URI:
       tpasstokey.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
       ---
       tpasstokey.c (488B)
       ---
            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 }