Документация
ОС Аврора 5.1.5

Добавление вендорских библиотек PKCS11

Для работы с физическими токенами различных вендоров могут понадобиться библиотеки для аутентификации по клиентским сертификатам в браузере. Подобная библиотека может реализовывать интерфейс PKCS11.

Вендорский пакет библиотеки, реализующей PKCS11, является вариантом Аврора-проекта с установкой дополнительных пакетов. Основные требования к конфигурационным файлам подобных проектов описаны в разделе Конфигурационные пакеты. В этом разделе приводятся дополнительные требования к структуре и конфигурации библиотек, работающих с технологией PKCS11.

Утилита p11-kit в ОС Аврора

Утилита p11-kit для формирования списка поддерживаемых токенов сканирует каталог с конфигурационными файлами /opt/extension/p11-kit-modules/, в котором для каждой библиотеки должен находиться конфигурационный файл <название_библиотеки>.module, соответствующий формату p11-kit.

Создание библиотеки, реализующей PKCS11

Чтобы создать вендорскую библиотеку PKCS11 для ОС Аврора, необходимо выполнить следующие действия:

1. Создать библиотеку, например, с именем ru.auroraos.mylib. Она в процессе сборки будет генерировать so-файл, например, libmypkcs11.so, через который будет предоставляться интерфейс PKCS11.

2. Создать конфигурационный файл mylib.module, содержащий путь к so-файлу на Аврора-устройстве. so-файл должен быть помещён в подкаталог каталога /opt/extension/p11-kit-modules/, имя подкаталога должно совпадать с именем проекта библиотеки, ru.auroraos.mylib. Пример файла .module:

module: /opt/extension/p11-kit-modules/ru.auroraos.mylib/libmypkcs11.so

3. Описать desktop-файл библиотеки, в частности, команду запуска Exec. Пример:

[Desktop Entry]
Type=Application
X-Nemo-Application-Type=silica-qt5
Name=My PKCS11 lib
Icon=ru.auroraos.mylib
Exec=sailfish-qml ru.auroraos.mylib
NoDisplay=true

[X-Application]
Permissions=
ApplicationName=mylib
OrganizationName=ru.auroraos

4. Описать spec-файл библиотеки для корректного формирования её rpm-пакета. Для библиотеки с именем ru.auroraos.mylib файлы .so и .module должны быть установлены по пути /opt/extension/p11-kit-modules/ru.auroraos.mylib. Пример spec-файла:

%global __provides_exclude libmypkcs11.so
Name:          ru.auroraos.mylib
Summary:       My PKCS#11 library
Version:       0.1
Release:       1
License:       License
Url:           https://www.myurl.ru
Source0:       %{name}-%{version}.tar.bz2
Source1:       mylib.module
Source2:       libmypkcs11.so
Source3:       ru.auroraos.mylib.desktop
BuildRequires: pkgconfig(sailfishapp)
Requires:      libauroraapp-launcher

%description
My PKCS#11 library for tokens.

%install
mkdir -p %{buildroot}/opt/extension/p11-kit-modules/ru.auroraos.mylib
cp %{SOURCE1} %{buildroot}/opt/extension/p11-kit-modules/ru.auroraos.mylib
cp %{SOURCE2} %{buildroot}/opt/extension/p11-kit-modules/ru.auroraos.mylib
mkdir -p %{buildroot}%{_datadir}/applications/
cp %{SOURCE3} %{buildroot}%{_datadir}/applications/

desktop-file-install --delete-original             \
--dir %{buildroot}%{_datadir}/applications       \
%{buildroot}%{_datadir}/applications/*.desktop

%files
%attr(0664,root,root) /opt/extension/p11-kit-modules/ru.auroraos.mylib/mylib.module
/opt/extension/p11-kit-modules/ru.auroraos.mylib/libmypkcs11.so
%{_datadir}/applications/ru.auroraos.mylib.desktop

5. Собрать rpm-пакет и использовать профиль Extended для его подписи.

Использование библиотеки

После установки библиотеки к её функциональности можно обращаться, например, с помощью утилиты pkcs11-tool:

pkcs11-tool --module /opt/extension/p11-kit-modules/ru.auroraos.mylib/libmypkcs11.so -l --pin 12345678 --write-object ./client_A_gost.der --type privkey --id 2222

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.