Компилятор 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>] [-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>Путь к файлу, в который будет сохранен исходный код тестов политики безопасности решения.
-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.
-h|--helpВыводит текст справки.
--versionВыводит версию компилятора nk-psl-gen-c.