Настройка доступа к порталу Госуслуг при помощи ruToken в Calculate
Calculate Linux это один из трёх живых российских дистрибутивов по информации с distrowatch.com:
51. ROSA - http://distrowatch.com/table.php?distribution=rosa
100. Calculate Linux - http://distrowatch.com/table.php?distribution=calculate
142. Alt Linux - http://distrowatch.com/table.php?distribution=alt
ключ называется JaCarta mini, продаётся компанией Ростелеком:
http://www.aladdin-rd.ru/catalog/jacart … b-gost.php
Насколько я понял, это какая-то разновидность ruToken
устанавливал пакеты:
dev-libs/opensc-0.12.2-r2 (там драйвер) с USE="pcsc-lite",
sys-apps/pcsc-lite-1.8.12-r1 (это какой-то стандарт, видимо на API для доступа к Portable Card/Smart Card)с USE="udev"
настроил детектирование устройства в /etc/rc.conf добавив туда строку
rc_hotplug=«pcscd»
убедился, что /etc/init.d/pcscd добавлен в автозагрузку
перезагрузил машину (потому что используется openrc и проще так, чем переключаться в single user mode и обратно)
при этом почему-то не создаётся каталог /usr/lib64/readers/usb (операционка 64-х битная, поэтому не просто /usr/lib, а /usr/lib64)
и выводится ошибка
00000058 hotplug_libudev.c:127:HPReadBundleValues() Cannot open PC/SC drivers directory: /usr/lib64/readers/usb
директорию-то можно и вручную создать, но туда ничего не попадает и если (остановив /etc/init.d/pcscd stop) запустить
# pcscd --foreground --debug
то можно видеть, что устройство не обнаруживается
не видно устройство и в opensc
# opensc-explorer
OpenSC Explorer version 0.12.2
No smart card readers found.
Ну там дальше ещё надо настроить,
какую-то библиотеку, работающую через APDU
и OpenSSH с ГОСТ,
а так же плагин с портала госуслуг
но до этого я не добрался.
Оборудование работоспособное, потому что в трофейном дистрибутиве Debian, собираемом врагами - всё работает.
по-моему чего-то не хватает (кажется какой-то настройки в opensc), но мне не ясно - чего именно
Почитал форум, доустановил пакет app-crypt/ccid-1.4.18 (USE="usb")
в файл
/usr/lib64/readers/usb/ifd-ccid.bundle/Contents/Info.plist
дописал строчки
<string>0x24DC</string>
<string>0x0101</string>
потому что так показывает lsusb
и строчку
<string>Aktiv Rutoken GOST</string>
потому что не знал, что сюда написать, а под таким именем его детектит pcscd
Теперь ошибка такая:
00000089 hotplug_libudev.c:299:get_driver() Looking for a driver for VID: 0x24DC, PID: 0x0101, path: /dev/bus/usb/001/010
00000007 hotplug_libudev.c:438:HPAddDevice() Adding USB device: Aktiv Rutoken GOST
00000064 readerfactory.c:1015:RFInitializeReader() Attempting startup of Aktiv Rutoken GOST [Main Interface] 00 00 using /usr/lib64/readers/usb/ifd-ccid.bundle/Contents/Linux/libccid.so
00000181 readerfactory.c:900:RFBindFunctions() Loading IFD Handler 3.0
00000029 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ifdhandler.c:1927:init_driver() Driver version: 1.4.18
00000635 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ifdhandler.c:1944:init_driver() LogLevel: 0x0003
00000007 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ifdhandler.c:1955:init_driver() DriverOptions: 0x0000
00000181 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ifdhandler.c:96:CreateChannelByNameOrChannel() Lun: 0, device: usb:24dc/0101:libudev:0:/dev/bus/usb/001/010
00000037 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:284:OpenUSBByName() Using: /usr/lib64/readers/usb/ifd-ccid.bundle/Contents/Info.plist
00000599 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:302:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000014 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:303:OpenUSBByName() ifdProductString: Generic CCID driver
00000011 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:304:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00003475 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:191:close_libusb_if_needed() libusb_exit
00000084 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ccid_usb.c:704:OpenUSBByName() Device not found?
00000012 /var/calculate/tmp/portage/app-crypt/ccid-1.4.18/work/ccid-1.4.18/src/ifdhandler.c:130:CreateChannelByNameOrChannel() failed
00000011 readerfactory.c:1046:RFInitializeReader() Open Port 0x200000 Failed (usb:24dc/0101:libudev:0:/dev/bus/usb/001/010)
00000008 readerfactory.c:338:RFAddReader() Aktiv Rutoken GOST [Main Interface] init failed.
00000017 readerfactory.c:561:RFRemoveReader() UnrefReader() count was: 1
00000009 readerfactory.c:1066:RFUnInitializeReader() Attempting shutdown of Aktiv Rutoken GOST [Main Interface] 00 00.
00000008 readerfactory.c:937:RFUnloadReader() Unloading reader driver.