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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline cryptoktulhu  
#1 Оставлено : 27 ноября 2015 г. 9:32:51(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 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. Что происходит при установке контейнера по умолчанию на ФКН ключах? Пишется файл на ключе? С каким именем?

Спасибо.
Offline Максим Коллегин  
#2 Оставлено : 27 ноября 2015 г. 10:40:39(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 715 раз в 620 постах
Такие вопросы лучше обсуждать напрямую с разработчиками. Продукт сертифицирован в ФСБ вместе с ключами - подробности можно посмотреть в формуляре.
Система тестирования наша собственная. Проще всего подтвердить работоспособность прислав нам токены ( карты ).
Кстати в текущих модулях поддержки есть нерешенные проблемы - сообщу подробности позже.
FriendlyName - CryptSetProvParam PP_FRIENDLY_NAME. Параметр - имя в юникоде (для Windows)

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

Знания в базе знаний, поддержка в техподдержке
Offline cryptoktulhu  
#3 Оставлено : 1 декабря 2015 г. 14:17:08(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 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!");
}
}
}

Offline Максим Коллегин  
#4 Оставлено : 1 декабря 2015 г. 16:24:15(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 715 раз в 620 постах
CP - интерфейс предоставляет каждая библиотека криптопровайдера.
Crypt -интерфейс для удобного вызова функций криптопровайдеров по имени провайдера, инкапсулирует в себя хэндлы.
PP_CONTAINER_DEFAULT: Как получаете хэндл hCryptProv? Должны работать оба варианта, но хэндлы между собой несовместимы.
Знания в базе знаний, поддержка в техподдержке
Offline cryptoktulhu  
#5 Оставлено : 1 декабря 2015 г. 18:13:23(UTC)
cryptoktulhu

Статус: Участник

Группы: Участники
Зарегистрирован: 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 на различных ключевых носителях эта функция тоже тестировалась?
Online Русев Андрей  
#6 Оставлено : 1 декабря 2015 г. 22:46:47(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,422

Сказал(а) «Спасибо»: 37 раз
Поблагодарили: 567 раз в 395 постах
ФКН-провайдеры поддерживают PP_CONTAINER_DEFAULT. CP-интерфейс является нерекомендованным MS и нами. Везде используйте Crypt-интерфейс. То есть надо использовать CryptSetProvParam(), как в соседних примерах, а не грузить руками символы из библиотек. Вы создали hCryptProv в рамках одного интерфейса (Crypt), а используете в другом (CP) - закономерно дескриптор "не подходит".
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.