Re: Как правильно устанавливать RuToken в Linux?

Нет, форматы хранения данных у rtPKCS11.dll и OpenSC разные. Совместимости между ними нет.
Однако, OpenSC компилируется и работает в windows. В этом случае вы получаете кроссплатформенный формат (OpenSC) и утилиты, которые Вам нужны.
http://www.opensc-project.org/files/build/
последняя версия - 009

Отдельной утилиты для windows у нас нет.
Но, возможно, Вы найдете, что-либо подобное у других производителей токенов.

Re: Как правильно устанавливать RuToken в Linux?

Кирилл Мещеряков пишет:

Не совсем.
В debian/ubuntu это будет так:
#ln -s /etc/init.d/openct /etc/rc0.d/K50openct
#ln -s /etc/init.d/openct /etc/rc5.d/S50openct

Уровень выполнения это цифра после rc

0 - выключение
5 - уровень 5 (графический интерфейс)

Здравствуйте! Вот на счет автозапуска openct в OpenSuSE Linux, может пригодится кому..
В общем, настроил просто и легко, через типовые утилиты: Центр управления YaST-далее Системные службы (Уровень запуска)-в списке служб нашел openct - включил автозапуск. Все.

Re: Как правильно устанавливать RuToken в Linux?

Здравстуйте! Не могу теперь собрать opensc, вот что делаю:

$ ./configure --prefix=/usr --sysconfdir=/etc --enable-openct --enable-openssl
.....................
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for OPENSSL... yes
checking for OPENCT... no
configure: error: openct requested but not available

получается, что openct не установлен? Но служба запущена, openct  я компилировал, токен определяется...

# openct-tool list
  0 Rutoken S driver

запрос к менеджеру пакетов:

# rpm -qva |grep openct
libopenct1-0.6.17-3.1.x86_64
# rpm -q openct
пакет openct не установлен

Что не так, надо установить пакет, или что сделать? Заранее спасибо. Дмитрий.

Re: Как правильно устанавливать RuToken в Linux?

пакет pkg-config у Вас установлен?
должно работать

Re: Как правильно устанавливать RuToken в Linux?

Здравствуйте! Да, pkg-config установлен.

# rpm -q pkg-config
pkg-config-0.23-49.2.x86_64

А что должно работать? Я не могу скомпилировать opensc..

Re: Как правильно устанавливать RuToken в Linux?

определение того, что OpenCT установлен, должно работать, если установлен pkg-config
пересоберите OpenCT, а если это не поможет, пришлите, пожалуйста, вывод команд ./configure для OpenCT и OpenSC
будем разбираться

Re: Как правильно устанавливать RuToken в Linux?

определение того, что OpenCT установлен, должно работать, если установлен pkg-config
пересоберите OpenCT, а если это не поможет, пришлите, пожалуйста, вывод команд ./configure для OpenCT и OpenSC
будем разбираться

Высылаю вывод команды ./configure:

http://letitbit.net/download/32559.325b … g.zip.html

После запуска ./configure пишет

configure: error: openct requested but not available

Но openct вроде работает, я же писал (см. пред. сообщения). Показыват Rutoken driver и т.д.

Заранее спасибо. Дмитрий

Re: Как правильно устанавливать RuToken в Linux?

Установите пакет openct-devel. В него входит файл /usr/lib(64?)/pkgconfig/libopenct.pc, хидеры и библиотеки для разработки приложений, использующих openct.

Re: Как правильно устанавливать RuToken в Linux?

этот вариант не подойдет
таким образом вы смешаете скомпилированный Вами собственноручно код с бинарниками из пакета.

(2010-04-19 17:02:25 отредактировано zap)

Re: Как правильно устанавливать RuToken в Linux?

Извините, что влез. Просто страницей раньше SubDmitry писал:

запрос к менеджеру пакетов:

# rpm -qva |grep openct
libopenct1-0.6.17-3.1.x86_64
# rpm -q openct
пакет openct не установлен

Вот я и обратил внимание, что  пакет libopenct1 установлен, а libopenct-devel - нет. Как раз симптомом этого и является то, что configure (pkg-config) не находит libopenct.pc.

SubDmitry, если я неправ и Вы собрали пакет openct из исходников, тогда у Вас, скорее всего, другая проблема (помимо того, что Вам следует удалить пакет libopenct1). При конфигурации для 64-битных систем следует указывать configure ещё ключик --libdir=/usr/lib64 (если Вы использовали --prefix=/usr). Но вообще, для вручную собранных библиотек я бы рекомендовал сборку и установку пакета в каталог /usr/local/..., потом будет проще удалять устаревшие библиотеки итд. По умолчанию пакеты конфигурируются в каталог /usr/local совсем не зря.

То есть, я бы рекомендовал конфигурировать openct так:

./configure --sysconfdir=/etc --libdir=/usr/local/lib64 --enable-usb --enable-pcsc

Если, всё-таки, Вы решите устанавливать openct в системные каталоги, тогда:

./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64 --enable-usb --enable-pcsc

Re: Как правильно устанавливать RuToken в Linux?

Zap, спасибо за помощь. Буду пробовать конфигурировать по твоему совету. Теперь по поводу удаления libopenct1.. Я пытался это сделать сразу при удалении пакета openct из дистрибутива, только не получилось:

# rpm -e libopenct1-0.6.17-3.1.x86_64
ошибка: Неудовлетворенные зависимости:
    libopenct.so.1()(64bit) нужен для (установлен)libopensc2-0.11.9-2.1.x86_64

# rpm -e libopensc2-0.11.9-2.1.x86_64
ошибка: Неудовлетворенные зависимости:
    libopensc.so.2()(64bit) нужен для (установлен)openssh-5.2p1-9.1.x86_64
    libscconf.so.2()(64bit) нужен для (установлен)openssh-5.2p1-9.1.x86_64

Так что, я не знаю, стОит ли удалять этот самый libopenct1?

Жду ответа. Заранее спасибо. Дмитрий.

(2010-04-20 14:18:10 отредактировано zap)

Re: Как правильно устанавливать RuToken в Linux?

Понятно, круговая порука и rpm hell :)

В общем, в дистрибутивах линукс, основанных на пакетах, лучше всего собирать и устанавливать пакеты а не собирать из исходников. Иначе разрушаются цепочки зависимостей, и получаем то, что выше. Если начать собирать из исходников библиотеки, то потом придётся собирать из исходников все зависящие от них пакеты - openssh, mozilla итд.

В принципе, обычно это несложно - я так всегда делаю :-) Надо всего лишь взять исходный пакет старой версии, заменить .tar.gz на новую версию, в .spec файле исправить новую версию и собрать бинарный пакет.

Если у Вас OpenSuSE 11.2, то исходные пакеты opensc и openct берёте, например, тут. Далее распаковываете их:

rpm -Uvh *.src.rpm

После этого идёте в каталог, куда распаковываются src.rpm в Вашей системе (что-то типа /usr/src/suse/). В подкаталоге SOURCES лежат .tar.gz и парочка дополнительных файлов. Кладёте туда же .tar.gz новых версий.

После этого идёте в каталог SPECS и видите файлы openct.spec и opensc.spec. Это инструкция (скрипт) для автоматической сборки бинарных пакетов. Открываете их в любом текстовом редакторе, и заменяете номер версии (в строке Version:) на номер версии нового .tar.gz. Также сбросьте Release: в "1".

Теперь пробуете собрать бинарные пакеты (для этого Вы должны установить пакет rpmbuild):

rpmbuild -bb openct.spec

В процессе сборки он может Вам сообщить, что для сборки чего-то не хватает, например, какого-нибудь libassuan-devel. Устанавливаете необходимые пакеты и снова запускаете openct на сборку. После успешной сборки в каталоге RPMS/x86_64 появятся бинарные rpm'ки. Устанавливаете необходимые пакеты (rpm -Uvh libopenct1* openct* openct-devel*). Теперь аналогично собираете и устанавливаете opensc.

Если всё получится, Вы можете собрать свои собственные .src.rpm командой:

rpmbuild -bs openct.spec

и положить их куда-нибудь в общий доступ ;-) Надеюсь, у Вас всё получится :-)

Re: Как правильно устанавливать RuToken в Linux?

Спасибо за помощь, Zap, но все же компилировать код мы стали по одной причине - пакеты для OpenSUSE очень старые.
Собирать openssh, mozilla итд. совсем необязательно, достаточно всего лишь установить соответствующие пакеты разработчика, такие как openssh-devel, mozilla-devel и т.д.
Но действительно, нам следовало указывать при конфигурировании другой каталог --libdir. Я не заметил, что система 64-битная.
Сделайте так:
$ make clean
$ ./configure --sysconfdir=/etc --libdir=/usr/local/lib64 --enable-usb --enable-pcsc
$ make
# make install
потом манипуляции из http://www.opensc-project.org/openct/wiki/QuickStart

Затем аналогично для OpenSC.

Re: Как правильно устанавливать RuToken в Linux?

Кирилл Мещеряков пишет:

Спасибо за помощь, Zap, но все же компилировать код мы стали по одной причине - пакеты для OpenSUSE очень старые.

Так я как раз посоветовал, как собрать более свежий пакет из более свежей версии исходников.

Кирилл Мещеряков пишет:

Собирать openssh, mozilla итд. совсем необязательно, достаточно всего лишь установить соответствующие пакеты разработчика, такие как openssh-devel, mozilla-devel и т.д.

Нет, там другая проблема - в метаданных пакета openssh прописано, что он зависит от пакета libopenct1. Таким образом, удалить пакет libopenct1 нет возможности "честным" путём (можно сломать rpm об колено и сказать ему опцию --nodeps, но это может повлечь за собой ряд проблем, в частности, может сломаться автоматическое вычисление зависимостей при установке/обновлении пакетов).

Имея же установленным "честный" пакет, мы избегаем всех проблем.

Кирилл Мещеряков пишет:

Сделайте так:
$ make clean
$ ./configure --sysconfdir=/etc --libdir=/usr/local/lib64 --enable-usb --enable-pcsc
$ make
# make install
потом манипуляции из http://www.opensc-project.org/openct/wiki/QuickStart

Тогда обязательно надо удалить пакеты libopenct1 и libopensc2 (rpm -e libopenct1 libopensc2 --nodeps). Иначе могут возникнуть конфликты из-за того, что /usr/lib64/libopenct.so.1 от пакета libopenct1 будет подхвачен приложением вместо /usr/local/lib64/libopenct.so.1.

Либо, как альтернатива, можно просто удалить все файлы из пакетов, не удаляя из базы пакетов саму отметку о том, что пакет установлен:

rm -f `rpm -ql libopenct1 libopensc2`

Но, всё же, я бы рекомендовал просто собрать пакет более свежей версии самому, поверьте, это совсем не сложно.

Re: Как правильно устанавливать RuToken в Linux?

помогите решить проблему
установил все по манам, вроде как работает

opensc-tool --list-readers
Readers known about:
Nr.    Driver     Name
0      openct     Rutoken S driver
1      openct     OpenCT reader (detached)
openct-tool -r 0 atr
Detected Rutoken S driver
Card present, status changed
ATR: 3b 6f 00 ff 00 56 75 61 54 6f 6b 6e 73 30 20 00 00 90 00

но при выполнении pkcs выпадает такая ошибка

pkcs15-tool -D
Using reader with a card: Rutoken S driver
PKCS#15 initialization failed: File not found

вот не могу найти какого ему файла не хватает
может кто сталкивался с такой проблемой?