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