31 lines
836 B
C
31 lines
836 B
C
enum{ MAXFILESIZE = 10*1024*1024 };
|
|
|
|
enum{// PW status bits
|
|
Enabled = (1<<0),
|
|
STA = (1<<1), // extra SecurID step
|
|
};
|
|
|
|
typedef struct PW {
|
|
char *id; // user id
|
|
ulong expire; // expiration time (epoch seconds)
|
|
ushort status; // Enabled, STA, ...
|
|
ushort failed; // number of failed login attempts
|
|
char *other; // other information, e.g. sponsor
|
|
mpint *Hi; // H(passphrase)^-1 mod p
|
|
} PW;
|
|
|
|
PW *getPW(char *, int);
|
|
int putPW(PW *);
|
|
void freePW(PW *);
|
|
char* getpassm(const char*);
|
|
|
|
// *client: SConn, client name, passphrase
|
|
// *server: SConn, (partial) 1st msg, PW entry
|
|
// *setpass: Username, hashed passphrase, PW entry
|
|
int PAKclient(SConn *, char *, char *, char **);
|
|
int PAKserver(SConn *, char *, char *, PW **);
|
|
char *PAK_Hi(char *, char *, mpint *, mpint *);
|
|
|
|
#define LOG "secstore"
|
|
#define SECSTORE_DIR "/adm/secstore"
|