Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Максим Коллегин  
#11 Оставлено : 19 мая 2009 г. 16:37:13(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
это цитата из нашего wincryptex.h - добавьте себе в программу. Или собирайте под UNICODE
Знания в базе знаний, поддержка в техподдержке
Offline Максим Коллегин  
#12 Оставлено : 19 мая 2009 г. 16:41:50(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Хотя нет. Проблема возможно не в этом.
Код:
0, // encoding type. 0 или X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
- нужно писать вместо
Код:
0
Код:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Знания в базе знаний, поддержка в техподдержке
Offline cplusplus  
#13 Оставлено : 19 мая 2009 г. 16:50:59(UTC)
cplusplus

Статус: Участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Природа - МАТЬ, и её надо беречь!
Offline Максим Коллегин  
#14 Оставлено : 19 мая 2009 г. 17:04:58(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,377
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
в sdk от CSP 3.6
Знания в базе знаний, поддержка в техподдержке
Offline cplusplus  
#15 Оставлено : 19 мая 2009 г. 17:49:12(UTC)
cplusplus

Статус: Участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Природа - МАТЬ, и её надо беречь!
Offline andreyxvo  
#16 Оставлено : 17 апреля 2012 г. 14:33:18(UTC)
andreyxvo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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; 

}

Offline andreyxvo  
#17 Оставлено : 17 апреля 2012 г. 14:33:59(UTC)
andreyxvo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.12.2011(UTC)
Сообщений: 45
Мужчина
Откуда: Москва

Сертификаты
Вложение(я):
Andrey.p7b (1kb) загружен 9 раз(а).
Андрей.pfx (2kb) загружен 8 раз(а).
Пользователь andreyxvo прикрепил следующие файлы:
Безымянный.JPG (31kb) загружен 262 раз(а).
1.JPG (31kb) загружен 266 раз(а).
сертификаты.JPG (42kb) загружен 262 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline andreyxvo  
#18 Оставлено : 18 апреля 2012 г. 18:22:30(UTC)
andreyxvo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 21.12.2011(UTC)
Сообщений: 45
Мужчина
Откуда: Москва

Вроде решил.
CertFindCertificateInStore(...CERT_FIND_SUBJECT_STR_A, L"Андрей" ,NULL))) Использую CERT_FIND_SUBJECT_STR_A, а проект в кодировке мультибайт. Поменял на CERT_FIND_SUBJECT_STR все заработало. Пока заработало.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.