logo
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

5 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline Lirein  
#1 Оставлено : 26 августа 2017 г. 4:33:59(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Здравствуйте, плагин Госуслуг, так же именуемый как IFCPlugin, умеет работать с двумя видами криптоапи - capi (только Windows) и pkcs11 (windows, linux, mac). C pkcs11 успешно работает с плагинами JaCarta, ruToken, Lissi.

Указываю плагин КриптоПро следующим образом:

Сделаем симлинк на наш плагин, чтобы он подхватывался IFC:
Код:
ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so


Проверяем что симлинк успешно создался:
Код:
ls -l /usr/lib/mozilla/plugins/lib
-rw-r--r-- 1 root root   47736 авг  7  2014 libconfig.so.9
lrwxrwxrwx 1 root root      43 авг 22 19:08 libcppkcs11.so -> /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4
-rw-r--r-- 1 root root 1975336 авг  7  2014 libcrypto.so.1.0.0
-rw-r--r-- 1 root root   24120 авг  7  2014 libengine_logger.so
-rw-r--r-- 1 root root  122432 авг  7  2014 libifc.so
-rw-r--r-- 1 root root  287024 авг  7  2014 libjcPKCS11.so
-rw-r--r-- 1 root root 1611112 авг  7  2014 libjcPKCS11x.so.1
-rw-r--r-- 1 root root  108584 авг  7  2014 libpkcs11_engine.so
-rw-r--r-- 1 root root  429920 авг  7  2014 libssl.so.1.0.0


Далее добавляем в файл конфигурации /etc/ifc.cfg следующий кусок конфигурации (сразу после jaCarta):
Код:
  { name  = "CryptoPro CSP";
    alias = "cryptoprocsp";
    type  = "pkcs11";
    lib_linux = "libcppkcs11.so";
  },


Открываем ESIA и пытаемся пройти аутентификацию по сертификату, получаем вот такой выхлоп в /var/log/ifc/ifc.log
Код:
2017-08-26 09:24:42 DEBUG func: ifc_create
2017-08-26 09:24:42 DEBUG initializing config
2017-08-26 09:24:42 DEBUG config initialized, trying to acquire config file /etc/ifc.cfg
2017-08-26 09:24:42 DEBUG got config, initializing log
2017-08-26 09:24:42 DEBUG func: init_log
2017-08-26 09:24:42 DEBUG init_ifc_records result [0]
2017-08-26 09:24:42 DEBUG log initialized
2017-08-26 09:24:42 DEBUG func: init_ifc_records
2017-08-26 09:24:42 DEBUG params count: 7
2017-08-26 09:24:42 DEBUG init_ifc_records result [7]
2017-08-26 09:24:42 DEBUG Config records were read from config: 7
2017-08-26 09:24:42 DEBUG func: init_ifc_records
2017-08-26 09:24:42 DEBUG params count: 7
2017-08-26 09:24:42 DEBUG init_ifc_records result [7]
2017-08-26 09:24:42 DEBUG Config read OK. Initiated config records: 7
2017-08-26 09:24:42 DEBUG ifc_create result [0]
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  ****************** IFCPlugin 2.0.6.0 ******************
2017-08-26 09:24:42 INFO  OS: X11, Browser: NPAPI
2017-08-26 09:24:42 INFO  Current Page:	https://esia.gosuslugi.ru/idp/rlogin?cc=bp
2017-08-26 09:24:42 INFO  Plugin DLL:	/usr/lib/mozilla/plugins/npIFCPlugin.so
2017-08-26 09:24:42 INFO  *******************************************************
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:42 INFO  
2017-08-26 09:24:44 INFO  ********** START IFCPluginAPI::get_list_info_size() **********
2017-08-26 09:24:44 INFO  Parameters: none
2017-08-26 09:24:44 DEBUG func: ifc_get_list_info
2017-08-26 09:24:44 DEBUG config record [0]
2017-08-26 09:24:44 DEBUG config record [1]
2017-08-26 09:24:44 DEBUG func: list_keys_pkcs11
2017-08-26 09:24:44 DEBUG pkcs11_lib is 'libjcPKCS11.so', i_keys is not set
2017-08-26 09:24:44 DEBUG func: ifc_load_pkcs11_lib
2017-08-26 09:24:44 DEBUG module path: libjcPKCS11.so
2017-08-26 09:24:44 DEBUG cached PKCS#11 library found
2017-08-26 09:24:44 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-26 09:24:44 DEBUG slots count: [0]
2017-08-26 09:24:44 ERROR No connected tokens found
2017-08-26 09:24:44 DEBUG list_keys_pkcs11 result [0]
2017-08-26 09:24:44 DEBUG config record [2]
2017-08-26 09:24:44 DEBUG func: list_keys_pkcs11
2017-08-26 09:24:44 DEBUG pkcs11_lib is 'libcppkcs11.so', i_keys is not set
2017-08-26 09:24:44 DEBUG func: ifc_load_pkcs11_lib
2017-08-26 09:24:44 DEBUG module path: libcppkcs11.so
2017-08-26 09:24:44 DEBUG cached PKCS#11 library found
2017-08-26 09:24:44 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-26 09:24:44 DEBUG slots count: [1]
2017-08-26 09:24:44 DEBUG GetSlotInfo [0]
2017-08-26 09:24:44 DEBUG GetTokenInfo [0]
2017-08-26 09:24:44 DEBUG list_keys_pkcs11 result [0]
2017-08-26 09:24:44 DEBUG config record [3]
2017-08-26 09:24:44 DEBUG config record [4]
2017-08-26 09:24:44 DEBUG config record [5]
2017-08-26 09:24:44 DEBUG config record [6]
2017-08-26 09:24:44 DEBUG ifc_get_list_info result [0]
2017-08-26 09:24:44 INFO  >>> Success, founded 1 crypto
2017-08-26 09:24:44 INFO  ********** END IFCPluginAPI::get_list_info_size() **********
2017-08-26 09:24:44 INFO  ********** START IFCPluginAPI::get_list_info() **********
2017-08-26 09:24:44 INFO  >>> Parameters
2017-08-26 09:24:44 INFO  Index:	0
2017-08-26 09:24:44 INFO  >>> Results for index 0
2017-08-26 09:24:44 INFO  Alias:		cryptoprocsp
2017-08-26 09:24:44 INFO  Description:	CryptoPro Slot
2017-08-26 09:24:44 INFO  Name:		CryptoPro CSP
2017-08-26 09:24:44 INFO  Num:		0
2017-08-26 09:24:44 INFO  Path:		libcppkcs11.so
2017-08-26 09:24:44 INFO  Serial Number:	0000000000000000
2017-08-26 09:24:44 INFO  Type:		pkcs11
2017-08-26 09:24:44 INFO  ********** END IFCPluginAPI::get_list_info() **********
2017-08-26 09:24:44 INFO  ********** START IFCPluginAPI::get_list_certs_size() **********
2017-08-26 09:24:44 INFO  >>> Parameters
2017-08-26 09:24:44 INFO  Crypto ID:	cryptoprocsp/0
2017-08-26 09:24:44 DEBUG func: ifc_get_list_certs
2017-08-26 09:24:44 DEBUG func: ifc_engine
2017-08-26 09:24:44 DEBUG func: ifc_init_pkcs11_engine
2017-08-26 09:24:44 DEBUG p11 lib name: libcppkcs11.so, slot: 0, engine lib name: pkcs11_engine
2017-08-26 09:24:44 DEBUG func: ifc_load_pkcs11_lib
2017-08-26 09:24:44 DEBUG module path: libcppkcs11.so
2017-08-26 09:24:44 DEBUG cached PKCS#11 library found
2017-08-26 09:24:44 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-26 09:24:44 ERROR Too many events on pkcs11 slot. Typically this is PKCS11 Library error.
2017-08-26 09:24:44 DEBUG ifc_init_pkcs11_engine result [23]
2017-08-26 09:24:44 DEBUG ifc_engine result [23]
2017-08-26 09:24:44 DEBUG ifc_get_list_certs result [23]
2017-08-26 09:24:44 ERROR Error 23:	PKCS11 Library Error
2017-08-26 09:24:44 INFO  ********** END IFCPluginAPI::get_list_certs_size() **********


Плагин валится на ошибке, возвращаемой библиотекой:
Цитата:
"Too many events on pkcs11 slot"


При этом насколько видно из журнала - сам плагин pkcs11 подхватился, найден один слот: "CryptoPro Slot" (он же видится в CryptoPro Fox, Firefox, Thunderbird, pkcs11-tool, Lissi Redfox и т.д.).
Однако все валится именно на получении сертификатов.

Отмечу что утилиты pkcs11-tool и библиотека NSS успешно видят сертификаты. Предположительно ошибка возникает из за способа взаимодействия с PKCS11 плагином. Можно ли включить отладку со стороны pkcs11 планига КриптоПро? Думаю проблема решаемая и такое решение избавит от головной боли многих.

Отредактировано пользователем 30 августа 2017 г. 13:08:26(UTC)  | Причина: Не указана

--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
thanks 1 пользователь поблагодарил Lirein за этот пост.
Ash оставлено 26.09.2017(UTC)
Offline nickm  
#2 Оставлено : 26 августа 2017 г. 6:52:03(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 127

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 17 раз в 17 постах
Согласно данного исследования симлинки делу не помогут ((
Offline Lirein  
#3 Оставлено : 26 августа 2017 г. 7:20:30(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Автор: nickm Перейти к цитате
Согласно данного исследования симлинки делу не помогут ((


Читал его, информация несколько устаревшая, но многие вещи по прежнему актуальны. В частности для работы с ГОСТ ключами и сертификатами, мной доработана pkcs11-tool из состава OpenSC (импорт-экспорт, поддержка не RSA движков, тот же gost или gost_capi).

Я могу и напрямую указать в конфиге путь к файлу pkcs11 модуля, но факта это не отменяет - падает с ошибкой pkcs11. Вариант подтянуть ещё и разработчиков Ростелекома, которые писали это плагин, но скорее всего с их стороны работа с плагином ведется правильно.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#4 Оставлено : 28 августа 2017 г. 13:59:39(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
2017-08-26 09:24:44 ERROR Too many events on pkcs11 slot. Typically this is PKCS11 Library error.

В ifc заложен некий механизм ожидания событий на слоте, мы не поддерживаем WaitForSlotEvent и возвращаем CKR_FUNCTION_NOT_SUPPORTED, что в ifc интерпретируется неверно.

Попробуем в ближайшее время собрать версию с возвратом CKR_NO_EVENT из WaitForSlotEvent, должно помочь.

Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Дмитрий Пичулин за этот пост.
nickm оставлено 28.08.2017(UTC)
Offline Lirein  
#5 Оставлено : 28 августа 2017 г. 14:24:52(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Автор: pd Перейти к цитате

В ifc заложен некий механизм ожидания событий на слоте, мы не поддерживаем WaitForSlotEvent и возвращаем CKR_FUNCTION_NOT_SUPPORTED, что в ifc интерпретируется неверно.

Попробуем в ближайшее время собрать версию с возвратом CKR_NO_EVENT из WaitForSlotEvent, должно помочь.

Спасибо за разъяснения, я уже сделал форк OpenSC для поддержки ГОСТ алгоритмов импорта/экспорта закрытых ключей на токены, но оказалось что Rutoken ЭЦП 2.0 не поддерживает импорт глючей ГОСТ, только RSA.

Жду сборку, если не дождусь могу попробовать пропатчить бинарник самостоятельно.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#6 Оставлено : 28 августа 2017 г. 15:00:13(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
Жду сборку, если не дождусь могу попробовать пропатчить бинарник самостоятельно.

https://update.cryptopro.ru/temp/20170828_pkcs11/

Знания в базе знаний, поддержка в техподдержке
Offline Lirein  
#7 Оставлено : 28 августа 2017 г. 15:09:46(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Сдвинулось с мертвой точки, но сертификат по прежнему не может загрузить (судя по всему публичный ключ), хотя сам сертификат видит:
Код:
2017-08-28 20:02:10 DEBUG func: ifc_create
2017-08-28 20:02:10 DEBUG initializing config
2017-08-28 20:02:10 DEBUG config initialized, trying to acquire config file /etc/ifc.cfg
2017-08-28 20:02:10 DEBUG got config, initializing log
2017-08-28 20:02:10 DEBUG func: init_log
2017-08-28 20:02:10 DEBUG init_ifc_records result [0]
2017-08-28 20:02:10 DEBUG log initialized
2017-08-28 20:02:10 DEBUG func: init_ifc_records
2017-08-28 20:02:10 DEBUG params count: 7
2017-08-28 20:02:10 DEBUG init_ifc_records result [7]
2017-08-28 20:02:10 DEBUG Config records were read from config: 7
2017-08-28 20:02:10 DEBUG func: init_ifc_records
2017-08-28 20:02:10 DEBUG params count: 7
2017-08-28 20:02:10 DEBUG init_ifc_records result [7]
2017-08-28 20:02:10 DEBUG Config read OK. Initiated config records: 7
2017-08-28 20:02:10 DEBUG ifc_create result [0]
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  ****************** IFCPlugin 2.0.6.0 ******************
2017-08-28 20:02:10 INFO  OS: X11, Browser: NPAPI
2017-08-28 20:02:10 INFO  Current Page:	https://esia.gosuslugi.ru/idp/rlogin?cc=bp
2017-08-28 20:02:10 INFO  Plugin DLL:	/usr/lib/mozilla/plugins/npIFCPlugin.so
2017-08-28 20:02:10 INFO  *******************************************************
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:10 INFO  
2017-08-28 20:02:12 INFO  ********** START IFCPluginAPI::get_list_info_size() **********
2017-08-28 20:02:12 INFO  Parameters: none
2017-08-28 20:02:12 DEBUG func: ifc_get_list_info
2017-08-28 20:02:12 DEBUG config record [0]
2017-08-28 20:02:12 DEBUG config record [1]
2017-08-28 20:02:12 DEBUG func: list_keys_pkcs11
2017-08-28 20:02:12 DEBUG pkcs11_lib is 'libjcPKCS11.so', i_keys is not set
2017-08-28 20:02:12 DEBUG func: ifc_load_pkcs11_lib
2017-08-28 20:02:12 DEBUG module path: libjcPKCS11.so
2017-08-28 20:02:12 DEBUG cached PKCS#11 library found
2017-08-28 20:02:12 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-28 20:02:12 DEBUG slots count: [0]
2017-08-28 20:02:12 ERROR No connected tokens found
2017-08-28 20:02:12 DEBUG list_keys_pkcs11 result [0]
2017-08-28 20:02:12 DEBUG config record [2]
2017-08-28 20:02:12 DEBUG func: list_keys_pkcs11
2017-08-28 20:02:12 DEBUG pkcs11_lib is 'libcppkcs11.so', i_keys is not set
2017-08-28 20:02:12 DEBUG func: ifc_load_pkcs11_lib
2017-08-28 20:02:12 DEBUG module path: libcppkcs11.so
2017-08-28 20:02:12 DEBUG cached PKCS#11 library found
2017-08-28 20:02:12 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-28 20:02:12 DEBUG slots count: [1]
2017-08-28 20:02:12 DEBUG GetSlotInfo [0]
2017-08-28 20:02:12 DEBUG GetTokenInfo [0]
2017-08-28 20:02:12 DEBUG list_keys_pkcs11 result [0]
2017-08-28 20:02:12 DEBUG config record [3]
2017-08-28 20:02:12 DEBUG config record [4]
2017-08-28 20:02:12 DEBUG config record [5]
2017-08-28 20:02:12 DEBUG config record [6]
2017-08-28 20:02:12 DEBUG ifc_get_list_info result [0]
2017-08-28 20:02:12 INFO  >>> Success, founded 1 crypto
2017-08-28 20:02:12 INFO  ********** END IFCPluginAPI::get_list_info_size() **********
2017-08-28 20:02:12 INFO  ********** START IFCPluginAPI::get_list_info() **********
2017-08-28 20:02:12 INFO  >>> Parameters
2017-08-28 20:02:12 INFO  Index:	0
2017-08-28 20:02:12 INFO  >>> Results for index 0
2017-08-28 20:02:12 INFO  Alias:		cryptoprocsp
2017-08-28 20:02:12 INFO  Description:	CryptoPro Slot
2017-08-28 20:02:12 INFO  Name:		CryptoPro CSP
2017-08-28 20:02:12 INFO  Num:		0
2017-08-28 20:02:12 INFO  Path:		libcppkcs11.so
2017-08-28 20:02:12 INFO  Serial Number:	0000000000000000
2017-08-28 20:02:12 INFO  Type:		pkcs11
2017-08-28 20:02:12 INFO  ********** END IFCPluginAPI::get_list_info() **********
2017-08-28 20:02:12 INFO  ********** START IFCPluginAPI::get_list_certs_size() **********
2017-08-28 20:02:12 INFO  >>> Parameters
2017-08-28 20:02:12 INFO  Crypto ID:	cryptoprocsp/0
2017-08-28 20:02:12 DEBUG func: ifc_get_list_certs
2017-08-28 20:02:12 DEBUG func: ifc_engine
2017-08-28 20:02:12 DEBUG func: ifc_init_pkcs11_engine
2017-08-28 20:02:12 DEBUG p11 lib name: libcppkcs11.so, slot: 0, engine lib name: pkcs11_engine
2017-08-28 20:02:12 DEBUG cached crypto slot found
2017-08-28 20:02:12 DEBUG ifc_init_pkcs11_engine result [0]
2017-08-28 20:02:12 DEBUG ifc_engine result [0]
2017-08-28 20:02:12 DEBUG func: ifc_list_certificates_in_store
2017-08-28 20:02:12 DEBUG Cert ID �9�L�}ߡ���Յ�	7
2017-08-28 20:02:12 DEBUG func: get_pub_key_by_id
2017-08-28 20:02:12 DEBUG ID to find: �9�L�}ߡ���Յ�	7
2017-08-28 20:02:12 DEBUG STORE_list_publice_key_start done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_next done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_end done
2017-08-28 20:02:12 DEBUG get_pub_key_by_id result [NULL]
2017-08-28 20:02:12 DEBUG Cert ID Na�z��-�:$S�l��p�r�
2017-08-28 20:02:12 DEBUG func: get_pub_key_by_id
2017-08-28 20:02:12 DEBUG ID to find: Na�z��-�:$S�l��p�r�
2017-08-28 20:02:12 DEBUG STORE_list_publice_key_start done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_next done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_end done
2017-08-28 20:02:12 DEBUG get_pub_key_by_id result [NULL]
2017-08-28 20:02:12 DEBUG Cert ID �1Zl�nz���u7� �,,��
2017-08-28 20:02:12 DEBUG func: get_pub_key_by_id
2017-08-28 20:02:12 DEBUG ID to find: �1Zl�nz���u7� �,,��
2017-08-28 20:02:12 DEBUG STORE_list_publice_key_start done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_next done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_end done
2017-08-28 20:02:12 DEBUG get_pub_key_by_id result [NULL]
2017-08-28 20:02:12 DEBUG Cert ID ��;�Q���x���� �U�]
2017-08-28 20:02:12 DEBUG func: get_pub_key_by_id
2017-08-28 20:02:12 DEBUG ID to find: ��;�Q���x���� �U�]
2017-08-28 20:02:12 DEBUG STORE_list_publice_key_start done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_next done
2017-08-28 20:02:12 DEBUG STORE_list_public_key_end done
2017-08-28 20:02:12 DEBUG get_pub_key_by_id result [NULL]
2017-08-28 20:02:12 DEBUG ifc_list_certificates_in_store result [0]
2017-08-28 20:02:12 DEBUG ifc_get_list_certs result [0]
2017-08-28 20:02:12 INFO  >>> Success, founded 0 certificates
2017-08-28 20:02:12 INFO  ********** END IFCPluginAPI::get_list_certs_size() **********

--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline nickm  
#8 Оставлено : 28 августа 2017 г. 15:15:10(UTC)
nickm

Статус: Активный участник

Группы: Участники
Зарегистрирован: 31.05.2016(UTC)
Сообщений: 127

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 17 раз в 17 постах
Автор: Lirein Перейти к цитате
но сертификат по прежнему не может загрузить (судя по всему публичный ключ), хотя сам сертификат видит

А у вас ключевой носитель какой? Токен аля "Рутокен S", флэш/дискета с ключами в папке или же аппаратный "Rutoken ЭЦП 2.0"?

Offline Lirein  
#9 Оставлено : 28 августа 2017 г. 15:19:16(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Автор: nickm Перейти к цитате
Автор: Lirein Перейти к цитате
но сертификат по прежнему не может загрузить (судя по всему публичный ключ), хотя сам сертификат видит

А у вас ключевой носитель какой? Токен аля "Рутокен S", флэш/дискета с ключами в папке или же аппаратный "Rutoken ЭЦП 2.0"?



У меня есть три варианта: Файловый контейнер HDIMAGE/FLASH, Носитель Rutoken light, и Rutoken ЭЦП 2.0
Собственно говоря пока ни с одним нормально подружить не удалось, при этом 1С, сама КриптоПро и КриптоАрм под линуксом прекрасно видят сертификаты, подпись осуществляется.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#10 Оставлено : 28 августа 2017 г. 20:12:37(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
Собственно говоря пока ни с одним нормально подружить не удалось, при этом 1С, сама КриптоПро и КриптоАрм под линуксом прекрасно видят сертификаты, подпись осуществляется.

Следующая проблема — поиск CKO_PUBLIC_KEY.

Мы не создаём эти объекты автоматически, они создаются пользователем по необходимости, но ifc считает, что они должны быть и пытается их найти.

Эту проблему мы тоже можем как-то "пофиксить", но нет гарантий, что это будет последняя проблема.

Чем так важна работа с ifc именно через pkcs11?



Знания в базе знаний, поддержка в техподдержке
Offline Lirein  
#11 Оставлено : 29 августа 2017 г. 3:10:48(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Добрый день. Похоже что IFC плагин - в Linux работает только с использованием pkcs11 библиотек, файл конфигурации там общий для всех платформ, если попытаться указать путь до библиотеки libcapi10 или libcapi20, плагин даже не производит попытку загрузки библиотеки, похоже секции с типом модуля capi в Linux игнорируются.

Тогда каким образом я могу создать CKO_PUBLIC_KEY самостоятельно? Напрашивается ответ что с помощью утилиты pkcs11-tool попробовать добавить публичный ключ сертификата в контейнер. Могу попробовать, по результатам отпишусь.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Lirein  
#12 Оставлено : 29 августа 2017 г. 3:27:27(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Автор: Lirein Перейти к цитате
Тогда каким образом я могу создать CKO_PUBLIC_KEY самостоятельно? Напрашивается ответ что с помощью утилиты pkcs11-tool попробовать добавить публичный ключ сертификата в контейнер. Могу попробовать, по результатам отпишусь.


Попробовал, получилось вот что:

Извлекаем сертификат:
Код:
./src/tools/pkcs11-tool --module /opt/cprocsp/lib/amd64/libcppkcs11.so -l -r -y cert --slot 0 --id 951739cf4cf918057ddfa1c413d2e9d5859b0937 -o crt2.cer


Экспортируем публичный ключ:
Код:
openssl x509 -pubkey -noout -in crt2.cer -inform der -engine gost > cer2.pkey


Пытаемся создать объект публичного ключа:
Код:
./src/tools/pkcs11-tool --module /opt/cprocsp/lib/amd64/libcppkcs11.so -l -y pubkey --slot 0 --id 951739cf4cf918057ddfa1c413d2e9d5859b0937 -w cer2.pkey -E gost
Logging in to "CryptoPro Token".
Please enter User PIN: 
Write gost public keyerror: PKCS11 function C_CreateObject failed: rv = CKR_TEMPLATE_INCONSISTENT (0xd1)
Aborting.


Могу ещё покурить стандарт и исправить OpenSC для корректной заливки публичных ключей ГОСТ, если она поддерживается pkcs11 плагином.
UPD: Исправил, но импорта ключа не происходит, исходники с правками: https://github.com/Lirein/OpenSC

Отредактировано пользователем 29 августа 2017 г. 3:51:23(UTC)  | Причина: Не указана

--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#13 Оставлено : 29 августа 2017 г. 12:27:49(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
Могу ещё покурить стандарт и исправить OpenSC для корректной заливки публичных ключей ГОСТ, если она поддерживается pkcs11 плагином.
UPD: Исправил, но импорта ключа не происходит, исходники с правками: https://github.com/Lirein/OpenSC

Проблема в том, что нет единого строгого стандарта использования pkcs11, особенно в части ГОСТ.

Если вы точно понимаете как функционирует ifc и можете написать замкнутый тест, прохождение которого гарантирует работоспособность системы, мы готовы поддержать все нюансы в нашей библиотеке.

Сейчас же ситуация такова, что приходится в ручном режиме тестировать ifc заходом на esia.gosuslugi.ru через cpfox и смотреть в отладчике, что там происходит, а происходит там много неожиданного.

Дополнили наш pkcs11 несколькими примочками, которые позволяют дойти до выбора сертификата на уровне ifc, можете проверить? https://update.cryptopro.../temp/20170829_pkcs11ex/

Отредактировано пользователем 29 августа 2017 г. 12:31:25(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Дмитрий Пичулин за этот пост.
Lirein оставлено 29.08.2017(UTC)
Offline Lirein  
#14 Оставлено : 29 августа 2017 г. 13:28:31(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Дальше все чудесатее и чудесатее:

Код:

2017-08-29 18:19:47 INFO  ********** START IFCPluginAPI::get_list_info_size() **********
2017-08-29 18:19:47 INFO  Parameters: none
2017-08-29 18:19:47 DEBUG func: ifc_get_list_info
2017-08-29 18:19:47 DEBUG config record [0]
2017-08-29 18:19:47 DEBUG config record [1]
2017-08-29 18:19:47 DEBUG func: list_keys_pkcs11
2017-08-29 18:19:47 DEBUG pkcs11_lib is 'libjcPKCS11.so', i_keys is not set
2017-08-29 18:19:47 DEBUG func: ifc_load_pkcs11_lib
2017-08-29 18:19:47 DEBUG module path: libjcPKCS11.so
2017-08-29 18:19:47 DEBUG cached PKCS#11 library found
2017-08-29 18:19:47 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-29 18:19:47 DEBUG slots count: [0]
2017-08-29 18:19:47 ERROR No connected tokens found
2017-08-29 18:19:47 DEBUG list_keys_pkcs11 result [0]
2017-08-29 18:19:47 DEBUG config record [2]
2017-08-29 18:19:47 DEBUG func: list_keys_pkcs11
2017-08-29 18:19:47 DEBUG pkcs11_lib is 'libcppkcs11.so', i_keys is not set
2017-08-29 18:19:47 DEBUG func: ifc_load_pkcs11_lib
2017-08-29 18:19:47 DEBUG module path: libcppkcs11.so
2017-08-29 18:19:47 DEBUG cached PKCS#11 library found
2017-08-29 18:19:47 DEBUG ifc_load_pkcs11_lib result [0]
2017-08-29 18:19:47 DEBUG slots count: [1]
2017-08-29 18:19:47 DEBUG GetSlotInfo [0]
2017-08-29 18:19:47 DEBUG GetTokenInfo [0]
2017-08-29 18:19:47 DEBUG list_keys_pkcs11 result [0]
2017-08-29 18:19:47 DEBUG config record [3]
2017-08-29 18:19:47 DEBUG config record [4]
2017-08-29 18:19:47 DEBUG config record [5]
2017-08-29 18:19:47 DEBUG config record [6]
2017-08-29 18:19:47 DEBUG ifc_get_list_info result [0]
2017-08-29 18:19:47 INFO  >>> Success, founded 1 crypto
2017-08-29 18:19:47 INFO  ********** END IFCPluginAPI::get_list_info_size() **********
2017-08-29 18:19:47 INFO  ********** START IFCPluginAPI::get_list_info() **********
2017-08-29 18:19:47 INFO  >>> Parameters
2017-08-29 18:19:47 INFO  Index:	0
2017-08-29 18:19:47 INFO  >>> Results for index 0
2017-08-29 18:19:47 INFO  Alias:		cryptoprocsp
2017-08-29 18:19:47 INFO  Description:	CryptoPro Slot
2017-08-29 18:19:47 INFO  Name:		CryptoPro CSP
2017-08-29 18:19:47 INFO  Num:		0
2017-08-29 18:19:47 INFO  Path:		libcppkcs11.so
2017-08-29 18:19:47 INFO  Serial Number:	0000000000000000
2017-08-29 18:19:47 INFO  Type:		pkcs11
2017-08-29 18:19:47 INFO  ********** END IFCPluginAPI::get_list_info() **********
2017-08-29 18:19:47 INFO  ********** START IFCPluginAPI::get_list_certs_size() **********
2017-08-29 18:19:47 INFO  >>> Parameters
2017-08-29 18:19:47 INFO  Crypto ID:	cryptoprocsp/0
2017-08-29 18:19:47 DEBUG func: ifc_get_list_certs
2017-08-29 18:19:47 DEBUG func: ifc_engine
2017-08-29 18:19:47 DEBUG func: ifc_init_pkcs11_engine
2017-08-29 18:19:47 DEBUG p11 lib name: libcppkcs11.so, slot: 0, engine lib name: pkcs11_engine
2017-08-29 18:19:47 DEBUG cached crypto slot found
2017-08-29 18:19:47 DEBUG ifc_init_pkcs11_engine result [0]
2017-08-29 18:19:47 DEBUG ifc_engine result [0]
2017-08-29 18:19:47 DEBUG func: ifc_list_certificates_in_store
2017-08-29 18:19:47 DEBUG Cert ID �9�L�}ߡ���Յ�	7
2017-08-29 18:19:47 DEBUG func: get_pub_key_by_id
2017-08-29 18:19:47 DEBUG ID to find: �9�L�}ߡ���Յ�	7
2017-08-29 18:19:47 DEBUG STORE_list_publice_key_start done
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Needed ID [�9�L�}ߡ���Յ�	7] was found
2017-08-29 18:19:47 DEBUG STORE_list_public_key_end done
2017-08-29 18:19:47 DEBUG get_pub_key_by_id result [found key handle]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 5
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 6
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 7
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 8
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 4
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG Cert ID Na�z��-�:$S�l��p�r�
2017-08-29 18:19:47 DEBUG func: get_pub_key_by_id
2017-08-29 18:19:47 DEBUG ID to find: Na�z��-�:$S�l��p�r�
2017-08-29 18:19:47 DEBUG STORE_list_publice_key_start done
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Needed ID [Na�z��-�:$S�l��p�r�] was found
2017-08-29 18:19:47 DEBUG STORE_list_public_key_end done
2017-08-29 18:19:47 DEBUG get_pub_key_by_id result [found key handle]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 5
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 6
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 7
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 8
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 4
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG Cert ID �1Zl�nz���u7� �,,��
2017-08-29 18:19:47 DEBUG func: get_pub_key_by_id
2017-08-29 18:19:47 DEBUG ID to find: �1Zl�nz���u7� �,,��
2017-08-29 18:19:47 DEBUG STORE_list_publice_key_start done
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Needed ID [�1Zl�nz���u7� �,,��] was found
2017-08-29 18:19:47 DEBUG STORE_list_public_key_end done
2017-08-29 18:19:47 DEBUG get_pub_key_by_id result [found key handle]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 5
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 6
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 7
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 8
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG func: ifc_x509_info
2017-08-29 18:19:47 DEBUG requested info type: 4
2017-08-29 18:19:47 DEBUG BIO_new(BIO_s_mem()) done
2017-08-29 18:19:47 DEBUG ifc_x509_info result [0]
2017-08-29 18:19:47 DEBUG Cert ID ��;�Q���x���� �U�]
2017-08-29 18:19:47 DEBUG func: get_pub_key_by_id
2017-08-29 18:19:47 DEBUG ID to find: ��;�Q���x���� �U�]
2017-08-29 18:19:47 DEBUG STORE_list_publice_key_start done
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Listed key is not needed -> free
2017-08-29 18:19:47 DEBUG STORE_list_public_key_next done
2017-08-29 18:19:47 DEBUG Needed ID [��;�Q���x���� �U�]] was found
2017-08-29 18:19:47 DEBUG STORE_list_public_key_end done
2017-08-29 18:19:47 DEBUG get_pub_key_by_id result [found key handle]
2017-08-29 18:19:47 ERROR iconv: Неверный или неполный мультибайтный или широкий символ

2017-08-29 18:19:47 ERROR unicode cert_id failed [162]
2017-08-29 18:19:47 DEBUG ifc_list_certificates_in_store result [162]
2017-08-29 18:19:47 DEBUG ifc_get_list_certs result [162]
2017-08-29 18:19:47 ERROR Error 162:	Encoding Error
2017-08-29 18:19:47 INFO  ********** END IFCPluginAPI::get_list_certs_size() **********


У меня есть идея, она кошмарна, но чем чёрт не шутит... Сделать свою библиотеку pkcs11 на базе библиотеки opensc, в виде обертки над libcapi20.so, либо libcppkcs11.so и на реальных тестах выявить что нужно плагину, но это уже явно не на этой неделе, скорее всего уже в следующем месяце, сейчас времени на это просто нет.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Lirein  
#15 Оставлено : 29 августа 2017 г. 13:42:25(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Что ещё интересно, с библиотекой рутокена, я получаю вот такой выхлоп:
Код:
lirein@lirein-desktop ~/Загрузки/OpenSC $ ./src/tools/pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O 
Using slot 0 with a present token (0x0)
Public Key Object; RSA 2048 bits
  label:      
  ID:         a099642ad18e4944d2f2fa5e3226a3c45e25755c
  Usage:      encrypt, verify, wrap
Public Key Object; RSA 2048 bits
  label:      
  ID:         8e9a19e0fbce187ca4cf77d46090f9a0bbca3549
  Usage:      encrypt, verify, wrap
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022301
  VALUE:      f9f65d8f4a21262bef52559b9c48966b89961e96dfd7028acb312c7f43c6ee9d
              21e67fe3c9729a760c23b7694eeec63514477c8260eb9c5af82b024ff0515c1e
  label:      
  ID:         0001
  Usage:      verify
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022301
  VALUE:      87503276d0c5a433d0708df69c8410f69726177b96ca8a035ed02b51028157fe
              14e8b8b6309756e628de6515648ec4e649b102602d464fa3b4b9cefc3f013974
  label:      
  ID:         0002
  Usage:      verify
Certificate Object; type = X.509 cert
  label:      Баталин Иван Анатольевич’s ООО \"Открытые Автоматизированные Системы\" ID #3
  ID:         a099642ad18e4944d2f2fa5e3226a3c45e25755c
Certificate Object; type = X.509 cert
  label:      Баталина Ольга Сергеевна’s ООО \"Открытые Автоматизированные Системы\" ID
  ID:         8e9a19e0fbce187ca4cf77d46090f9a0bbca3549


С библиотекой КриптоПро, вот такой:
Код:
./src/tools/pkcs11-tool --module /opt/cprocsp/lib/amd64/libcppkcs11.so -l -O -E gost
Using slot 0 with a present token (0x0)
Logging in to "CryptoPro Token".
Please enter User PIN: 
Private Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  label:      batalin_007203355594_14.11.16_19.12.38
  ID:         951739cf4cf918057ddfa1c413d2e9d5859b0937
  Usage:      decrypt, sign, unwrap, derive
warning: PKCS11 function C_GetAttributeValue(ALWAYS_AUTHENTICATE) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)

Private Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  label:      oas
  ID:         951739cf4cf918057ddfa1c413d2e9d5859b0937
  Usage:      decrypt, sign, unwrap, derive
warning: PKCS11 function C_GetAttributeValue(ALWAYS_AUTHENTICATE) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12)

Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  VALUE:      8c8260285b9248791a7274e31630411e126ca9f4f93f38629c23710adfe3eca2
              49b7def40409b508846390c0096566eb4f175a7d9eb852ed45f1d4740f969a24
  label:      951739CF4CF918057DDFA1C413D2E9D5859B0937
  ID:         951739cf4cf918057ddfa1c413d2e9d5859b0937
  Usage:      encrypt, verify, wrap, derive
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  VALUE:      a85ede90e8ea76474578e7f7552a44d316fc7cb68cf8a00b9212107bbfc848d1
              ab80bd8538898c571341141c0fba51e3247693a6d0aadf9fea15531cf621b4c9
  label:      4E61B67AD1FC012DE53A2453B96CEACD709A729A
  ID:         4e61b67ad1fc012de53a2453b96ceacd709a729a
  Usage:      encrypt, verify, wrap, derive
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  VALUE:      c14a895071cd5e3c424f06cc3800b9993daf643aded6a51095e3c7e02565da2d
              1aa8929ea405eb163ffa851817ba8464f1ff7af4953d6088f101a9e2285c6029
  label:      8F03315A6C8D6E7AF4E3F87537E220C42C2C9D83
  ID:         8f03315a6c8d6e7af4e3f87537e220c42c2c9d83
  Usage:      encrypt, verify, wrap, derive
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022400
  VALUE:      8fa5bf791023c8d691ad6431575bbe9bc58a83f43f29f72a79a9fb65c3e8a80f
              5a75c42254915fc83f218ada703af9d58b0d736284dc2ee6907ea1037337a1fb
  label:      8B983B891851E8EF9C0278B8EAC8D420B255C95D
  ID:         8b983b891851e8ef9c0278b8eac8d420b255c95d
  Usage:      encrypt, verify, wrap, derive
Certificate Object; type = X.509 cert
  label:      951739CF4CF918057DDFA1C413D2E9D5859B0937
  ID:         951739cf4cf918057ddfa1c413d2e9d5859b0937
Certificate Object; type = X.509 cert
  label:      4E61B67AD1FC012DE53A2453B96CEACD709A729A
  ID:         4e61b67ad1fc012de53a2453b96ceacd709a729a
Certificate Object; type = X.509 cert
  label:      8F03315A6C8D6E7AF4E3F87537E220C42C2C9D83
  ID:         8f03315a6c8d6e7af4e3f87537e220c42c2c9d83
Certificate Object; type = X.509 cert
  label:      8B983B891851E8EF9C0278B8EAC8D420B255C95D
  ID:         8b983b891851e8ef9c0278b8eac8d420b255c95d
Object 3221225477, type 3461563219
Object 3221225480, type 3461563219
Object 3221225483, type 3461563219
Object 3221225486, type 3461563219


Вопрос, почему ifc плагину сносит крышу? Возможно, потому что Label в шестнадцатеричном виде и он считает каждый "байт" за символ?
...
Приверил предположение - так и есть:
951739CF4CF918057DDFA1C413D2E9D5859B0937 в HEX дает вот такой вывод:
Код:
95 17 39 CF  4C F9 18 05  7D DF A1 C4  13 D2 E9 D5  85 9B 09 37                                                                                                          ..9.L...}..........7


При этом в терминале (UTF-8.ru_RU) это выглядит так:

Код:
cat test.txt 
�9�L�}ߡ���Յ�	7


Если посмотреть на выхлоп IFC, мы получаем
Цитата:
DEBUG Cert ID �9�L�}ߡ���Յ� 7


Сейчас посмотрю как это обрабатывает OpenSC и кажется проблема решена, отпишусь.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#16 Оставлено : 29 августа 2017 г. 14:54:14(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
Код:
2017-08-29 18:19:47 ERROR iconv: Неверный или неполный мультибайтный или широкий символ
2017-08-29 18:19:47 ERROR unicode cert_id failed [162]

Крайне странно, c чего бы CKA_ID-у быть unicode, ну да ладно, попробуем: https://update.cryptopro...emp/20170829_pkcs11exid/

Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Дмитрий Пичулин за этот пост.
Lirein оставлено 29.08.2017(UTC)
Offline Lirein  
#17 Оставлено : 29 августа 2017 г. 14:54:34(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Мистика, pkcs11-tool содержит обертку через макрос, возвращает она ссылку на атрибут Label с преобразованием к ссылочному типу (char *). В приницпе все корректно, ваша библиотека возвращает именно строку, но библиотека ifc парсит её как шестнадцатеричное значение и пытается представить его как строку по каждому байту, ощущение что используется sscanf или аналог при чтении строки.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Lirein  
#18 Оставлено : 29 августа 2017 г. 15:07:20(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Выхлоп получился чудовищный, результат тоже довольно интересный:

Выхлоп:
ifc.log

Скрины:
UserPostedImage
UserPostedImage
UserPostedImage
UserPostedImage
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
Offline Дмитрий Пичулин  
#19 Оставлено : 29 августа 2017 г. 17:06:33(UTC)
Дмитрий Пичулин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 661
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 16 раз
Поблагодарили: 96 раз в 81 постах
Автор: Lirein Перейти к цитате
Выхлоп получился чудовищный, результат тоже довольно интересный

К сожалению, далее продвинуться будет сложно, можно ставить крест.

Если есть возможность связаться с разработчиками ifc, то им можно объяснить, что скомпилировать capi вариант под unix вполне реально, выглядеть это будет приблизительно так: https://github.com/deemr...um-gost-build-gostssl.sh

Как видно из "-lcapi10 -lcapi20" придётся на сборочной машине иметь библиотеки и include из CSP для сборки и линковки, но это в тысячу раз более надёжный вариант.

Текущие изменения в pkcs11 выглядят необоснованно ужасно.
Знания в базе знаний, поддержка в техподдержке
Offline Lirein  
#20 Оставлено : 30 августа 2017 г. 2:53:32(UTC)
Lirein

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.09.2015(UTC)
Сообщений: 46
Мужчина
Российская Федерация
Откуда: На работе

Сказал «Спасибо»: 8 раз
Поблагодарили: 14 раз в 10 постах
Хорошо, попробую попинать Ростелекомовцев, в крайнем случае буду делать свою прослойку и скрещивать ежа с ужом. О результатах, даже если их не будет, отпишусь сюда же.
--- Эльфиек на всех не хватает...
*** А всё таки, она вертится!
thanks 1 пользователь поблагодарил Lirein за этот пост.
nickm оставлено 30.08.2017(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
5 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.