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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Andykk  
#1 Оставлено : 22 ноября 2017 г. 10:02:03(UTC)
Andykk

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Почему-то в указанной конфигурации (КриптоПро 4.0 на Debian 8 с процессором Baikal) не удается запустить работавшую на предыдущей версии КриптоПро под Linux на процессоре Intel программу. Выдается ошибка при создании handler хеша.

Вот минимальная программа

Код:

#include <WinCryptEx.h>
#include <sstream>
#include <stdio.h>

using namespace std;

static void HandleError(const char *s)
{
    ostringstream outs;
    LPTSTR pBuffer = NULL;
    DWORD err = GetLastError();

    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, 0, (LPTSTR) &pBuffer, 0, NULL);
    outs << s << ". " << pBuffer << " (0x" << hex << err << ")";
    LocalFree(pBuffer);
    throw outs.str();
}

int main()
{
        HCRYPTPROV hProv = 0;
        HCRYPTHASH hHash = 0;

        try {
                if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT))
                        HandleError("CryptAcquireContext");

                printf("hProv: %llu\n", hProv);

                if (!CryptCreateHash(hProv, CALG_GR3411, 0, 0, &hHash))
                        HandleError("CryptCreateHash");

        } catch(const string &s) {
                printf("exception: %s\n", s.c_str());;
        }

        if (hHash)
                CryptDestroyHash(hHash);
        if (hProv)
                CryptReleaseContext(hProv, 0);
        return 0;
}


которая выдает

Код:

hProv: 4387395
exception: CryptCreateHash. The parameter is incorrect. (0x57)


Можете подсказать, из-за чего может такое быть? В какую сторону смотреть?
Offline Andykk  
#2 Оставлено : 23 ноября 2017 г. 8:04:28(UTC)
Andykk

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Вот какие библиотеки подключаются:

Код:

        libcpasn1.so.4 => /opt/cprocsp/lib/mipsel/libcpasn1.so.4 (0x771ec000)
        libssp.so.4 => /opt/cprocsp/lib/mipsel/libssp.so.4 (0x77100000)
        libcapi10.so.4 => /opt/cprocsp/lib/mipsel/libcapi10.so.4 (0x770e0000)
        libcapi20.so.4 => /opt/cprocsp/lib/mipsel/libcapi20.so.4 (0x76a48000)
        librdrsup.so.4 => /opt/cprocsp/lib/mipsel/librdrsup.so.4 (0x76a00000)
        libpthread.so.0 => /lib/mipsel-linux-gnu/libpthread.so.0 (0x769d4000)
        libstdc++.so.6 => /usr/lib/mipsel-linux-gnu/libstdc++.so.6 (0x768c0000)
        libm.so.6 => /lib/mipsel-linux-gnu/libm.so.6 (0x76830000)
        libgcc_s.so.1 => /lib/mipsel-linux-gnu/libgcc_s.so.1 (0x767f4000)
        libc.so.6 => /lib/mipsel-linux-gnu/libc.so.6 (0x76670000)
        libcpalloc.so.0 => /opt/cprocsp/lib/mipsel/libcpalloc.so.0 (0x7665c000)
        libjemalloc.so.0 => /opt/cprocsp/lib/mipsel/libjemalloc.so.0 (0x7660c000)
        libdl.so.2 => /lib/mipsel-linux-gnu/libdl.so.2 (0x765f8000)
        liburlretrieve.so.4 => /opt/cprocsp/lib/mipsel/liburlretrieve.so.4 (0x765e4000)
        libcplib.so.4 => /opt/cprocsp/lib/mipsel/libcplib.so.4 (0x765d0000)
        libcpext.so.4 => /opt/cprocsp/lib/mipsel/libcpext.so.4 (0x7651c000)
        /lib/ld.so.1 => /lib64/ld.so.1 (0x778f4000)


Может КриптоПро не работает на процессорах Baikal?
Offline Максим Коллегин  
#3 Оставлено : 23 ноября 2017 г. 18:00:59(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
Очень странно, у нас даже plugin работает на Байкал.
Какую версию устанавливали?
Знания в базе знаний, поддержка в техподдержке
Offline Andykk  
#4 Оставлено : 24 ноября 2017 г. 8:30:55(UTC)
Andykk

Статус: Новичок

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

Сказал(а) «Спасибо»: 1 раз
Разобрался сам, переменные окружения были от старой сборки, отличался, например, SIZEOF_VOID_P. На Baikal он равен 4 вместо 8 на Intel.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.