Расширение функциональности TLS Terminator

30 сентября 2026

ID tt_extra_functionality

Механизм плагинов расширяет функциональность TLS Terminator, позволяя внедрять пользовательскую логику в работу компонента TLS Terminator без изменения его исходного кода. Плагины для компонента TLS Terminator представляют собой динамические библиотеки. Чтобы использовать механизм плагинов, необходимо выполнить следующие действия:

  1. Разработать плагин, реализующий интерфейс, определенный в файле /opt/KasperskyOS-Community-Edition-<platform>-<version>/sysroot-*-kos/include/tls/tls_plugin_interface.h. Обязательны для реализации следующие функции интерфейса:
    • plugin_init() – инициализация плагина.
    • plugin_fini() – завершение работы плагина.
    • plugin_get_version() – получение версии плагина.

    Реализация остальных функций интерфейса опциональна и зависит от задач, для которых разрабатывается плагин.

  2. При запуске TLS Terminator необходимо передать путь к разработанному плагину через параметр запуска --plugin_path. Подробнее см. "Параметры запуска и переменные окружения TLS Terminator".

Детали работы механизма плагинов:

  1. Плагин загружается в память с использованием POSIX-функции dlopen().
  2. Проверяется совместимость версий с использованием функции plugin_get_version() и инициализация плагина через вызов plugin_init().
  3. При вызове функции, которая может быть перехвачена компонентом TLS Terminator, компонент
    1. Проверяет наличие реализации вызываемой функции в плагине с использованием POSIX-функции dlsym().
    2. Если функция реализована в плагине, то выполняется плагинная версия функции. В противном случае выполняется собственная версия функции компонента TLS Terminator.

    Компонент TLS Terminator при инициализации передает плагину набор указателей на свои собственные реализации функций через структуру tls_functions. Это позволяет плагину вызывать эти реализации, если необходимо.

  4. При завершении работы компонент TLS Terminator завершает работу плагина вызовом функции plugin_fini().
  5. Плагин выгружается из памяти с использованием POSIX-функции dlclose().

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