Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.10.2010(UTC) Сообщений: 140  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 2 раз Поблагодарили: 10 раз в 9 постах
|
Вот этот код неизменно падает с Segmentation fault на вызове CryptEncrypt: Код:void segfaultTest(HCRYPTPROV hProvider)
{
HCRYPTKEY kek;
if (!CryptGenKey(hProvider, CALG_G28147, CRYPT_EXPORTABLE, &kek))
{
DBG_OUT_E("Can't generate KEK");
return;
}
DWORD dparam = ZERO_PADDING;
if (!CryptSetKeyParam(kek, KP_PADDING, (BYTE*)&dparam, 0))
{
DBG_OUT_E("Can't set ZERO_PADDING for generated KEK.");
return;
}
dparam = CRYPT_MODE_ECB;
if (!CryptSetKeyParam(kek, KP_MODE, (BYTE*)&dparam, 0)){
DBG_OUT_E("Can't set ECB mode");
return;
}
DWORD dataLen = G28147_KEYLEN;
if (!CryptEncrypt(
kek, 0, TRUE, 0, NULL, &dataLen, dataLen)) {
DBG_OUT_E("Can't detemine required buffer size.");
return;
}
printf("Buffer size required: %d\n", dataLen);
}
При этом если исключить установку ZERO_PADDING ИЛИ CRYPT_MODE_ECB - то все работает - нужный размер буфера вычисляет. Ошибка в коде или где? CryptoPro CSP 3.6R2 Linux i386 Отредактировано пользователем 23 ноября 2010 г. 10:49:39(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 17.10.2010(UTC) Сообщений: 140  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 2 раз Поблагодарили: 10 раз в 9 постах
|
Да, забыл написать, сегфолт появляется на всех dataLen, кратных 32.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,496
Сказал(а) «Спасибо»: 41 раз Поблагодарили: 606 раз в 420 постах
|
Сходу повторить пробему не удалось. Сделал ночной тест и запрос в JIRA: CPCSP-463 (можно спрашивать в техподдержке о его статусе). Позже ещё раз попробую. |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,496
Сказал(а) «Спасибо»: 41 раз Поблагодарили: 606 раз в 420 постах
|
Неправильно передаются параметры: нельзя: pbData = NULL, dwBufLen != 0. Дополнительную проверку в провайдер вставил. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close