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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AmDr  
#1 Оставлено : 4 августа 2014 г. 14:31:09(UTC)
AmDr

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

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

При открытии хранилища с помощью функции CertOpenSystemStoreW, функция CertEnumCertificatesInStore не находит сертификатов в хранилище. Если же открывать хранилище с помощью фукнции CertOpenSystemStoreA, то сертификаты находятся. В чем может быть проблема?
Offline Татьяна  
#2 Оставлено : 4 августа 2014 г. 15:19:56(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
Приведите код, при помощи которого открываете хранилище и выполняете поиск сертификата(интересуют параметры функций). Собираете проект с -DUNICODE?
Татьяна
ООО Крипто-Про
Offline AmDr  
#3 Оставлено : 4 августа 2014 г. 15:28:03(UTC)
AmDr

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

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

Да собствено в коде ничего интересного
HANDLE hStoreHandle = NULL;
PCCERT_CONTEXT pCertContext = NULL;

if (!(hStoreHandle = CertOpenSystemStore(NULL, "MY" или L"MY")))
{
return;
}

while((pCertContext = CertEnumCertificatesInStore(hStoreHandle, pCertContext)))
{
}

Меняю добавляю или удаляю UNICODE в настройках проекта, в резульате без UNICODE работает.
Offline Татьяна  
#4 Оставлено : 4 августа 2014 г. 15:52:21(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
сочетание, когда сборка происходит с -DUNICODE, вызывается функция CertOpenSystemStore (она должна автоматически разрешиться в правильный для -DUNICODE вариант) и хранилище открывается с параметрами CertOpenSystemStore(NULL, L"MY") не работает?
Татьяна
ООО Крипто-Про
Offline AmDr  
#5 Оставлено : 4 августа 2014 г. 16:07:24(UTC)
AmDr

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

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

CertOpenSystemStore открывает хранилище, но вот CertEnumCertificatesInStore не находит сертификатов, без UNICODE находит.
Offline AmDr  
#6 Оставлено : 5 августа 2014 г. 14:00:58(UTC)
AmDr

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

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

Решил проблему с помощью функции CertOpenStore
hStoreHandle = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_CURRENT_USER, L"MY")
В версии для UNICODE в открывшемся хранилище сертификаты находит.
Offline Татьяна  
#7 Оставлено : 5 августа 2014 г. 16:48:18(UTC)
Татьяна

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

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

Поблагодарили: 40 раз в 37 постах
Ок, мы посмотрим что не так с CertOpenSystemStore.
Татьяна
ООО Крипто-Про
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.