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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline kaluchij  
#11 Оставлено : 9 апреля 2012 г. 17:24:18(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Возник еще один вопрос:
Функция unsigned int Verify ( PCCERT_CONTEXT pCert = NULL,
char * AllowedCriticalExtensions = NULL
) const
в какой библиотеке находится?

Ошибка "error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: unsigned int __thiscall CryptoPro::PKI::TSP::Client::CStamp::Verify ...."
Offline Новожилова Елена  
#12 Оставлено : 9 апреля 2012 г. 19:14:48(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
kaluchij написал:
Цитата:


Например так: ITSPStamp2::Import2, ITSPStamp::VerifyStamp.


Если использую интерфейс клиентских приложений с++, то соответственно

Stamp.Import;
Stamp.Verify;
Верно ?


Да, верно :-)

kaluchij написал:
Ставил отдельно. Отпечатки ключей разные.

Как здесь выложить файлы?

Полностью переустановил Крипто ПРО CSP, установил полностью цепочку сертификатов и часть проблем решилась:
запрос Send отрабатывает в любом виде, сертификаты проверяются и в штампе выводится, что подпись верна.


Если теперь все работает, то штамп выкладывать не нужно. Проблема у вас была из-за плановой смены ключа на тестовом УЦ - был установлен не тот сертификат УЦ, на котором выпущен сертификат тестовой службы штампов (например был установлен только более старый или более новый сертификат УЦ).

kaluchij написал:
Возник еще один вопрос:
Функция unsigned int Verify ( PCCERT_CONTEXT pCert = NULL,
char * AllowedCriticalExtensions = NULL
) const
в какой библиотеке находится?

Ошибка "error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: unsigned int __thiscall CryptoPro::PKI::TSP::Client::CStamp::Verify ...."

Функция Verify находится в библиотеке tspcli, прототип можно посмотреть в файле tspcli.h:
Код:
int Verify(PCCERT_CONTEXT pCert = NULL, char *AllowedCriticalExtensions = NULL) const;

Offline kaluchij  
#13 Оставлено : 9 апреля 2012 г. 19:58:08(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Проблема с функцией Verify по-прежнему осталась.
Либы и длл-ки использую последние, версия TSP SDK 1.05.
Offline Новожилова Елена  
#14 Оставлено : 9 апреля 2012 г. 20:45:44(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Функция Verify имеет тип возвращаемого значения не unsigned int, а int. Файл tspcli.h у вас из нового SDK?
Offline kaluchij  
#15 Оставлено : 9 апреля 2012 г. 20:53:22(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Новожилова Елена написал:
Функция Verify имеет тип возвращаемого значения не unsigned int, а int. Файл tspcli.h у вас из нового SDK?


Проблема решилась, спасибо! Файл tspcli.h был старый.
Offline kaluchij  
#16 Оставлено : 28 апреля 2012 г. 16:48:10(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Подниму данную тему!

Функцию написал, на тестовом сервере Крипто ПРО она отрабатывает.
Но при попытке отладки на реальном TSP сервере метод send сваливается с ошибкой (неизвестный эксепшн).

Код прилагаю.
Код:

         CryptoPro::PKI::TSP::Client::CRequest Request;

		//Задаем данные (если на вход - данные) ------------------------------//
	unsigned char Text[33] = "ABCD1234567890123456789012345678";
	//Request.put_DataHashAlg(CALG_GR3411);
	//Request.AddData(Text, 4);	

		//если на вход хэш, то используем это --------------------------------//
	BYTE* Data = (BYTE*)malloc(33); 
	DWORD DataLen = 33; 
	BYTE** HASH = (BYTE**)malloc(512); 
	DWORD* HLen = (DWORD*)malloc(sizeof(DWORD));

	crproGetHash(Data, DataLen, HASH, HLen);   //функция получения хэш
	Request.put_DataHash((unsigned char*)HASH,512);


		//авторизация по сертификату
	PCCERT_CONTEXT pCert;
	HCERTSTORE hStoreHandle = NULL;
    hStoreHandle = Lib.dinamic_CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL,
											CERT_SYSTEM_STORE_CURRENT_USER,
											L"MY");

	pCert = Lib.dinamic_CryptUIDlgSelectCertificateFromStore(hStoreHandle,
                                                           NULL, NULL, NULL,
                                                           NULL,  0,  NULL);
   
	Request.put_ClientCertificate(pCert);

		//----------------------------------------------------------------------//

	Request.put_CertReq(true);

		//адрес TSP сервера
	Request.put_TSAAddress(L"http://10.16.3.2/tsp/tsp.srf"); 

	long res;
		
		try
	{
		CryptoPro::PKI::TSP::Client::CStamp Stamp(Request.Send(true));
	}
	catch(ATL::CAtlException &ex)
    {
        if (ex.m_hr == TSPCLI_ERROR_HTTP) 
		{
			res = Request.get_HTTPStatus();
			res = 0;
		}
	}



Ошибки:
ex.m_hr -2147012877 когда сертификат включен в запрос

Если сертификат в запрос не включен, то getHTTPstatus возвращает 413

С чем это может быть связано и как решить данную проблему?

Отредактировано пользователем 28 апреля 2012 г. 17:03:51(UTC)  | Причина: Не указана

Online Андрей Писарев  
#17 Оставлено : 28 апреля 2012 г. 17:03:00(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,340
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
kaluchij написал:

Но при попытке отладки на реальном TSP сервере метод send сваливается с ошибкой (неизвестный эксепшн).


а код у ошибки какой?


Техническую поддержку оказываем тут
Наша база знаний
Offline kaluchij  
#18 Оставлено : 28 апреля 2012 г. 17:04:48(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Андрей * написал:

а код у ошибки какой?




ex.m_hr -2147012877 когда сертификат включен в запрос
Online Андрей Писарев  
#19 Оставлено : 28 апреля 2012 г. 17:07:55(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,340
Мужчина
Российская Федерация

Сказал «Спасибо»: 550 раз
Поблагодарили: 2212 раз в 1727 постах
kaluchij написал:
Андрей * написал:

а код у ошибки какой?




ex.m_hr -2147012877 когда сертификат включен в запрос


0x80072EF3 -2147012877 Error_Internet_Incorrect_Handle_State ?

http://support.microsoft.com/kb/177190

Отредактировано пользователем 28 апреля 2012 г. 17:10:16(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline kaluchij  
#20 Оставлено : 28 апреля 2012 г. 17:16:43(UTC)
kaluchij

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

Группы: Участники
Зарегистрирован: 03.04.2012(UTC)
Сообщений: 17

Вот такая ошибка:

Unhandled exception at 0x7c812aeb in testDLL.exe: Microsoft C++ exception: ATL::CAtlException at memory location 0x0022c874..
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.