forked from enlightenment/enlightenment
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
#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
|