X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=common%2Fauth.h;h=630b87a834d2e9667732185471f19c0e1bd24ef8;hb=d67dd1bf5a247e20141b9907f5a452da73624235;hp=da024c9c1e0e7308815c334d042e9b2b45bd3cc2;hpb=3d27274b36b44816c736ea8a411341b5a36556f9;p=blerg.git diff --git a/common/auth.h b/common/auth.h index da024c9..630b87a 100644 --- a/common/auth.h +++ b/common/auth.h @@ -1,8 +1,36 @@ +/* Blerg is (C) 2011 The Dominion of Awesome, and is distributed under a + * BSD-style license. Please see the COPYING file for details. + */ #ifndef _AUTH_H #define _AUTH_H -int auth_set_password(const char *, const char *); -int auth_get_password(const char *, char *); -int auth_check_password(const char *, const char *); +#include + +#define TOKEN_SIZE 16 +#define MAX_PASSWORD_LENGTH 64 +#define SCRYPT_SALT_SIZE 8 +#define SCRYPT_OUTPUT_SIZE 32 +#define SCRYPT_N 1<<14 +#define SCRYPT_r 8 +#define SCRYPT_p 1 + +struct auth_header { + uint8_t version; + uint8_t reserved1; + uint16_t reserved2; +}; + +struct auth_v2 { + struct auth_header header; + uint8_t password[SCRYPT_OUTPUT_SIZE]; + uint8_t salt[SCRYPT_SALT_SIZE]; +}; + +int auth_set_password(const char *username, const char *password); +int auth_check_password(const char *username, const char *password); +char * auth_login(const char *username, const char *password); +int auth_logout(const char *username, const char *token); +int auth_check_token(const char *username, const char *given_token); +int auth_get_counter(const char *username, uint32_t *counter); #endif //_AUTH_H