24.04.2002 14:39:13Кеширование провайдера (v 1.2) Ответов: 1
ak
Здравствуйте.Пытаюсь сделать как описано здесь:
http://www.cryptopro.ru/CryptoPro/forum/myforum.asp?q=60
Но вызов
/* Установим свойства в контексте сертификата*/
ret = CertSetCertificateContextProperty(pUserCert, CERT_KEY_PROV_INFO_PROP_ID,
CERT_STORE_NO_CRYPT_RELEASE_FLAG, pCryptKeyProvInfo);

возвращает FALSE (LastError = E_ACCESSDENIED), хотя контекст сертификата найден успешно и структура CRYPT_KEY_PROV_INFO тоже получена и dwFlags установлен в CERT_SET_KEY_CONTEXT_PROP_ID.
Что посоветуете, куда смотреть?

Единственная странность, что pCryptKeyProvInfo->dwProvType == 71, (хотя PROV_GOST_DH==2),
в то время как pCryptKeyProvInfo->pwszProvName==CP_DEF_PROV

Спасибо.
Алексей
 
Ответы:
26.04.2002 10:07:28kure
В версии 1.2 имена и типы провайдеров следующие (могете посмотреть в реестре Local_machine\Software\Microsoft\Cryptography\Defaults\Provider:
Crypto-Pro Cryptographic Service Provider - 2
Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider - 75
Crypto-Pro GOST R 34.10-94 Cryptographic Service Provider - 71

Если ключ сделан с типом 71, то и инициализировать нужно по этому имени.