Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера? / 6 сообщений из 6, страница 1 из 1
23.09.2019, 14:27
    #39865660
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
Таким образом сертификат удаляется и из контейнера, например токена.
Как удалить его только из хранилища "Личное"?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
// открываем хранилище
AutoCERTSTORE hCertStore = CertOpenStore(CERT_STORE_PROV_SYSTEM_W, 0, NULL, CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
if (!hCertStore) return FALSE;

PCCERT_CONTEXT pCertContext = NULL;
while (pCertContext = CertEnumCertificatesInStore(hCertStore, pCertContext)) {
	if (CertHash(pCertContext).compare(wsCertHash)) continue;
	return CertDeleteCertificateFromStore(pCertContext);
}
...
Рейтинг: 0 / 0
24.09.2019, 10:00
    #39866088
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
Например если удалить личный сертификат в браузере то из контейнера он не удаляется
Как они это делают?
...
Рейтинг: 0 / 0
24.09.2019, 11:00
    #39866129
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
Браузеры, как правило, кросс-платформенны, а значит стараются НЕ привязываться к каким-то конкретным низкоуровневым API без особой нужды. Например, для работы с SSL/TLS можно использовать и Windows API schannel , а можно и OpenSSL, который, между прочим кросс-платформенный и не нуждается в CryptoAPI.

Как ты считаешь какую из библиотек будет поддерживать кросс-платформенный браузер?

Если же мы возьмем нативный для Windows браузер, то тогда он, по идее, должен использовать CryptoAPI, но зачем ему удалять из системного хранилища сертификаты, которые он туда не устанавливал ?

Браузер не обязан использовать сертификаты на уровне системного хранилища. Более того, если ты внимательно читал мои вчерашние ссылки на MSDN, то мог бы заметить, что приложениям разрешается создавать собственные хранилища сертификатов, отличные от системных. Таким образом, IE/Edge могут вести собственную базу и копировать в нее сертификат из системного хранилища, который пользователь выбрал для данного сайта. Когда ты удаляешь сертификат в браузере, то удаляется запись из этой базы данных, но в системном хранилище сертификат продолжает жить. Вдруг, ты ошибся или передумаешь потом, где ты возьмешь сертификат, если браузер грохнул его отовсюду?

На Linux/Unix системах, где может не существовать такого понятия как хранилище сертификатов в принципе (меня поправят если я ошибаюсь, коллеги, которые лучше знают устройство Linux систем) сертификаты, как правило, хранят рядом с приложениями в виде pem файлов.

Нужно удалить сертификат, удаляй pem файл.
...
Рейтинг: 0 / 0
24.09.2019, 11:08
    #39866134
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
Cerebrum
Нужно удалить сертификат, удаляй pem файл.
просто удаляю файл отсуда C:\Users\a.khodykin\AppData\Roaming\Microsoft\SystemCertificates\My\Certificates?
...
Рейтинг: 0 / 0
24.09.2019, 13:34
    #39866293
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
Cerebrum,

sst
...
Рейтинг: 0 / 0
30.09.2019, 20:08
    #39869499
mackz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера?
listtoview,

я так и делал
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Крипто API. Как удалить сертификат из хранилища не удаляя из контейнера? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]