xref: /plan9/sys/src/cmd/auth/secstore/secstore.h (revision 252470cd51076298c1cb81e1aabee4494f47f284)
1*252470cdSDavid du Colombier #define LOG		"secstore"
2*252470cdSDavid du Colombier #define SECSTORE_DIR	"/adm/secstore"
39a747e4fSDavid du Colombier 
4*252470cdSDavid du Colombier enum {
5*252470cdSDavid du Colombier 	MAXFILESIZE = 10*1024*1024,
6*252470cdSDavid du Colombier };
7*252470cdSDavid du Colombier 
8*252470cdSDavid du Colombier /* PW status bits */
9*252470cdSDavid du Colombier enum {
10*252470cdSDavid du Colombier 	Enabled 	= 1<<0,
11*252470cdSDavid du Colombier 	STA 		= 1<<1,	/* extra SecurID step */
129a747e4fSDavid du Colombier };
139a747e4fSDavid du Colombier 
149a747e4fSDavid du Colombier typedef struct PW {
15*252470cdSDavid du Colombier 	char	*id;		/* user id */
16*252470cdSDavid du Colombier 	ulong	expire;		/* expiration time (epoch seconds) */
17*252470cdSDavid du Colombier 	ushort	status;		/* Enabled, STA, ... */
18*252470cdSDavid du Colombier 	ushort	failed;		/* number of failed login attempts */
19*252470cdSDavid du Colombier 	char	*other;		/* other information, e.g. sponsor */
20*252470cdSDavid du Colombier 	mpint	*Hi;  		/* H(passphrase)^-1 mod p */
219a747e4fSDavid du Colombier } PW;
229a747e4fSDavid du Colombier 
239a747e4fSDavid du Colombier void	freePW(PW*);
24*252470cdSDavid du Colombier PW	*getPW(char*, int);
25c65b13b8SDavid du Colombier char	*getpassm(char*);
26*252470cdSDavid du Colombier int	putPW(PW*);
2711c9ee8bSDavid du Colombier char	*validatefile(char*f);
289a747e4fSDavid du Colombier 
29*252470cdSDavid du Colombier /*
30*252470cdSDavid du Colombier  * *client: SConn, client name, passphrase
31*252470cdSDavid du Colombier  * *server: SConn, (partial) 1st msg, PW entry
32*252470cdSDavid du Colombier  * *setpass: Username, hashed passphrase, PW entry
33*252470cdSDavid du Colombier  */
349a747e4fSDavid du Colombier int	PAKclient(SConn*, char*, char*, char**);
359a747e4fSDavid du Colombier int	PAKserver(SConn*, char*, char*, PW**);
369a747e4fSDavid du Colombier char*	PAK_Hi(char*, char*, mpint*, mpint*);
37