Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

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

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

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

Сказал «Спасибо»: 8 раз
Поблагодарили: 3 раз в 3 постах
Добрый день

В синтетическом тесте в пяти потоках в цикле выполняется:
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 г. 18:09:25(UTC)
Андрей *

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

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

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

В синтетическом тесте в пяти потоках в цикле выполняется:
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 г. 18:37:38(UTC)
Роман кислухин

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

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

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


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



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

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

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

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

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

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

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

Сказал «Спасибо»: 8 раз
Поблагодарили: 3 раз в 3 постах
В 7491 вроде не повторяется.
Offline Роман кислухин  
#5 Оставлено : 18 декабря 2013 г. 20:40:24(UTC)
Роман кислухин

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

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

Сказал «Спасибо»: 8 раз
Поблагодарили: 3 раз в 3 постах
Автор: Роман кислухин Перейти к цитате
В 7491 вроде не повторяется.


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

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

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

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

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

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
А в 7777?
Знания в базе знаний, поддержка в техподдержке
Offline Роман кислухин  
#8 Оставлено : 17 февраля 2014 г. 21:58:25(UTC)
Роман кислухин

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

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

Сказал «Спасибо»: 8 раз
Поблагодарили: 3 раз в 3 постах
Автор: maxdm Перейти к цитате
А в 7777?


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

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

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

Сказал «Спасибо»: 8 раз
Поблагодарили: 3 раз в 3 постах
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 г. 20:16:24(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Создал тикет в jira: CPCSP-4884
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.