1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <authsrv.h>
4*9a747e4fSDavid du Colombier
5*9a747e4fSDavid du Colombier #define CHAR(x) *p++ = f->x
6*9a747e4fSDavid du Colombier #define SHORT(x) p[0] = f->x; p[1] = f->x>>8; p += 2
7*9a747e4fSDavid du Colombier #define VLONG(q) p[0] = (q); p[1] = (q)>>8; p[2] = (q)>>16; p[3] = (q)>>24; p += 4
8*9a747e4fSDavid du Colombier #define LONG(x) VLONG(f->x)
9*9a747e4fSDavid du Colombier #define STRING(x,n) memmove(p, f->x, n); p += n
10*9a747e4fSDavid du Colombier
11*9a747e4fSDavid du Colombier int
convPR2M(Passwordreq * f,char * ap,char * key)12*9a747e4fSDavid du Colombier convPR2M(Passwordreq *f, char *ap, char *key)
13*9a747e4fSDavid du Colombier {
14*9a747e4fSDavid du Colombier int n;
15*9a747e4fSDavid du Colombier uchar *p;
16*9a747e4fSDavid du Colombier
17*9a747e4fSDavid du Colombier p = (uchar*)ap;
18*9a747e4fSDavid du Colombier CHAR(num);
19*9a747e4fSDavid du Colombier STRING(old, ANAMELEN);
20*9a747e4fSDavid du Colombier STRING(new, ANAMELEN);
21*9a747e4fSDavid du Colombier CHAR(changesecret);
22*9a747e4fSDavid du Colombier STRING(secret, SECRETLEN);
23*9a747e4fSDavid du Colombier n = p - (uchar*)ap;
24*9a747e4fSDavid du Colombier if(key)
25*9a747e4fSDavid du Colombier encrypt(key, ap, n);
26*9a747e4fSDavid du Colombier return n;
27*9a747e4fSDavid du Colombier }
28*9a747e4fSDavid du Colombier
29