Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
SEC_E_INTERNAL_ERROR при вызове AcquireCredentialsHandle
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Здравствуйте. Столкнулся со следующей проблемой. При вызове AcquireCredentialsHandle получаю ошибку SEC_E_INTERNAL_ERROR. В качестве криптопровайдера использую CryptoPro 3.0. Контейнер с ключами и сертификат находятся на eToken. ОС: WinXP SP3, среда разработки MS VS 2008 SE. Код создания мандатов: Код:
int CreateCredentials(HCRYPTPROV cspHandle, PCredHandle phCreds, SECURITY_STATUS &status) {
TimeStamp tsExpiry;
const DWORD cSupportedAlgs = 0;
ALG_ID rgbSupportedAlgs[16];
PCCERT_CONTEXT pCertContext = NULL;
int err;
err = getCertificateContext(cspHandle, pCertContext);
if (pCertContext == NULL)
goto cleanup;
ZeroMemory(&SchannelCred, sizeof(SchannelCred))
SchannelCred.dwVersion = SCHANNEL_CRED_VERSION;
if(pCertContext) {
SchannelCred.cCreds = 1;
SchannelCred.paCred = &pCertContext;
}
SchannelCred.grbitEnabledProtocols = 0
if(cSupportedAlgs) {
SchannelCred.cSupportedAlgs = cSupportedAlgs;
SchannelCred.palgSupportedAlgs = rgbSupportedAlgs;
}
SchannelCred.dwFlags |= SCH_CRED_NO_DEFAULT_CREDS;
SchannelCred.dwFlags |= SCH_CRED_MANUAL_CRED_VALIDATION;
status = g_pSSPI->AcquireCredentialsHandleA(
NULL, // Name of principal
UNISP_NAME_A, // Name of package
SECPKG_CRED_OUTBOUND, // Flags indicating use
NULL, // Pointer to logon ID
&SchannelCred, // Package specific data
NULL, // Pointer to GetKey() func
NULL, // Value to pass to GetKey()
phCreds, // (out) Cred Handle
&tsExpiry); // (out) Lifetime (optional)
if(status != SEC_E_OK) {
/*
if (status == SEC_E_INSUFFICIENT_MEMORY)
std::cout << "!" << std::endl;
else if (status == SEC_E_INTERNAL_ERROR)
std::cout << "!!" << std::endl;
else if (status == SEC_E_NO_CREDENTIALS)
std::cout << "!!!" << std::endl;
else if (status == SEC_E_NOT_OWNER)
std::cout << "!!!!" << std::endl;
else if (status == SEC_E_SECPKG_NOT_FOUND)
std::cout << "!!!!!" << std::endl;
else if (status == SEC_E_UNKNOWN_CREDENTIALS)
std::cout << "!!!!!!" << std::endl;
*/
std::cout << "!!!" << GetLastError() << std::endl;
err = ERROR_CREATING_CREDENTIALS;
goto cleanup;
}
err = FUNCTION_SUCCESS;
cleanup:
// Освобождение контекста сертификата. В Schannel уже создана его копия.
if(pCertContext != NULL) {
CertFreeCertificateContext(pCertContext);
}
return err;
}
Если для анализа проблемы нужен еще какой-либо код, готов с радостью предоставить. Может кто сталкивался? Заранее спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
КС1 или КС2? Secur32.lib удобнее использовать. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
КС2 Цитата:Secur32.lib удобнее использовать. Каким образом можно использовать? Почему удобнее?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Есть мысли у кого в чем может быть дело?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Secur32.lib эспортирует функции интрефейса SSPI. В EventLog ошибок не появляется? Советую установить Crypto-Pro Winlogon в качестве патча к SSL, а еще лучше - CSP 3.6. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
В EventLog ошибок нету, впрочем как и каких либо других сообщений связанных с проблемой. Пробовал использовать вышеуказанную библиотеку в виде подключения ее в качестве DLL - Secur32.dll. Рельтат - та же ошибка.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
При последних двух запусках в ивент лог записалась ошибка: КриптоПро TLS. Ошибка 0x6ba при обращении к CSP: Сервер RPC недоступен.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,393 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 717 раз в 621 постах
|
Упала служба cprmcsp. Попробуйте использовать KC1, или рекомендации из предыдущего поста. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Спасибо за совет. Попробую для начала на КС1. Отпишу через пару часов орезультатах.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
На КриптоПро 3ю.0 КС1 ошибка воспроизводится. В ивент логе следующее: КриптоПро TLS. Ошибка 0x80092004 при обращении к CSP: Объект или свойство не найдено.
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
SEC_E_INTERNAL_ERROR при вызове AcquireCredentialsHandle
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close