Приложение представляет собой ядро, основанное на Apache Felix и для полной функциональности требует обязательные (required) jar-модули (OSGi bundles) при запуске. Они должны находиться в src/main/resources/kncabundles при сборке. Также для сборки требуется криптопровайдер НУЦ KalkanCrypt.
ncalayer.der представляет собой подписанный CMS (в оригинале - JSON-файл), изначально входит в состав приложения и распаковывается при первом запуске. В дальнейшем скачивается из указанного в updurl адреса. Содержит служебную информацию, такую как:
При запуске (с версии 1.1 также и при установке) бандлы из кэша сверяются со списком из ncalayer.der, а при несоответствиях удаляются.
Бандлы идентифицируются по:
Обязательные параметры:
name - название бандла для отображения в окне "Управление модулями";
version - номер версии;
info - краткая информация об обновлении;
url - адрес для скачивания бандла;
hash - хэш бандла.
Также у бандлов могут быть опциональные параметры, такие как:
trusted.jks содержит сертификаты КУЦ и НУЦ, а также сертификаты для верификации файла обновления (ncalayer.der). То есть до истечения срока действия сертификата подписанта необходимо заранее включить его новый сертификат и обновить приложение. Некоторое время файл обновления будет подписываться старым ключом, а в дальнейшем уже будет использоваться новый ключ.