Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Проблема получения сертификата подписчика - CertFindCertificateInStore
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,400  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
это цитата из нашего wincryptex.h - добавьте себе в программу. Или собирайте под UNICODE |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,400  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
Хотя нет. Проблема возможно не в этом. Код:0, // encoding type. 0 или X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
- нужно писать вместо Код:X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.04.2009(UTC) Сообщений: 12
|
maxdm написал:это цитата из нашего wincryptex.h - добавьте себе в программу. Или собирайте под UNICODE в Вашем WinCryptEx.h я этого тоже не нашел ( * \file $RCSfile: WinCryptEx.h,v $ * \version $Revision: 1.105.4.6 $ * \date $Date: 2002/10/04 11:39:34 $ * \author $Author: vasilij $ ) А X509_ASN_ENCODING | PKCS_7_ASN_ENCODING попробую чуть позже, хотя вроде пробывал. Отредактировано пользователем 19 мая 2009 г. 16:51:50(UTC)
| Причина: Не указана |
Природа - МАТЬ, и её надо беречь! |
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,400  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.04.2009(UTC) Сообщений: 12
|
Всем, всем большое спасибо. Код:
LPWSTR lpszCertSubject = L"Gafarov_Artur";
// Get the certificate for the signer.
if(pSignerCertContext = CertFindCertificateInStore(
hCertStore,
MY_ENCODING_TYPE,
0,
CERT_FIND_SUBJECT_STR,
lpszCertSubject,
NULL))
Form1->Memo1->Lines->Add("Certificate was found");
else
{
Form1->Memo1->Lines->Add("Certificate not found");
exit(1);
}
Теперь работает :) Подключил хедер новой версии: * \file $RCSfile: WinCryptEx.h,v $ * \version $Revision: 1.211 $ * \date $Date: 2007/10/12 14:35:32 $ * \author $Author: cross $ Отредактировано пользователем 19 мая 2009 г. 17:52:04(UTC)
| Причина: Не указана |
Природа - МАТЬ, и её надо беречь! |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.12.2011(UTC) Сообщений: 45  Откуда: Москва
|
Здравствуйте, столкнулся с проблемой. Если имя пользователя на кого выдан сертификат (CN) содержит русские буквы, то выдается ошибка 80092004 ("Объект или свойство не найдено"). Если CN содержит только латиницу, то все работает как надо. Ниже приведен код функции с помощью которого создаю контекст сертификата. Если CertFindCertificateInStore(... CERT_FIND_SUBJECT_STR_A, L"Andrey" ,NULL))) то все хорошо работает. Если CertFindCertificateInStore(...CERT_FIND_SUBJECT_STR_A, L"Андрей" ,NULL))) то не работает. Спасибо. Код:
bool GetCertContextFromSystemStore(PCCERT_CONTEXT *a_pCertContext, DWORD dwCertEncodingType, LPWSTR a_StoreName,LPWSTR a_Name)
{
HCERTSTORE hStore; // Certificate store
if(!(hStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, // The store provider type
0, // The encoding type is// not needed
NULL, // Use the default HCRYPTPROV
CERT_SYSTEM_STORE_CURRENT_USER, // Set the store location in a// registry location
a_StoreName/*L"MY"*/ ) // The store name as a Unicode // string
))
{
MyHandleError(_T("Не удалось найти сертификат."));
CertCloseStore(hStore,0);
return false;
}
if(!(*a_pCertContext=CertFindCertificateInStore(hStore,dwCertEncodingType,0,CERT_FIND_SUBJECT_STR_A, L"Andrey" ,NULL)))
{
MyHandleError(_T("Не найден сертификат в хранилище."));// handleError(EPOS_CERT_NOT_FOUND);
return false;
}
CertCloseStore(hStore,0);
return true;
}
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.12.2011(UTC) Сообщений: 45  Откуда: Москва
|
Сертификаты Вложение(я):  Andrey.p7b (1kb) загружен 9 раз(а). Андрей.pfx (2kb) загружен 8 раз(а).Пользователь andreyxvo прикрепил следующие файлы:  Безымянный.JPG (31kb) загружен 262 раз(а). 1.JPG (31kb) загружен 266 раз(а). сертификаты.JPG (42kb) загружен 262 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.12.2011(UTC) Сообщений: 45  Откуда: Москва
|
Вроде решил. CertFindCertificateInStore(...CERT_FIND_SUBJECT_STR_A, L"Андрей" ,NULL))) Использую CERT_FIND_SUBJECT_STR_A, а проект в кодировке мультибайт. Поменял на CERT_FIND_SUBJECT_STR все заработало. Пока заработало.
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Проблема получения сертификата подписчика - CertFindCertificateInStore
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close