Добрый день!
У меня дистрибутив Fedora 9 (старый, знаю - так надо), установлены следующие свежесобранные пакеты:
opensc-0.11.13-1.fc9.zap.i386
openct-0.6.20-1.fc9.zap.i686
ccid-1.3.11-1.fc9.zap.i686
pcsc-lite-1.5.5-1.fc9.zap.i386
Моей целью является получение работоспособного интерфейса pkcs11, для разрабатываемого нами ПО. Жетоны у нас имеются системы ruToken 2.0 32K140Z[...]. Заранее извиняюсь за излишнее погружение в технические детали, мне важно понимать, как всё это работает внутри.
Вначале была и у меня проблема с очень редким "распознаванием" воткнутого рутокена, которую тут упоминали выше (`openct-tool list' показывает пустой список, требуется перевоткнуть токен несколько раз чтобы заработало). Чтобы вылечить это, сделал следующее изменение:
--- /lib/udev/openct_usb.orig 2010-04-13 17:47:18.000000000 +0400
+++ /lib/udev/openct_usb 2010-04-13 17:33:59.000000000 +0400
@@ -47,6 +47,7 @@
# we may neeed to wait for the device node, when usbfs is used
for A in "0 1 2 3 4 5 6 7 8 9"; do
if [ -e "$DEVICE" ]; then
+ sleep 0.1
/usr/sbin/openct-control attach usb:$PRODUCT usb $DEVICE
exit 0
fi
Теперь ifd драйвер нормально запускается практически всегда. rutoken-tool нормально работает. 'openct-tool read' почему-то не работает, не знаю почему (ещё плохо ориентируюсь в запутанной архитектуре API электронных жетонов):
[2|root@czap|~]openct-tool read
Detected Rutoken S driver
Card present, status changed
failed to read memory card: Operation not supported
Однако opensc-tool нормально считывает файлы с жетона:
[2|root@czap|~]opensc-tool -f
[opensc-tool] reader-pcsc.c:896:pcsc_detect_readers: SCardListReaders failed: 0x8010002e
[opensc-tool] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Using reader with a card: Rutoken S driver
3f00 type: DF, size: 0
select[NONE] lock[N/A] delete[NEVR] create[CHV2] rehab[N/A] inval[N/A] list[NONE] sec: 6F:01:01:01:01:00:FF:FF:02:00:00:00:02:00:00:00:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
3f000000 type: DF, size: 0
select[NONE] lock[N/A] delete[NEVR] create[CHV2] rehab[N/A] inval[N/A] list[NONE] sec: 6F:01:01:01:01:00:FF:FF:02:00:00:00:02:00:00:00:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
3f0000000000 type: DF, size: 0
select[NONE] lock[N/A] delete[NEVR] create[CHV2] rehab[N/A] inval[N/A] list[NONE] sec: 6F:01:01:01:01:00:FF:FF:02:00:00:00:02:00:00:00:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
...
Теперь самое интересное. Пытаюсь увидеть жетон через PKCS11 API:
[2|root@czap|~]pkcs11-tool -L
[opensc-pkcs11] reader-pcsc.c:896:pcsc_detect_readers: SCardListReaders failed: 0x8010002e
[opensc-pkcs11] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
[opensc-pkcs11] pkcs15.c:799:sc_pkcs15_bind: returning with: Unsupported card
[opensc-pkcs11] reader-pcsc.c:896:pcsc_detect_readers: SCardListReaders failed: 0x8010002e
[opensc-pkcs11] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Available slots:
Slot 0 (empty)
Slot 1 (empty)
Slot 2 (empty)
Slot 3 (empty)
Slot 4 (empty)
Slot 5 (empty)
Slot 6 (empty)
Slot 7 (empty)
Slot 8 (empty)
Slot 9 (empty)
Slot 10 (empty)
Slot 11 (empty)
Slot 12 (empty)
Slot 13 (empty)
Slot 14 (empty)
Slot 15 (empty)
Почему PKCS11 может не "видеть" жетона?
Далее. На сайте написано, что ruToken 2 работает с pcsc-lite версии 1.5.5 и выше. У меня установлена версия 1.5.5, однако почему-то рутокен не виден через этот интерфейс (запуск программы pcsc_scan из пакета pcsc-tools выдаёт, что не обнаружено ни одно устройство для чтения жетонов). Что здесь не так?