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_t

  • pmact указатель на структуру мандатных атрибутов безопастности объекта

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_t

  • pmact указатель на структуру мандатных атрибутов безопастности субъекта

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)

Получение типа метки