Статус: Новичок
Группы: Участники
Зарегистрирован: 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;
|
|
|
|
Статус:: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Просматривает сообщения в теме : 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
КриптоПро CSP не поддерживает шифрование на секретном ключе, в отличие от провайдеров MS. Шифровать надо на специальном выработанном симметричном ключе. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close