| ||||
| ||||
Имеется чистая Windows 98 SE c установленным Internet Explorer 5.0 Ставлю на нее CryptoPro: cpcsp - перезагрузка - cptls - перезагрузка. Получаю сертификат с www.cryptopro.ru\CertSrv Запускаю пример веб-клиента csptest (tlsc). И получаю ошибку: Error 0x80090305 in AcquireCredentialsHandle На win2000 тот же клиент с теми же параметрами работает прекрасно. Где искать проблему ? | ||||
Ответы: | ||||
| ||||
Действительно, примеры использования TLS не включали особенностей реализации в Win 9.x. Постараемся завтра выложить новые примеры. | ||||
| ||||
Если примеры еще не готовы, не могли бы Вы пока хотя-бы подсказать, чем отличается реализация TLS в Win9x и где можно про это почитать подробнее. Мы разрабатываем систему, которой как раз необходим TLS в 9x. | ||||
| ||||
Здравствуйте, >Если примеры еще не готовы, не могли бы Вы пока хотя-бы подсказать, чем отличается реализация TLS в Win9x и где можно про это почитать подробнее Отличия минимальны и ограничиваются загрузкой нужного DLL. Но, к сожалению, этот вопрос плохо освещён в MSDN. В нашем тестовом примере следует модифицировать функцию tls.c:44!LoadSecurityLibrary следующим образом: /*****************************************************************************/ BOOL LoadSecurityLibrary(void) { PSecurityFunctionTable pSecurityFunc; INIT_SECURITY_INTERFACE pInitSecurityInterface; OSVERSIONINFO VerInfo; UCHAR lpszDLL[MAX_PATH]; // // Find out which security DLL to use, depending on // whether we are on Win2K, NT or Win9x // VerInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); if (!GetVersionEx (&VerInfo)) { return FALSE; } if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT && VerInfo.dwMajorVersion == 4) { strcpy ((char *)lpszDLL, NT4_DLL_NAME ); } else if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) { strcpy ((char *)lpszDLL, DLL_NAME ); } else if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { strcpy ((char *)lpszDLL, "schannel.dll" ); } else { return FALSE; } | ||||