Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Как корректно сформировать запрос для поиска сертификата по его ХЭШ отпечатку
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Откуда: Южно-Сахалиснк
|
Пытаюсь найти сертификат в хранилище по его ХЭШ отпечатку. Мне кажется, что я неправильно формирую критерий поиска. Функция выполняется без ошибок но не возвращает сертификатов. Помогите корректно сформировать. Нужно передавать строку символов или байтов? Код:// Поиск сертификата в хранилище
void FoundCertificateInStore(ICertificate2Ptr iCert)
{
IStorePtr pIStore;
ICertificates2Ptr pICertificates;
ICertificates2Ptr pICertificatesFound;
VARIANT varCriteria;
pIStore = CreateOleObject("CAPICOM.Store.3");
if (FAILED(pIStore->Open(CAPICOM_STORE_LOCATION::CAPICOM_CURRENT_USER_STORE,
L"My",
CAPICOM_STORE_OPEN_MODE::CAPICOM_STORE_OPEN_READ_ONLY)))
{
ShowMessage("Ошибка открытия хранилища сертификатов");
return;
}
//Поиск
pICertificates = pIStore->Certificates;
varCriteria.vt = VT_I1;
varCriteria.pcVal = "c01134ee90d8fd41cf9fdc1b99644038c6e5bf21";
pICertificatesFound = pICertificates->Find(CAPICOM_CERTIFICATE_FIND_TYPE::CAPICOM_CERTIFICATE_FIND_SHA1_HASH,
varCriteria,
false);
ShowMessage(pICertificatesFound->Count);
}
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Код:varCriteria.vt = VT_BSTR;
varCriteria.pcVal = "C01134EE90D8FD41CF9FDC1B99644038C6E5BF21";
Отредактировано пользователем 21 марта 2013 г. 13:57:41(UTC)
| Причина: хм.. на 2х языках нельзя вставлять примеры.. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Код:
FindType : CAPICOM_CERTIFICATE_FIND_TYPE;
varCriteria: OleVariant
FindType:=CAPICOM_CERTIFICATE_FIND_SHA1_HASH; // = 0
varCriteria:='C01134EE90D8FD41CF9FDC1B99644038C6E5BF21';
Store := CoStore.Create;
Store.Open( CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY);
Certs := Store.Certificates.Find( FindType, varCriteria, false );
//Certs.Count - количество найденных сертификатов
|
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Откуда: Южно-Сахалиснк
|
Автор: Андрей *  Код:varCriteria.vt = VT_BSTR;
varCriteria.pcVal = "C01134EE90D8FD41CF9FDC1B99644038C6E5BF21";
Так не работает. Выдается сообщение об ошибке доступа EAccessVialation. Пользователь alex.kondakov99 прикрепил следующие файлы:  Ошибка.jpg (31kb) загружен 5 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.03.2013(UTC) Сообщений: 3  Откуда: Южно-Сахалиснк
|
Автор: Андрей *  Код:varCriteria.vt = VT_BSTR;
varCriteria.pcVal = "C01134EE90D8FD41CF9FDC1B99644038C6E5BF21";
Работает если иcпользовать тип OleVariant. OleVariant varCriteria = "c01134ee90d8fd41cf9fdc1b99644038c6e5bf21";
pICertificatesFound = pICertificates->Find(CAPICOM_CERTIFICATE_FIND_TYPE::CAPICOM_CERTIFICATE_FIND_SHA1_HASH, varCriteria, false);
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: alex.kondakov99  Автор: Андрей *  Код:varCriteria.vt = VT_BSTR;
varCriteria.pcVal = "C01134EE90D8FD41CF9FDC1B99644038C6E5BF21";
Работает если иcпользовать тип OleVariant. OleVariant varCriteria = "c01134ee90d8fd41cf9fdc1b99644038c6e5bf21";
pICertificatesFound = pICertificates->Find(CAPICOM_CERTIFICATE_FIND_TYPE::CAPICOM_CERTIFICATE_FIND_SHA1_HASH, varCriteria, false); OleVariant и нужен. |
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
Как корректно сформировать запрос для поиска сертификата по его ХЭШ отпечатку
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close