mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-09-24 20:48:01 +00:00
Initial commit of Seafile server core.
This commit is contained in:
82
server/passwd-mgr.h
Normal file
82
server/passwd-mgr.h
Normal file
@@ -0,0 +1,82 @@
|
||||
#ifndef PASSWD_MGR_H
|
||||
#define PASSWD_MGR_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
struct _SeafileSession;
|
||||
struct _SeafPasswdManagerPriv;
|
||||
struct _SeafileCryptKey;
|
||||
|
||||
struct _SeafPasswdManager {
|
||||
struct _SeafileSession *session;
|
||||
struct _SeafPasswdManagerPriv *priv;
|
||||
};
|
||||
typedef struct _SeafPasswdManager SeafPasswdManager;
|
||||
|
||||
SeafPasswdManager *
|
||||
seaf_passwd_manager_new (struct _SeafileSession *session);
|
||||
|
||||
int
|
||||
seaf_passwd_manager_start (SeafPasswdManager *mgr);
|
||||
|
||||
/**
|
||||
* Check password @magic to access contents of @repo_id.
|
||||
* This function:
|
||||
* 1. check whether @magic is correct;
|
||||
*
|
||||
* Returns 0 if password @magic is correct, -1 otherwise.
|
||||
*/
|
||||
int
|
||||
seaf_passwd_manager_check_passwd (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *magic,
|
||||
GError **error);
|
||||
/**
|
||||
* Set @passwd for @user to access contents of @repo_id.
|
||||
* This function:
|
||||
* 1. check whether @passwd is correct;
|
||||
* 2. calculate and store decryption key based on @passwd in memory.
|
||||
*
|
||||
* Returns 0 if @passwd is correct, -1 otherwise.
|
||||
*/
|
||||
int
|
||||
seaf_passwd_manager_set_passwd (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *user,
|
||||
const char *passwd,
|
||||
GError **error);
|
||||
|
||||
/**
|
||||
* Returns 0 if successfully unset user password, -1 otherwise.
|
||||
*/
|
||||
int
|
||||
seaf_passwd_manager_unset_passwd (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *user,
|
||||
GError **error);
|
||||
|
||||
/**
|
||||
* Check whether correct passwd has been set for @user
|
||||
* to access @repo_id.
|
||||
*/
|
||||
gboolean
|
||||
seaf_passwd_manager_is_passwd_set (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *user);
|
||||
|
||||
/**
|
||||
* Returns decryption key for @repo_id, NULL if it's not set.
|
||||
*/
|
||||
struct _SeafileCryptKey *
|
||||
seaf_passwd_manager_get_decrypt_key (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *user);
|
||||
|
||||
int
|
||||
seaf_passwd_manager_get_decrypt_key_raw (SeafPasswdManager *mgr,
|
||||
const char *repo_id,
|
||||
const char *user,
|
||||
unsigned char *key_out,
|
||||
unsigned char *iv_out);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user