00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#ifndef __RSBAC_ADF_SYSHELPERS_H
00012
#define __RSBAC_ADF_SYSHELPERS_H
00013
00014
00015
#include <rsbac/types.h>
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
#if defined(CONFIG_RSBAC_MAC) || defined(CONFIG_RSBAC_MAC_MAINT)
00032
int rsbac_mac_set_curr_level(
rsbac_security_level_t level,
00033
rsbac_mac_category_vector_t categories);
00034
00035
int rsbac_mac_get_curr_level(
rsbac_security_level_t * level_p,
00036
rsbac_mac_category_vector_t * categories_p);
00037
00038
int rsbac_mac_get_max_level(
rsbac_security_level_t * level_p,
00039
rsbac_mac_category_vector_t * categories_p);
00040
00041
int rsbac_mac_get_min_level(
rsbac_security_level_t * level_p,
00042
rsbac_mac_category_vector_t * categories_p);
00043
00044
int rsbac_mac_add_p_tru(
rsbac_pid_t pid,
00045
rsbac_uid_t uid,
00046
rsbac_time_t ttl);
00047
00048
int rsbac_mac_remove_p_tru(
rsbac_pid_t pid,
00049
rsbac_uid_t uid);
00050
00051
int rsbac_mac_add_f_tru(
rsbac_mac_file_t file,
00052
rsbac_uid_t uid,
00053
rsbac_time_t ttl);
00054
00055
int rsbac_mac_remove_f_tru(
rsbac_mac_file_t file,
00056
rsbac_uid_t uid);
00057
00058
#endif
00059
00060
00061
00062
00063
00064
00065
00066
00067
#if defined(CONFIG_RSBAC_PM) || defined(CONFIG_RSBAC_PM_MAINT)
00068
00069
00070
00071
int rsbac_pm(
enum rsbac_pm_function_type_t,
00072
union rsbac_pm_function_param_t,
00073
rsbac_pm_tkt_id_t);
00074
00075
int rsbac_pm_change_current_task(
rsbac_pm_task_id_t);
00076
00077
int rsbac_pm_create_file(
const char *,
00078
int,
00079
rsbac_pm_object_class_id_t);
00080
#endif
00081
00082
00083
00084
00085
00086
#if defined(CONFIG_RSBAC_RC) || defined(CONFIG_RSBAC_RC_MAINT)
00087
00088
00089
00090
00091
00092
extern int rsbac_rc_sys_copy_role (
rsbac_rc_role_id_t from_role,
00093
rsbac_rc_role_id_t to_role);
00094
00095
00096
extern int rsbac_rc_sys_get_item (
enum rsbac_rc_target_t target,
00097
union rsbac_rc_target_id_t tid,
00098
union rsbac_rc_target_id_t subtid,
00099
enum rsbac_rc_item_t item,
00100
union rsbac_rc_item_value_t * value_p,
00101
rsbac_time_t * ttl_p);
00102
00103
00104
extern int rsbac_rc_sys_set_item (
enum rsbac_rc_target_t target,
00105
union rsbac_rc_target_id_t tid,
00106
union rsbac_rc_target_id_t subtid,
00107
enum rsbac_rc_item_t item,
00108
union rsbac_rc_item_value_t value,
00109
rsbac_time_t ttl);
00110
00111
00112
extern int rsbac_rc_sys_change_role (
rsbac_rc_role_id_t role);
00113
00114
00115
int rsbac_rc_sys_get_eff_rights (
enum rsbac_target_t target,
00116
union rsbac_target_id_t tid,
00117
rsbac_rc_request_vector_t * request_vector,
00118
rsbac_time_t * ttl_p);
00119
00120
int rsbac_rc_sys_get_current_role (
rsbac_rc_role_id_t * role_p);
00121
00122
#endif
00123
00124
00125
00126
#if defined(CONFIG_RSBAC_AUTH) || defined(CONFIG_RSBAC_AUTH_MAINT)
00127
00128
int rsbac_auth_add_p_cap(
rsbac_pid_t pid,
00129
enum rsbac_auth_cap_type_t cap_type,
00130
struct rsbac_auth_cap_range_t cap_range,
00131
rsbac_time_t ttl);
00132
00133
00134
int rsbac_auth_remove_p_cap(
rsbac_pid_t pid,
00135
enum rsbac_auth_cap_type_t cap_type,
00136
struct rsbac_auth_cap_range_t cap_range);
00137
00138
00139
int rsbac_auth_add_f_cap(
rsbac_auth_file_t file,
00140
enum rsbac_auth_cap_type_t cap_type,
00141
struct rsbac_auth_cap_range_t cap_range,
00142
rsbac_time_t ttl);
00143
00144
00145
int rsbac_auth_remove_f_cap(
rsbac_auth_file_t file,
00146
enum rsbac_auth_cap_type_t cap_type,
00147
struct rsbac_auth_cap_range_t cap_range);
00148
#endif
00149
00150
00151
00152
#if defined(CONFIG_RSBAC_REG) || defined(CONFIG_RSBAC_REG_MAINT)
00153
00154
00155
00156
00157
00158
int rsbac_reg_syscall(
rsbac_reg_handle_t handle,
00159
void * arg);
00160
#endif
00161
00162
00163
00164
#if defined(CONFIG_RSBAC_ACL) || defined(CONFIG_RSBAC_ACL_MAINT)
00165
int rsbac_acl_sys_set_acl_entry (
enum rsbac_target_t target,
00166
union rsbac_target_id_t tid,
00167
enum rsbac_acl_subject_type_t subj_type,
00168
rsbac_acl_subject_id_t subj_id,
00169
rsbac_acl_rights_vector_t rights,
00170
rsbac_time_t ttl);
00171
00172
int rsbac_acl_sys_remove_acl_entry (
enum rsbac_target_t target,
00173
union rsbac_target_id_t tid,
00174
enum rsbac_acl_subject_type_t subj_type,
00175
rsbac_acl_subject_id_t subj_id);
00176
00177
int rsbac_acl_sys_remove_acl (
enum rsbac_target_t target,
00178
union rsbac_target_id_t tid);
00179
00180
int rsbac_acl_sys_add_to_acl_entry (
enum rsbac_target_t target,
00181
union rsbac_target_id_t tid,
00182
enum rsbac_acl_subject_type_t subj_type,
00183
rsbac_acl_subject_id_t subj_id,
00184
rsbac_acl_rights_vector_t rights,
00185
rsbac_time_t ttl);
00186
00187
int rsbac_acl_sys_remove_from_acl_entry(
enum rsbac_target_t target,
00188
union rsbac_target_id_t tid,
00189
enum rsbac_acl_subject_type_t subj_type,
00190
rsbac_acl_subject_id_t subj_id,
00191
rsbac_acl_rights_vector_t rights);
00192
00193
int rsbac_acl_sys_set_mask (
enum rsbac_target_t target,
00194
union rsbac_target_id_t tid,
00195
rsbac_acl_rights_vector_t mask);
00196
00197
int rsbac_acl_sys_remove_user (
rsbac_uid_t uid);
00198
00199
int rsbac_acl_sys_get_mask (
enum rsbac_target_t target,
00200
union rsbac_target_id_t tid,
00201
rsbac_acl_rights_vector_t * mask_p);
00202
00203
00204
int rsbac_acl_sys_get_rights (
enum rsbac_target_t target,
00205
union rsbac_target_id_t tid,
00206
enum rsbac_acl_subject_type_t subj_type,
00207
rsbac_acl_subject_id_t subj_id,
00208
rsbac_acl_rights_vector_t * rights_p,
00209
boolean inherit);
00210
00211
int rsbac_acl_sys_get_tlist (
enum rsbac_target_t target,
00212
union rsbac_target_id_t tid,
00213
struct rsbac_acl_entry_t ** entry_pp,
00214
rsbac_time_t ** ttl_pp);
00215
00216
int rsbac_acl_sys_group(
enum rsbac_acl_group_syscall_type_t call,
00217
union rsbac_acl_group_syscall_arg_t arg);
00218
00219
#endif
00220
00221
00222
00223
#if defined(CONFIG_RSBAC_JAIL)
00224
00225
int rsbac_jail_sys_jail(
rsbac_version_t version,
00226
char *
path,
00227
rsbac_jail_ip_t ip,
00228
rsbac_jail_flags_t flags,
00229
rsbac_cap_vector_t max_caps);
00230
#endif
00231
00232
#endif