1 #pragma src "/sys/src/libauth"
2 #pragma lib "libauth.a"
5 * Interface for typical callers.
8 typedef struct AuthInfo AuthInfo;
9 typedef struct Chalstate Chalstate;
10 typedef struct Chapreply Chapreply;
11 typedef struct MSchapreply MSchapreply;
12 typedef struct UserPasswd UserPasswd;
13 typedef struct AuthRpc AuthRpc;
17 MAXCHLEN= 256, /* max challenge length */
18 MAXNAMELEN= 256, /* maximum name length */
21 ARok = 0, /* rpc return values */
38 char ibuf[AuthRpcMax];
39 char obuf[AuthRpcMax];
46 char *cuid; /* caller id */
47 char *suid; /* server id */
48 char *cap; /* capability (only valid on server side) */
49 int nsecret; /* length of secret */
50 uchar *secret; /* secret */
61 /* for implementation only */
62 int afd; /* to factotum */
63 AuthRpc *rpc; /* to factotum */
64 char userbuf[MAXNAMELEN]; /* temp space if needed */
65 int userinchal; /* user was sent to obtain challenge */
68 struct Chapreply /* for protocol "chap" */
74 struct MSchapreply /* for protocol "mschap" */
76 char LMresp[24]; /* Lan Manager response */
77 char NTresp[24]; /* NT response */
86 extern int newns(char*, char*);
87 extern int addns(char*, char*);
89 extern int noworld(char*);
90 extern int amount(int, char*, int, char*);
92 /* these two may get generalized away -rsc */
93 extern int login(char*, char*, char*);
94 extern int httpauth(char*, char*);
96 typedef struct Attr Attr;
98 AttrNameval, /* name=val -- when matching, must have name=val */
99 AttrQuery, /* name? -- when matching, must be present */
100 AttrDefault, /* name:=val -- when matching, if present must match INTERNAL */
110 typedef int AuthGetkey(char*);
113 Attr *_copyattr(Attr*);
114 Attr *_delattr(Attr*, char*);
115 Attr *_findattr(Attr*, char*);
116 void _freeattr(Attr*);
117 Attr *_mkattr(int, char*, char*, Attr*);
118 Attr *_parseattr(char*);
119 char *_strfindattr(Attr*, char*);
120 #pragma varargck type "A" Attr*
122 extern AuthInfo* fauth_proxy(int, AuthRpc *rpc, AuthGetkey *getkey, char *params);
123 extern AuthInfo* auth_proxy(int fd, AuthGetkey *getkey, char *fmt, ...);
124 extern int auth_getkey(char*);
125 extern int (*amount_getkey)(char*);
126 extern void auth_freeAI(AuthInfo *ai);
127 extern int auth_chuid(AuthInfo *ai, char *ns);
128 extern Chalstate *auth_challenge(char*, ...);
129 extern AuthInfo* auth_response(Chalstate*);
130 extern int auth_respond(void*, uint, char*, uint, void*, uint, AuthGetkey *getkey, char*, ...);
131 extern void auth_freechal(Chalstate*);
132 extern AuthInfo* auth_userpasswd(char *user, char *passwd);
133 extern UserPasswd* auth_getuserpasswd(AuthGetkey *getkey, char*, ...);
134 extern AuthInfo* auth_getinfo(AuthRpc *rpc);
135 extern AuthRpc* auth_allocrpc(int afd);
136 extern Attr* auth_attr(AuthRpc *rpc);
137 extern void auth_freerpc(AuthRpc *rpc);
138 extern uint auth_rpc(AuthRpc *rpc, char *verb, void *a, int n);
139 extern int auth_wep(char*, char*, ...);
140 #pragma varargck argpos auth_proxy 3
141 #pragma varargck argpos auth_challenge 1
142 #pragma varargck argpos auth_respond 8
143 #pragma varargck argpos auth_getuserpasswd 2