📄 9auth.h
字号:
typedef struct Ticket Ticket;typedef struct Ticketreq Ticketreq;typedef struct Authenticator Authenticator;typedef struct Nvrsafe Nvrsafe;typedef struct Passwordreq Passwordreq;typedef struct Chalstate Chalstate;typedef struct Apopchalstate Apopchalstate;typedef struct Chapreply Chapreply;typedef struct MSchapreply MSchapreply;enum{ DOMLEN= 48, /* length of an authentication domain name */ U9AUTH_DESKEYLEN= 7, /* length of a des key for encrypt/decrypt */ CHALLEN= 8, /* length of a challenge */ NETCHLEN= 16, /* max network challenge length */ CONFIGLEN= 14, SECRETLEN= 32, /* max length of a secret */ APOPCHLEN= 256, MD5LEN= 16, KEYDBOFF= 8, /* length of random data at the start of key file */ OKEYDBLEN= U9FS_NAMELEN+U9AUTH_DESKEYLEN+4+2, /* length of an entry in old key file */ KEYDBLEN= OKEYDBLEN+SECRETLEN, /* length of an entry in key file */ U9AUTH_TCPPORT= 567, U9AUTH_ILPORT= 566,};/* encryption numberings (anti-replay) */enum{ AuthTreq=1, /* ticket request */ AuthChal=2, /* challenge box request */ AuthPass=3, /* change password */ AuthOK=4, /* fixed length reply follows */ AuthErr=5, /* error follows */ AuthMod=6, /* modify user */ AuthApop=7, /* apop authentication for pop3 */ AuthOKvar=9, /* variable length reply follows */ AuthChap=10, /* chap authentication for ppp */ AuthMSchap=11, /* MS chap authentication for ppp */ AuthTs=64, /* ticket encrypted with server's key */ AuthTc, /* ticket encrypted with client's key */ AuthAs, /* server generated authenticator */ AuthAc, /* client generated authenticator */ AuthTp, /* ticket encrypted with clien's key for password change */};struct Ticketreq{ char type; char authid[U9FS_NAMELEN]; /* server's encryption id */ char authdom[DOMLEN]; /* server's authentication domain */ char chal[CHALLEN]; /* challenge from server */ char hostid[U9FS_NAMELEN]; /* host's encryption id */ char uid[U9FS_NAMELEN]; /* uid of requesting user on host */};#define TICKREQLEN (3*U9FS_NAMELEN+CHALLEN+DOMLEN+1)struct Ticket{ char num; /* replay protection */ char chal[CHALLEN]; /* server challenge */ char cuid[U9FS_NAMELEN]; /* uid on client */ char suid[U9FS_NAMELEN]; /* uid on server */ char key[U9AUTH_DESKEYLEN]; /* nonce DES key */};#define TICKETLEN (CHALLEN+2*U9FS_NAMELEN+U9AUTH_DESKEYLEN+1)struct Authenticator{ char num; /* replay protection */ char chal[CHALLEN]; u_long id; /* authenticator id, ++'d with each auth */};#define AUTHENTLEN (CHALLEN+4+1)struct Passwordreq{ char num; char old[U9FS_NAMELEN]; char new[U9FS_NAMELEN]; char changesecret; char secret[SECRETLEN]; /* new secret */};#define PASSREQLEN (2*U9FS_NAMELEN+1+1+SECRETLEN)struct Nvrsafe{ char machkey[U9AUTH_DESKEYLEN]; u_char machsum; char authkey[U9AUTH_DESKEYLEN]; u_char authsum; char config[CONFIGLEN]; u_char configsum; char authid[U9FS_NAMELEN]; u_char authidsum; char authdom[DOMLEN]; u_char authdomsum;};struct Chalstate{ int afd; /* /dev/authenticate */ int asfd; /* authdial() */ char chal[NETCHLEN]; /* challenge/response */};struct Apopchalstate{ int afd; /* /dev/authenticate */ int asfd; /* authdial() */ char chal[APOPCHLEN]; /* challenge/response */};struct Chapreply{ u_char id; char uid[U9FS_NAMELEN]; char resp[MD5LEN];};struct MSchapreply{ char uid[U9FS_NAMELEN]; char LMresp[24]; /* Lan Manager response */ char NTresp[24]; /* NT response */};extern int convT2M(Ticket*, char*, char*);extern void convM2T(char*, Ticket*, char*);extern void convM2Tnoenc(char*, Ticket*);extern int convA2M(Authenticator*, char*, char*);extern void convM2A(char*, Authenticator*, char*);extern int convTR2M(Ticketreq*, char*);extern void convM2TR(char*, Ticketreq*);extern int convPR2M(Passwordreq*, char*, char*);extern void convM2PR(char*, Passwordreq*, char*);extern u_char nvcsum(void*, int);extern int opasstokey(char*, char*);extern int passtokey(char*, char*);extern int authenticate(int, int);extern int newns(char*, char*);extern int addns(char*, char*);extern int authdial(void);extern int auth(int);extern int srvauth(int, char*);extern int nauth(int, Ticket*);extern int nsrvauth(int, char*, Ticket*);extern int getchal(Chalstate*, char*);extern int chalreply(Chalstate*, char*);extern int amount(int, char*, int, char*);extern int apopchal(Apopchalstate*);extern int apopreply(Apopchalstate*, char*, char*);extern int login(char*, char*, char*);extern int sslnegotiate(int, Ticket*, char**, char**);extern int srvsslnegotiate(int, Ticket*, char**, char**);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -