Статус: Новичок
Группы: Участники
Зарегистрирован: 31.05.2008(UTC) Сообщений: 1
|
Делается так (проверки на ошибки и прочее подобное убраны) Код:
CryptAcquireContext (&hProv, ContainerName, CP_GR3410_2001_PROV_A, pCryptKeyProvInfo->dwProvType, 0);
CryptGetUserKey(hProv, AT_KEYEXCHANGE, &hUserKey);
CryptImportPublicKeyInfoEx( hProv, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
&(pSignerCertContext->pCertInfo->SubjectPublicKeyInfo),
CALG_GR3410, 0, NULL,&hPublicKey);
CryptExportKey(hPublicKey, 0, PUBLICKEYBLOB, 0, NULL, &DataSize);
// Тут выделяется память
CryptExportKey(hPublicKey, 0, PUBLICKEYBLOB, 0, KeyBlobData, &DataSize);
CryptImportKey(hProv, KeyBlobData, DataSize, hUserKey, 0, &hExchKey);
Делается это в рамках формирования сессионного ключа. На последнем вызове происходит ошибка с кодом 0x80090005. Однако ошибка появляется только при использовании GOST R 34.10-2001. На GOST R 34.10-94 всё в порядке (дальше успешно создаётся ключ сессии). Сертификаты создаю при помощи csptest. В случае с GOST R 34.10-2001 команда: csptest.exe -makecert CN=name -p 0 -ca Для GOST R 34.10-94 аналогично: csptest.exe -makecert CN=name -p 2 -ca Версия криптопровайдера - 3 SP3. Что делаю не так? Спасибо.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close