nk-psl-gen-c
Компилятор 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.