You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

58 lines
1.4 KiB

#ifndef E_AUTH_H
#define E_AUTH_H
typedef enum _E_Auth_Fprint_Type
{
E_AUTH_FPRINT_TYPE_UNKNOWN,
E_AUTH_FPRINT_TYPE_PRESS,
E_AUTH_FPRINT_TYPE_SWIPE
} E_Auth_Fprint_Type;
typedef enum _E_Auth_Fprint_Status
{
E_AUTH_FPRINT_STATUS_AUTH,
E_AUTH_FPRINT_STATUS_NO_AUTH,
E_AUTH_FPRINT_STATUS_SHORT_SWIPE,
E_AUTH_FPRINT_STATUS_NO_CENTER,
E_AUTH_FPRINT_STATUS_REMOVE_RETRY,
E_AUTH_FPRINT_STATUS_RETRY,
E_AUTH_FPRINT_STATUS_DISCONNECT,
E_AUTH_FPRINT_STATUS_ERROR
} E_Auth_Fprint_Status;
typedef struct _E_Event_Auth_Fprint_Available
{
E_Auth_Fprint_Type type;
} E_Event_Auth_Fprint_Available;
typedef struct _E_Event_Auth_Fprint_Status
{
E_Auth_Fprint_Status status;
} E_Event_Auth_Fprint_Status;
extern E_API int E_EVENT_AUTH_FPRINT_AVAILABLE;
extern E_API int E_EVENT_AUTH_FPRINT_STATUS;
EINTERN int e_auth_init(void);
EINTERN int e_auth_shutdown(void);
E_API int e_auth_begin(char *passwd);
E_API int e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid);
static inline int
e_auth_hash_djb2(const char *key, int len)
{
unsigned int hash_num = 5381;
const unsigned char *ptr;
if (!key) return 0;
for (ptr = (unsigned char *)key; len; ptr++, len--)
hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */
return (int)hash_num;
}
E_API void e_auth_fprint_begin(const char *user);
E_API void e_auth_fprint_end(void);
#endif