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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Vitaly  
#1 Оставлено : 2 июня 2008 г. 13:38:04(UTC)
Vitaly

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

Группы: Участники
Зарегистрирован: 02.06.2008(UTC)
Сообщений: 1

КриптоПРО CSP: 3.6.4070 КС2

При попытке CryptEncrypt возникает ошибка 0x80090020. Если использую PROV_RSA_FULL, то все OK. Почему такое может быть?

Вот кусок кода:

if not CryptAcquireContext(@hProv, UserName, nil, PROV_GOST_2001_DH, 0) then
begin
err := GetLastError;
if err = NTE_BAD_KEYSET then
begin
if not CryptAcquireContext(@hProv, UserName, nil, PROV_GOST_2001_DH, CRYPT_NEWKEYSET) then
begin
err := GetLastError;
end else
err := 0;
end;
if err <> 0 then
raise Exception.Create('Error 0x'+IntToHex(err, 8)+' ('+IntToStr(err)+') at CryptAcquireContext');
end;

if not CryptGetUserKey(hProv, AT_KEYEXCHANGE, @hSessKey) then
begin
err := GetLastError;
if err = NTE_NO_KEY then
begin
if not CryptGenKey(hProv, AT_KEYEXCHANGE, 0, @hSessKey) then
begin
err := GetLastError;
end else
err := 0;
end;
if err <> 0 then
raise Exception.Create('Error 0x'+IntToHex(err, 8)+' ('+IntToStr(err)+') at CryptGetUserKey/CryptGetUserKey');
end;

//в bufMsg - сообщение, размер буфера - 1024
dwMsgLen := StrLen(@bufMsg)+1;

//вот тут - ошибка 0x80090020
if not CryptEncrypt(hSessKey, 0, True, 0, @bufMsg, @dwMsgLen, 1024) then
begin
err := GetLastError;
raise Exception.Create('Error 0x'+IntToHex(err, 8)+' ('+IntToStr(Integer(err))+') at step 1');
end;

Offline Kirill Sobolev  
#2 Оставлено : 2 июня 2008 г. 14:16:25(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Просматривает сообщения в теме : 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
КриптоПро CSP не поддерживает шифрование на секретном ключе, в отличие от провайдеров MS. Шифровать надо на специальном выработанном симметричном ключе.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.