1 #pragma lib "./lib.$O.a" 2 3 typedef Biobuf; 4 5 enum{ 6 PASSLEN = 10, 7 MAXNETCHAL = 100000, /* max securenet challenge */ 8 Maxpath = 256, 9 }; 10 11 #define KEYDB "/mnt/keys" 12 #define NETKEYDB "/mnt/netkeys" 13 #define KEYDBBUF (sizeof NETKEYDB) /* enough for any keydb prefix */ 14 #define AUTHLOG "auth" 15 16 enum 17 { 18 Nemail = 10, 19 Plan9 = 1, 20 Securenet = 2, 21 }; 22 23 typedef struct 24 { 25 char *user; 26 char *postid; 27 char *name; 28 char *dept; 29 char *email[Nemail]; 30 } Acctbio; 31 32 typedef struct { 33 char *keys; 34 char *msg; 35 char *who; 36 Biobuf *b; 37 } Fs; 38 39 extern Fs fs[3]; 40 41 void checksum(char*, char*); 42 void error(char*, ...); 43 void fail(char*); 44 char* findkey(char*, char*, char*); 45 char* findsecret(char*, char*, char*); 46 int getauthkey(char*); 47 long getexpiration(char *db, char *u); 48 void getpass(char*, char*, int, int); 49 int getsecret(int, char*); 50 int keyfmt(Fmt*); 51 void logfail(char*); 52 int netcheck(void*, long, char*); 53 char* netdecimal(char*); 54 char* netresp(char*, long, char*); 55 char* okpasswd(char*); 56 int querybio(char*, char*, Acctbio*); 57 void rdbio(char*, char*, Acctbio*); 58 int readarg(int, char*, int); 59 int readfile(char*, char*, int); 60 void readln(char*, char*, int, int); 61 long readn(int, void*, long); 62 char* secureidcheck(char*, char*); 63 char* setkey(char*, char*, char*); 64 char* setsecret(char*, char*, char*); 65 int smartcheck(void*, long, char*); 66 void succeed(char*); 67 void wrbio(char*, Acctbio*); 68 int writefile(char*, char*, int); 69 70 #pragma varargck type "K" char* 71