26.02.2007 11:00:13Получение дескриптора открытого ключа Ответов: 5
Волков
Как получить дескриптор открытого ключа, из сертификата который я установил из файла *.cer? В каком контейнере он лежит? Сертификат получен на вашем тестовом УЦ. Заранее благодарен.
 
Ответы:
26.02.2007 12:20:42Kirill Sobolev
Он не лежит в контейнере, Вам придется самим сделать CryptAcquireContext с флагом CRYPT_VERIFYCONTEXT, а затем сделать CryptImportPublicKeyInfoEx для CERT_CONTEXT::CERT_INFO::SubjectPublicKeyInfo.
26.02.2007 13:24:09Волков
Я так понял что нужно сначала создать контейнер а потом импортировать туда сертификат, который в последствии и будет использоваться? Если да то почему тогда функцию CryptAcquireContext вызывается с параметром CRYPT_VERIFYCONTEXT?
26.02.2007 14:05:49Kirill Sobolev
Да, все так - только импортировать не сертификат а ОК. CRYPT_VERIFYCONTEXT надо использовать потому что не предполагается использовать секретный ключ.
26.02.2007 14:43:02Волков
А нельзя структуру PCCERT_CONTEXT Заполнить функциец CertFindCertificateInStore, а не создавать контейнер? Вообще нужно просто экспортировать открытый ключ из сертификата получателя шифрованного сообщения.
26.02.2007 15:18:09Kirill Sobolev
Можно заполнить через CertFindCertificateInStore, только контейнер тут непричем - он нужен для ключа а не для контекста сертификата. Контейнер конечно можно (и нужно) не создавать, я для этого про CRYPT_VERIFYCONTEXT и написал. Никакой контейнер не создастся, а при вызове pszContainer как раз дб NULL.