5 extern int form1check(char *ap, int n);
6 extern int form1M2B(char *ap, int n, uchar key[32]);
9 convM2T(char *ap, int n, Ticket *f, Authkey *k)
11 uchar buf[MAXTICKETLEN], *p;
15 memset(f, 0, sizeof(Ticket));
20 if(form1check(ap, n) < 0){
21 m = 1+CHALLEN+2*ANAMELEN+DESKEYLEN;
24 if(f == nil || k == nil)
28 decrypt(k->des, buf, m);
30 m = 12+CHALLEN+2*ANAMELEN+NONCELEN+16;
33 if(f == nil || k == nil)
37 if(form1M2B((char*)buf, m, k->pakkey) < 0)
42 memmove(f->chal, p, CHALLEN), p += CHALLEN;
43 memmove(f->cuid, p, ANAMELEN), p += ANAMELEN;
44 memmove(f->suid, p, ANAMELEN), p += ANAMELEN;
45 memmove(f->key, p, f->form == 0 ? DESKEYLEN : NONCELEN);
47 f->cuid[ANAMELEN-1] = 0;
48 f->suid[ANAMELEN-1] = 0;