include/parsec/parsec_mac.h#
Structures and Types Documentation#
struct _parsec_mac_label_t
#
Мандатные атрибуты безопасности объекта (файл, дескриптор)
Variables:
parsec_mac_t mac Уровень и категория
uint32_t type Тип метки
struct _parsec_mac_t
#
Мандатные атрибуты безопасности субъекта (процесс)
Variables:
parsec_cat_t cat Категория
parsec_lev_t lev Уровень
typedef mic_t
#
typedef uint32_t mic_t;
typedef parsec_cat_t
#
typedef uint64_t parsec_cat_t;
typedef parsec_lev_t
#
typedef uint8_t parsec_lev_t;
typedef parsec_mac_label_t
#
typedef struct _parsec_mac_label_t parsec_mac_label_t;
Мандатные атрибуты безопасности объекта (файл, дескриптор)
typedef parsec_mac_t
#
typedef struct _parsec_mac_t parsec_mac_t;
Мандатные атрибуты безопасности субъекта (процесс)
Functions Documentation#
function mac_t_to_parsec_mac_label_t
#
Получение мандатной метки объекта parsec_mac_label_t из мандатной метки mac_t.
void mac_t_to_parsec_mac_label_t (
const mac_t mact,
parsec_mac_label_t *pmact
)
Parameters:
mact
указатель на структуру мандатных атрибутов безопастности mac_tpmact
указатель на структуру мандатных атрибутов безопастности объекта
function mac_t_to_parsec_mac_t
#
Получение мандатной метки субъекта parsec_mac_t из мандатной метки mac_t.
void mac_t_to_parsec_mac_t (
const mac_t mact,
parsec_mac_t *pmact
)
Parameters:
mact
указатель на структуру мандатных атрибутов безопастности mac_tpmact
указатель на структуру мандатных атрибутов безопастности субъекта
function parsec_chmac
#
Установка мандатной метки файловому объекту
int parsec_chmac (
const char *filename,
const parsec_mac_label_t *mac
)
Parameters:
filename
путь к файловому объектуmac
указатель на структуру мандатных атрибутов безопастности объекта
Returns:
0 в случае успеха
function parsec_fchmac
#
Установка мандатной метки файловому дескриптору
int parsec_fchmac (
int fd,
const parsec_mac_label_t *mac
)
Parameters:
fd
файловый дескрипторmac
указатель на структуру мандатных атрибутов безопастности объекта
Returns:
0 в случае успеха
function parsec_fstatmac
#
Получение мандатной метки файлового дескриптора
int parsec_fstatmac (
int fd,
parsec_mac_label_t *mac
)
Parameters:
fd
файловый дескрипторmac
указатель на структуру мандатных атрибутов безопастности объекта
Returns:
0 в случае успеха
function parsec_getmac
#
Получение мандатной метки процесса
int parsec_getmac (
pid_t pid,
parsec_mac_t *mac
)
Parameters:
pid
идентификатор процессаmac
указатель на структуру мандатных атрибутов безопастности субъекта
Returns:
0 в случае успеха
function parsec_mac_enabled
#
Проверка на влюченность mac системы parsec.
int parsec_mac_enabled (
void
)
Returns:
1, если mac влючен; 0 в противном случае
function parsec_mac_label_t_from_text
#
Заполняет мандатную метку объекта на основе строки
int parsec_mac_label_t_from_text (
parsec_mac_label_t *mac,
const char *mac_txt
)
Parameters:
mac
указатель на структуру мандатных атрибутов безопастности объектаmac_txt
указатель на строку, описывающую мандатную метку: <Уровень>:<Категории>[:<Тип>]
Returns:
0 в случае успеха
function parsec_mac_label_t_to_mac_t
#
Получение мандатной метки mac_t из мандатной метки объекта parsec_mac_label_t.
mac_t parsec_mac_label_t_to_mac_t (
const parsec_mac_label_t *pmaclt
)
Parameters:
pmact
указатель на структуру мандатных атрибутов безопастности объекта
Returns:
указатель на структуру мандатных атрибутов безопастности mac_t в случае успеха, иначе NULL
function parsec_mac_label_t_to_text
#
Получение текстового представления мандатной метки объекта
char * parsec_mac_label_t_to_text (
const parsec_mac_label_t *mac,
int flags
)
Parameters:
mac
указатель на структуру мандатных атрибутов безопастности объектаflags
флаги, которые указывают на особенности формирования строки
Returns:
указатель на строку, описывающую мандатную метку объекта, иначе NULL
function parsec_mac_t_from_text
#
Заполняет мандатную метку субъекта на основе строки
int parsec_mac_t_from_text (
parsec_mac_t *mac,
const char *mac_txt
)
Parameters:
mac
указатель на структуру мандатных атрибутов безопастности субъектаmac_txt
указатель на строку, описывающую мандатную метку mac_t: <Уровень>:<Категории>[:<Тип>]
Returns:
0 в случае успеха
function parsec_mac_t_to_mac_t
#
Получение мандатной метки mac_t из мандатной метки субъекта parsec_mac_t.
mac_t parsec_mac_t_to_mac_t (
const parsec_mac_t *pmact,
mac_type_t type
)
Parameters:
pmact
указатель на структуру мандатных атрибутов безопастности субъектаtype
тип метки
Returns:
указатель на структуру мандатных атрибутов безопастности mac_t в случае успеха, иначе NULL
function parsec_mac_t_to_text
#
Получение текстового представления мандатной метки субъекта
char * parsec_mac_t_to_text (
const parsec_mac_t *mac,
mac_type_t type,
int flags
)
Parameters:
mac
указатель на структуру мандатных атрибутов безопастности субъектаtype
тип меткиflags
флаги, которые указывают на особенности формирования строки
Returns:
указатель на строку, описывающую мандатную метку объекта, иначе NULL
function parsec_setmac
#
Установка мандатной метки процессу
int parsec_setmac (
pid_t pid,
const parsec_mac_t *mac
)
Parameters:
pid
идентификатор процессаmac
указатель на структуру мандатных атрибутов безопастности субъекта
Returns:
0 в случае успеха
function parsec_statmac
#
Получение мандатной метки файлового объекта
int parsec_statmac (
const char *filename,
parsec_mac_label_t *mac
)
Parameters:
filename
путь к файловому объектуmac
указатель на структуру мандатных атрибутов безопастности объекта
Returns:
0 в случае успеха
function parsec_strict_mode
#
Проверка на влюченность МКЦ
int parsec_strict_mode (
void
)
Returns:
1, если МКЦ влючен; 0 в противном случае
Macros Documentation#
define MAC_ATTR_IGNORE
#
#define MAC_ATTR_IGNORE ((MAC_ATTR_IGNORER) | (MAC_ATTR_IGNOREW) | (MAC_ATTR_IGNOREX))
Тип метки, позволяющий игнорировать мандатную политику для всех операций
define MAC_ATTR_IGNORER
#
#define MAC_ATTR_IGNORER ((MAC_ATTR_IGNORER_CAT) | (MAC_ATTR_IGNORER_LVL))
Тип метки, позволяющий игнорировать мандатную политику для операции чтение
define MAC_ATTR_IGNORER_CAT
#
#define MAC_ATTR_IGNORER_CAT 0x01
Тип метки, позволяющий игнорировать мандатную политику по категориям для операции чтение
define MAC_ATTR_IGNORER_LVL
#
#define MAC_ATTR_IGNORER_LVL 0x08
Тип метки, позволяющий игнорировать мандатную политику по уровню конфиденциальности для операции чтение
define MAC_ATTR_IGNOREW
#
#define MAC_ATTR_IGNOREW ((MAC_ATTR_IGNOREW_CAT) | (MAC_ATTR_IGNOREW_LVL))
Тип метки, позволяющий игнорировать мандатную политику для операции записи
define MAC_ATTR_IGNOREW_CAT
#
#define MAC_ATTR_IGNOREW_CAT 0x02
Тип метки, позволяющий игнорировать мандатную политику по категориям для операции записи
define MAC_ATTR_IGNOREW_LVL
#
#define MAC_ATTR_IGNOREW_LVL 0x10
Тип метки, позволяющий игнорировать мандатную политику по уровню конфиденциальности для операции записи
define MAC_ATTR_IGNOREX
#
#define MAC_ATTR_IGNOREX ((MAC_ATTR_IGNOREX_CAT) | (MAC_ATTR_IGNOREX_LVL))
Тип метки, позволяющий игнорировать мандатную политику для операции исполнения
define MAC_ATTR_IGNOREX_CAT
#
#define MAC_ATTR_IGNOREX_CAT 0x04
Тип метки, позволяющий игнорировать мандатную политику по категориям для операции исполнения
define MAC_ATTR_IGNOREX_LVL
#
#define MAC_ATTR_IGNOREX_LVL 0x20
Тип метки, позволяющий игнорировать мандатную политику по уровню конфиденциальности для операции исполнения
define MAC_EMPTY
#
#define MAC_EMPTY (
m
) (((m)->lev == 0) && ((m)->cat == 0))
Проверка на нулевую мандатную метку для субъекта
define MAC_LABEL_EMPTY
#
#define MAC_LABEL_EMPTY (
m
) (MAC_EMPTY(&m->mac) && (!(m)->type))
Проверка на нулевую мандатную метку для объекта
define MAC_MAX_CATEGORY
#
#define MAC_MAX_CATEGORY ((uint64_t)(-1))
Максимально возможная категория
define MAC_MAX_LEVEL
#
#define MAC_MAX_LEVEL 255
Максимальный уровень конфиденциальности
define MAC_TYPE_ATTR
#
#define MAC_TYPE_ATTR (
v
) (v&0xff)
Получение типа метки