Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
SEC_E_INTERNAL_ERROR при вызове AcquireCredentialsHandle
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
А сертификат с ключом связан? Попробуйте использовать другой. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Да, связан. С другим ключем пробовал - ситуация повторилась в деталях.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Попробовал на CSP 3.6 КС1 - ошибка та же самая. В инвент логе пусто. Быть может проблема где-то в коде? Отредактировано пользователем 5 августа 2009 г. 20:57:47(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
Посмотрите в примерах в SDK к CSP 3.6. |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
err = getCertificateContext(cspHandle, pCertContext); - pCertContext передается по ссылке? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Да. Код:
int getCertificateContext(HCRYPTPROV cspName, PCCERT_CONTEXT &certContext) {
HCRYPTKEY userKey;
BYTE* certificateData = 0;
DWORD certificateDataLength = 0;
//получим пару ключей
if (!CryptGetUserKey(cspName, AT_KEYEXCHANGE, &userKey))
return ERROR_GETTING_KEY_PAIR;
if (!CryptGetKeyParam(userKey, KP_CERTIFICATE, NULL, &certificateDataLength, 0))
return ERROR_GETTING_CERTIFICATE_DATA_LENGTH;
certificateData = (BYTE*)malloc(certificateDataLength);
if (certificateData == NULL)
return ERROR_MEMORY_ALLOCATION;
if(!CryptGetKeyParam(userKey, KP_CERTIFICATE, certificateData, &certificateDataLength, 0))
return ERROR_GETTING_CERTIFICATE_DATA;
//создадим сертификат из массива байтов
certContext = CertCreateCertificateContext(X509_ASN_ENCODING, certificateData, certificateDataLength);
if (certContext == NULL)
return ERROR_CREATING_CERTIFICATE_CONTEXT;
//TODO: осободить память после malloc
//TODO: освободить память ключа, елси необходимо
return FUNCTION_SUCCESS;
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
В этом коде сертификат не получит ссылки на ключ - проще выбрать сертификат из хранилища. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
Так, понял. Каким образом это можно сделеать если ключи и сертификат лежат на eToken"е?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2009(UTC) Сообщений: 28 Откуда: Москва
|
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро 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