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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Роман кислухин  
#1 Оставлено : 18 декабря 2013 г. 14:53:25(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Добрый день

В синтетическом тесте в пяти потоках в цикле выполняется:
p = СryptAcquireContext(containerName, null, PROV_GOST_2001_DH, 0).
CryptReleaseContext(p);

При этом постоянно возвращаются ошибки типа:
The keyset is not defined. (0x80090019)
или
Keyset as registered is invalid. (0x8009001a)

Это штатное поведение? То есть нельзя вызывать эту функцию многопоточно? В Crypto API ничего не сказано на этот счет.

Контейнер на rutoken. Версия CryptoPro 3.6.1-4 Build 7279.
Offline Андрей Писарев  
#2 Оставлено : 18 декабря 2013 г. 15:09:25(UTC)
Андрей Писарев


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

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

Сказал «Спасибо»: 260 раз
Поблагодарили: 917 раз в 744 постах
Автор: Роман кислухин Перейти к цитате
Добрый день

В синтетическом тесте в пяти потоках в цикле выполняется:
p = СryptAcquireContext(containerName, null, PROV_GOST_2001_DH, 0).
CryptReleaseContext(p);

При этом постоянно возвращаются ошибки типа:
The keyset is not defined. (0x80090019)
или
Keyset as registered is invalid. (0x8009001a)

Это штатное поведение? То есть нельзя вызывать эту функцию многопоточно? В Crypto API ничего не сказано на этот счет.

Контейнер на rutoken. Версия CryptoPro 3.6.1-4 Build 7279.



А разве функция не так должна быть использована?

Цитата:

BOOL WINAPI CryptAcquireContext(
_Out_ HCRYPTPROV *phProv,
_In_ LPCTSTR pszContainer,
_In_ LPCTSTR pszProvider,
_In_ DWORD dwProvType,
_In_ DWORD dwFlags
);
Offline Роман кислухин  
#3 Оставлено : 18 декабря 2013 г. 15:37:38(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Автор: Андрей * Перейти к цитате


А разве функция не так должна быть использована?



У нас библиотека, там такой синтаксис.
Но это ведь неважно? Важно, что в одном потоке все работает, а если их несколько - то валится.
Причем на Windows тот же код работает и в одном и в нескольких потоках.

вызов делается так:
CryptAcquireContext(
phProv,
pszContainer,
NULL,
PROV_GOST_2001_DH, 0);

P.S.
Сейчас обновляю на сборку 7491. Пока с рутокеном беда - не видит его крипта. Как протестирую на этой сборке - отпишу.

Отредактировано пользователем 18 декабря 2013 г. 15:39:10(UTC)  | Причина: Не указана

Offline Роман кислухин  
#4 Оставлено : 18 декабря 2013 г. 16:54:55(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

В 7491 вроде не повторяется.
Offline Роман кислухин  
#5 Оставлено : 18 декабря 2013 г. 17:40:24(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Автор: Роман кислухин Перейти к цитате
В 7491 вроде не повторяется.


Повторилось на 7491. Но ошибка теперь другая:

The Keyset parameter is invalid. (0x8009001f)
Offline Роман кислухин  
#6 Оставлено : 13 января 2014 г. 17:49:01(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Ну что, неужели никто не использует в Linux крипту в нескольких потоках? Или ни у кого не повторяется? Или синхронизируете вызовы?
Offline Максим Коллегин  
#7 Оставлено : 14 января 2014 г. 5:17:03(UTC)
Максим Коллегин


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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,030
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 11 раз
Поблагодарили: 444 раз в 406 постах
А в 7777?
Offline Роман кислухин  
#8 Оставлено : 17 февраля 2014 г. 17:58:25(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Автор: maxdm Перейти к цитате
А в 7777?


Проверю, как будет время.
Offline Роман кислухин  
#9 Оставлено : 18 ноября 2014 г. 17:13:39(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

CSP (Type:75) v3.6.5365 KC1 Release Ver:3.6.7777 OS:Linux CPU:AMD64 FastCode:READY:AVX.
Проблема актуальна. В одном потоке работает. В нескольких - разные ошибки:
Keyset as registered is invalid. (0x8009001a)
The keyset is not defined. (0x80090019)

Дополнительно проверил - проблема проявляется только на контейнерах, хранящихся на Rutoken. (используется Rutoken S). На HDIMAGE такой проблемы нет.
Offline Максим Коллегин  
#10 Оставлено : 18 ноября 2014 г. 17:16:24(UTC)
Максим Коллегин


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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,030
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 11 раз
Поблагодарили: 444 раз в 406 постах
Создал тикет в jira: CPCSP-4884
Offline Роман кислухин  
#11 Оставлено : 18 ноября 2014 г. 17:37:15(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Прикрепляю наш тест
Тест в 5 потоках получает доступ к контейнеру, указанному в параметре. Пример использования:

./test.sh MY_TEST_CONTAINER

Java требуется версии 1.6 (Oracle JRE или JDK).
Вложение(я):
cpro_test.tar.gz.7z.001.jpg (1,024kb) загружен 5 раз(а).
cpro_test.tar.gz.7z.002.jpg (1,024kb) загружен 4 раз(а).
Пользователь Роман кислухин прикрепил следующие файлы:
cpro_test.tar.gz.7z.003.jpg (22kb) загружен 4 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Максим Коллегин  
#12 Оставлено : 19 ноября 2014 г. 5:12:23(UTC)
Максим Коллегин


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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,030
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 11 раз
Поблагодарили: 444 раз в 406 постах
а третья часть не потерялась?
Offline Роман кислухин  
#13 Оставлено : 19 ноября 2014 г. 13:11:39(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Автор: maxdm Перейти к цитате
а третья часть не потерялась?


У меня получилось скачать.
сейчас повторно ее прикреплю
Пользователь Роман кислухин прикрепил следующие файлы:
cpro_test.tar.gz.7z.003.jpg (22kb) загружен 15 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Максим Коллегин  
#14 Оставлено : 19 ноября 2014 г. 16:32:13(UTC)
Максим Коллегин


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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,030
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 11 раз
Поблагодарили: 444 раз в 406 постах
Нужно было пройти квест по сохранению картинки)
Offline Роман кислухин  
#15 Оставлено : 19 ноября 2014 г. 17:01:39(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Автор: maxdm Перейти к цитате
Нужно было пройти квест по сохранению картинки)


ну так я же прошел квест по залитию архивов на сайт ;-)
Offline Максим Коллегин  
#16 Оставлено : 20 ноября 2014 г. 3:31:17(UTC)
Максим Коллегин


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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 5,030
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 11 раз
Поблагодарили: 444 раз в 406 постах
Проблему воспроизвели, будем исправлять.
Offline Grey  
#17 Оставлено : 1 декабря 2014 г. 18:32:39(UTC)
Grey


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

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

Поблагодарили: 51 раз в 48 постах
А подскажите, пожалуйста, свою версию pcsc-lite (pcscd --version).
С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН,
Компания "КриптоПро"
Offline Роман кислухин  
#18 Оставлено : 4 декабря 2014 г. 13:26:28(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

pcsc-lite version 1.5.2.
Copyright (C) 1999-2002 by David Corcoran <corcoran@linuxnet.com>.
Copyright (C) 2001-2008 by Ludovic Rousseau <ludovic.rousseau@free.fr>.
Copyright (C) 2003-2004 by Damien Sauveron <sauveron@labri.fr>.
Report bugs to <muscle@lists.musclecard.com>.
Enabled features: Linux libhal usbdropdir=/usr/lib64/pcsc/drivers confdir=/etc ipcdir=/var/run
Offline Grey  
#19 Оставлено : 4 декабря 2014 г. 13:29:57(UTC)
Grey


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

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

Поблагодарили: 51 раз в 48 постах
Автор: Роман кислухин Перейти к цитате
pcsc-lite version 1.5.2.
Copyright (C) 1999-2002 by David Corcoran <corcoran@linuxnet.com>.
Copyright (C) 2001-2008 by Ludovic Rousseau <ludovic.rousseau@free.fr>.
Copyright (C) 2003-2004 by Damien Sauveron <sauveron@labri.fr>.
Report bugs to <muscle@lists.musclecard.com>.
Enabled features: Linux libhal usbdropdir=/usr/lib64/pcsc/drivers confdir=/etc ipcdir=/var/run


Согласно changelog pcsc-lite в версии 1.6.0 количество возможных подключений увеличили с 16 до 200:

Цитата:
Use lists instead of fixed size arrays to store handles.
It is now possible to have:
200 simultaneous PC/SC clients instead of 16
200 SCardConnect per client instead of 16
200 clients per reader instead of 16
The default value of 200 can be changed by giving an argument to pcscd
--max-thread --max-card-handle-per-thread --max-card-handle-per-reader
Thanks to Jean-Luc Giraud for the big patch


Наши тесты, в принципе, подтвердили это утверждение. Попробуйте обновить pcsc-lite до более новой версии, должно решить проблему.
С уважением,
Сергей Агафьин,
Начальник отдела разработки ФКН,
Компания "КриптоПро"
Offline Роман кислухин  
#20 Оставлено : 4 декабря 2014 г. 13:35:38(UTC)
Роман кислухин

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

Группы: Участники
Зарегистрирован: 28.03.2011(UTC)
Сообщений: 124
Мужчина
Откуда: Москва

Но тесте всего 5 потоков. Как это объясняется?
К тому же ошибка не проявляется, если вызов этой функции сериализовать.
Так что это объяснение не подходит.

Отредактировано пользователем 4 декабря 2014 г. 15:01:18(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.