|
Packit |
366192 |
#ifndef _SEMANAGE_USER_INTERNAL_H_
|
|
Packit |
366192 |
#define _SEMANAGE_USER_INTERNAL_H_
|
|
Packit |
366192 |
|
|
Packit |
366192 |
#include <sepol/user_record.h>
|
|
Packit |
366192 |
#include <semanage/user_record.h>
|
|
Packit |
366192 |
#include <semanage/users_local.h>
|
|
Packit |
366192 |
#include <semanage/users_policy.h>
|
|
Packit |
366192 |
#include "database.h"
|
|
Packit |
366192 |
#include "handle.h"
|
|
Packit |
366192 |
#include "dso.h"
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden_proto(semanage_user_add_role)
|
|
Packit |
366192 |
hidden_proto(semanage_user_clone)
|
|
Packit |
366192 |
hidden_proto(semanage_user_compare)
|
|
Packit |
366192 |
hidden_proto(semanage_user_compare2)
|
|
Packit |
366192 |
hidden_proto(semanage_user_create)
|
|
Packit |
366192 |
hidden_proto(semanage_user_free)
|
|
Packit |
366192 |
hidden_proto(semanage_user_get_mlslevel)
|
|
Packit |
366192 |
hidden_proto(semanage_user_get_mlsrange)
|
|
Packit |
366192 |
hidden_proto(semanage_user_get_name)
|
|
Packit |
366192 |
hidden_proto(semanage_user_get_roles)
|
|
Packit |
366192 |
hidden_proto(semanage_user_key_create)
|
|
Packit |
366192 |
hidden_proto(semanage_user_key_extract)
|
|
Packit |
366192 |
hidden_proto(semanage_user_key_free)
|
|
Packit |
366192 |
hidden_proto(semanage_user_set_mlslevel)
|
|
Packit |
366192 |
hidden_proto(semanage_user_set_mlsrange)
|
|
Packit |
366192 |
hidden_proto(semanage_user_set_name)
|
|
Packit |
366192 |
hidden_proto(semanage_user_exists)
|
|
Packit |
366192 |
hidden_proto(semanage_user_query)
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER record: metod table */
|
|
Packit |
366192 |
extern record_table_t SEMANAGE_USER_RTABLE;
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER BASE record: method table */
|
|
Packit |
366192 |
extern record_table_t SEMANAGE_USER_BASE_RTABLE;
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER EXTRA record: method table */
|
|
Packit |
366192 |
extern record_table_t SEMANAGE_USER_EXTRA_RTABLE;
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* ============ Init/Release functions ========== */
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER BASE record, FILE backend */
|
|
Packit |
366192 |
extern int user_base_file_dbase_init(semanage_handle_t * handle,
|
|
Packit |
366192 |
const char *path_ro,
|
|
Packit |
366192 |
const char *path_rw,
|
|
Packit |
366192 |
dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
extern void user_base_file_dbase_release(dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER EXTRA record, FILE backend */
|
|
Packit |
366192 |
extern int user_extra_file_dbase_init(semanage_handle_t * handle,
|
|
Packit |
366192 |
const char *path_ro,
|
|
Packit |
366192 |
const char *path_rw,
|
|
Packit |
366192 |
dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
extern void user_extra_file_dbase_release(dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER BASE record, POLICYDB backend */
|
|
Packit |
366192 |
extern int user_base_policydb_dbase_init(semanage_handle_t * handle,
|
|
Packit |
366192 |
dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
extern void user_base_policydb_dbase_release(dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/* USER record, JOIN backend */
|
|
Packit |
366192 |
extern int user_join_dbase_init(semanage_handle_t * handle,
|
|
Packit |
366192 |
dbase_config_t * join1,
|
|
Packit |
366192 |
dbase_config_t * join2,
|
|
Packit |
366192 |
dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
extern void user_join_dbase_release(dbase_config_t * dconfig);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/*======= Internal API: Base (Policy) User record ====== */
|
|
Packit |
366192 |
|
|
Packit |
366192 |
#ifndef _SEMANAGE_USER_BASE_DEFINED_
|
|
Packit |
366192 |
struct semanage_user_base;
|
|
Packit |
366192 |
typedef struct semanage_user_base semanage_user_base_t;
|
|
Packit |
366192 |
#define _SEMANAGE_USER_BASE_DEFINED_
|
|
Packit |
366192 |
#endif
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_create(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t ** user_ptr);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_clone(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_base_t * user,
|
|
Packit |
366192 |
semanage_user_base_t ** user_ptr);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_key_extract(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_base_t * user,
|
|
Packit |
366192 |
semanage_user_key_t ** key);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden const char *semanage_user_base_get_name(const semanage_user_base_t *
|
|
Packit |
366192 |
user);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_set_name(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *name);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden const char *semanage_user_base_get_mlslevel(const semanage_user_base_t *
|
|
Packit |
366192 |
user);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_set_mlslevel(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *mls_level);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden const char *semanage_user_base_get_mlsrange(const semanage_user_base_t *
|
|
Packit |
366192 |
user);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_set_mlsrange(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *mls_range);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_get_num_roles(const semanage_user_base_t * user);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_add_role(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *role);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden void semanage_user_base_del_role(semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *role);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_has_role(const semanage_user_base_t * user,
|
|
Packit |
366192 |
const char *role);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_get_roles(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_base_t * user,
|
|
Packit |
366192 |
const char ***roles_arr,
|
|
Packit |
366192 |
unsigned int *num_roles);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_base_set_roles(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_base_t * user,
|
|
Packit |
366192 |
const char **roles_arr,
|
|
Packit |
366192 |
unsigned int num_roles);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden void semanage_user_base_free(semanage_user_base_t * user);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/*=========== Internal API: Extra User record ==========*/
|
|
Packit |
366192 |
struct semanage_user_extra;
|
|
Packit |
366192 |
typedef struct semanage_user_extra semanage_user_extra_t;
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_extra_create(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_extra_t ** user_extra_ptr);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_extra_clone(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_extra_t * user_extra,
|
|
Packit |
366192 |
semanage_user_extra_t ** user_extra_ptr);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden const char *semanage_user_extra_get_name(const semanage_user_extra_t *
|
|
Packit |
366192 |
user_extra);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_extra_set_name(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_extra_t * user_extra,
|
|
Packit |
366192 |
const char *name);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden const char *semanage_user_extra_get_prefix(const semanage_user_extra_t *
|
|
Packit |
366192 |
user_extra);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_extra_set_prefix(semanage_handle_t * handle,
|
|
Packit |
366192 |
semanage_user_extra_t * user_extra,
|
|
Packit |
366192 |
const char *prefix);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden void semanage_user_extra_free(semanage_user_extra_t * user_extra);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
/*======== Internal API: Join record ========== */
|
|
Packit |
366192 |
hidden void semanage_user_key_unpack(const semanage_user_key_t * key,
|
|
Packit |
366192 |
const char **name);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_join(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_base_t * record1,
|
|
Packit |
366192 |
const semanage_user_extra_t * record2,
|
|
Packit |
366192 |
semanage_user_t ** result);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
hidden int semanage_user_split(semanage_handle_t * handle,
|
|
Packit |
366192 |
const semanage_user_t * record,
|
|
Packit |
366192 |
semanage_user_base_t ** split1,
|
|
Packit |
366192 |
semanage_user_extra_t ** split2);
|
|
Packit |
366192 |
|
|
Packit |
366192 |
#endif
|