Статус: Участник
Группы: Участники
Зарегистрирован: 27.11.2015(UTC) Сообщений: 10
|
Доброго времени суток. Я из компании аладдин. Сейчас занимаюсь интеграцией cryptopro CSP 3.9 ФКН с нашим продуктом. Возникли вопросы: 1. Как программно устанавливать поле friendly name контейнера (crypto API функциями)? Является ли данное поле необходимым для функционирования ФКН архитектуры? 2. Заявлена поддержка ФКН ключей компании аладдин (https://www.cryptopro.ru/products/fkc/etoken). С какими ФКН ключами и какими версиями этих ключей тестировался crypto pro ФКН 3.9? Какие функции тестировались? Какими средствами? Есть ли возможность эти тесты прогнать у нас, чтобы подтвердить работоспособность цепочки (ключ + модуль поддержки ФКН + cryptopro CSP ФКН)? Можно ли получить данные тесты в формате кода с crypto API вызовами? 3. Что происходит при установке контейнера по умолчанию на ФКН ключах? Пишется файл на ключе? С каким именем?
Спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Такие вопросы лучше обсуждать напрямую с разработчиками. Продукт сертифицирован в ФСБ вместе с ключами - подробности можно посмотреть в формуляре. Система тестирования наша собственная. Проще всего подтвердить работоспособность прислав нам токены ( карты ). Кстати в текущих модулях поддержки есть нерешенные проблемы - сообщу подробности позже. FriendlyName - CryptSetProvParam PP_FRIENDLY_NAME. Параметр - имя в юникоде (для Windows) Отредактировано пользователем 27 ноября 2015 г. 10:49:16(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.11.2015(UTC) Сообщений: 10
|
Добрый день. Возник еще один вопрос. Пытаюсь установить контейнер по умолчанию. Для этого использую функции CryptSetProvParam и CPSetProvParam. В данном случае эти вызовы идентичны? Если есть разница, то в чем? Взял пример из SDK "CreateKeyContainer" и в конец добавил установку контейнера по умолчанию. В случае CryptSetProvParam получаю ошибку (NTE_BAD_KEY_STATE) Цитата: if (!CryptSetProvParam(hCryptProv, PP_CONTAINER_DEFAULT, NULL, 0)) { HandleError("Error during CryptSetProvParam."); }
В случае CPSetProvParam получаю ошибку (ERROR_INVALID_PARAMETER) Цитата: typedef BOOL (CALLBACK* MySetProvParam)(HCRYPTPROV, DWORD, PBYTE, DWORD);
void MySetProvParamFunc() { HINSTANCE dllHandle = NULL; MySetProvParam func = NULL;
//Load the dll and keep the handle to it dllHandle = LoadLibrary(L"c:\\Program Files (x86)\\Crypto Pro\\ECSP\\cpcsp.dll");
// If the handle is valid, try to get the function address. if (NULL != dllHandle) { //Get pointer to our function using GetProcAddress: func = (MySetProvParam)GetProcAddress(dllHandle, "CPSetProvParam");
// If the function address is valid, call the function. if (func == NULL) { return; }
if (!func(hCryptProv, PP_CONTAINER_DEFAULT, NULL, 0)) { HandleError("CPSetProvParam failed!"); } } }
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
CP - интерфейс предоставляет каждая библиотека криптопровайдера. Crypt -интерфейс для удобного вызова функций криптопровайдеров по имени провайдера, инкапсулирует в себя хэндлы. PP_CONTAINER_DEFAULT: Как получаете хэндл hCryptProv? Должны работать оба варианта, но хэндлы между собой несовместимы. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.11.2015(UTC) Сообщений: 10
|
Хендл получаю так: Цитата: if(!CryptAcquireContext(&hCryptProv, ContainerName, CP_KC1_GR3410_2001_ETOKEN_PROV_W, PROV_GOST_2001_DH, CRYPT_NEWKEYSET)) { HandleError("Could not create a new key container.\n"); }
В CSP 3.9 ФКН должна работать функция установки контейнера по умолчанию? При тестировании CSP на различных ключевых носителях эта функция тоже тестировалась?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,425
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 570 раз в 397 постах
|
ФКН-провайдеры поддерживают PP_CONTAINER_DEFAULT. CP-интерфейс является нерекомендованным MS и нами. Везде используйте Crypt-интерфейс. То есть надо использовать CryptSetProvParam(), как в соседних примерах, а не грузить руками символы из библиотек. Вы создали hCryptProv в рамках одного интерфейса (Crypt), а используете в другом (CP) - закономерно дескриптор "не подходит". |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close