nk-psl-gen-c

12 января 2026

ID nkpslgenc

Компилятор nk-psl-gen-c генерирует исходный код модуля безопасности Kaspersky Security Module на языке C на основе описания политики безопасности решения и IDL-, CDL-, EDL-описаний. Этот код используется скриптом makekss.

Компилятор nk-psl-gen-c также позволяет генерировать исходный код тестов политики безопасности решения на языке C на основе тестов политики безопасности решения на языке PAL.

Синтаксис shell-команды для запуска компилятора nk-psl-gen-c:

nk-psl-gen-c {-I|--include-dir} <SYSROOT_INCLUDE_DIR> [{-I|--include-dir} <DIR>]...

[{-o|--output} <FILE>] [--out-tests <FILE>] [{-t|--tests} <ARG>] [{-a|--audit} <FILE>]

[--enable-preprocessor] [--preprocessor-definition=<VAR_NAME>[=<VAR_VALUE>]]...

[--preprocessor-dump-dir <DIR>] [--platform <NAME>] [-h|--help] [--version] <INPUT>

Параметры:

  • INPUT

    Путь к верхнеуровневому файлу описания политики безопасности решения. Как правило, это файл security.psl.

  • {-I|--include-dir} <SYSROOT_INCLUDE_DIR>

    Путь к директории sysroot-*-kos/include из состава KasperskyOS SDK.

  • {-I|--include-dir} <DIR>

    Эти параметры нужно использовать, чтобы задать пути к директориям с IDL-, CDL-, EDL-файлами, относящимися к решению, а также пути к директориям, которые содержат вспомогательные файлы из состава KasperskyOS SDK (common, toolchain/include).

  • {-o|--output} <FILE>

    Путь к файлу, в который будет сохранен исходный код модуля безопасности Kaspersky Security Module и опционально исходный код тестов политики безопасности решения. Путь должен включать существующие директории.

  • --out-tests <FILE>

    Путь к файлу, в который будет сохранен исходный код тестов политики безопасности решения (на языке C++).

  • {-t|--tests} <ARG>

    Задает, нужно ли генерировать исходный код тестов политики безопасности решения. ARG может принимать следующие значения:

    • skip – исходный код тестов не генерируется. Это значение используется по умолчанию, если параметр {-t|--tests} <ARG> не указан.
    • generate – исходный код тестов генерируется. Если исходный код тестов генерируется, то рекомендуется использовать параметр --out-tests <FILE>, иначе исходный код тестов будет сохранен в одном файле с исходным кодом модуля безопасности Kaspersky Security Module, что может привести к ошибкам при сборке.
  • {-a|--audit} <FILE>

    Путь к файлу, в который будет сохранен исходный код декодера аудита на языке C.

  • --enable-preprocessor

    Включает шаблонизатор Ginger.

  • --preprocessor-definition=<VAR_NAME>[=<VAR_VALUE>]

    Эти параметры нужно использовать, чтобы задать переменные, используемые при раскрытии PSL-шаблонов Ginger. Например, --preprocessor-definition=foo=bar задает переменную foo со значением bar, а --preprocessor-definition=USE_DYNLD задает переменную USE_DYNLD со значением TRUE. Переменная USE_DYNLD имеет значение TRUE, поскольку переменные, используемые при раскрытии PSL-шаблонов Ginger, по умолчанию имеют значение TRUE.

  • --preprocessor-dump-dir <DIR>

    Путь к директории, где будут сохранены PSL-файлы, полученные из PSL-шаблонов Ginger. Эти PSL-файлы нужны только для того, чтобы проверить, что получилось в результате раскрытия PSL-шаблонов Ginger, и не используются для генерации исходного кода модуля безопасности Kaspersky Security Module. (При генерации исходного кода модуля безопасности PSL-шаблоны Ginger раскрываются в памяти независимо от того, используется параметр --preprocessor-dump-dir <DIR> или нет.) Имена PSL-файлов формируются на основе абсолютных путей к PSL-шаблонам Ginger. Например, PSL-файл foo!bar!baz.psl соответствует PSL-шаблону Ginger, расположенному по пути /foo/bar/baz.psl.

  • --platform <NAME>

    Аппаратная платформа, для которой необходимо сгенерировать код (например, --platform aarch64). Чтобы получить набор поддерживаемых аппаратных платформ, нужно вывести текст справки, указав параметр -h|--help. Если параметр --platform <NAME> не указан, то компилятор nk-psl-gen-c генерирует код для аппаратной платформы, заданной в файле system.platform, который находится в директории sysroot-*-kos/include из состава KasperskyOS SDK. Путь к этой директории задает обязательный параметр {-I|--include-dir} <SYSROOT_INCLUDE_DIR>.

  • -h|--help

    Выводит текст справки.

  • --version

    Выводит версию компилятора nk-psl-gen-c.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!